Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matyo91/6449009 to your computer and use it in GitHub Desktop.
Save matyo91/6449009 to your computer and use it in GitHub Desktop.
# Introduction
Dans cet article, nous allons installer un environnement de développement LAMP sur OSX en utilisant VirtualBox.
# Télécharger
VirtualBox : http://www.virtualbox.org/wiki/Downloads
Ubuntu Server (LTS 32bis) : http://www.ubuntu.com/server/get-ubuntu/download
# Création de la machine virtuelle
On va créer une machine virtuelle de type Linux/Ubuntu 32bits avec 512 Mo de mémoire et 64Go de stockage.
# Installation Ubuntu Server
Avant toute chose, on met à jour le système.
$ sudo apt-get update
$ sudo apt-get upgrade
# Configuration du Réseau
On va créer une nouvelle interface réseau pour notre VM.
Cette interface sera de type *Réseau Privé hôte* alors que la principale est de type *NAT*
Pourquoi une configuration avec 2 interfaces ?
La première interface (NAT) est sur le DHCP autrement dit, la configuration réseau est susceptible de changer (Renouvellement du bail, changement de réseau wifi), ce qui peut être dérangeant pour développer et accéder à la machine. De plus comme l'interface est NATer les services ne sont pas directement accessible, il faudrait forwarder des ports...
La seconde interface aura quant à elle, une IP fixe et sera directement accessible depuis l'hôte, mais aussi depuis d'autres VM (Windows par exemple pour faire des tests avec IE6)
Pour cette seconde interface nous allons utiliser comme subnet 10.1.1.0/24
La machine hôte aura l'IP : 10.1.1.1
La machine virtuelle aura l'IP : 10.1.1.2
Avant toute chose il faut arrêter la machine virtuelle :
$ sudo poweroff
# VirtualBox
On modifie la configuration réseau de VirtualBox
VirtualBox > Preferences... > Network
Puis, on modifie la configuration de la machine virtuelle pour créer la deuxième interface réseau :
# Ubuntu
Editer la configuration réseau
$ sudo nano /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.1.1.2
netmask 255.255.255.0
On relance les interfaces
$ sudo /etc/init.d/networking restart
On verifie que tout fonctionne depuis le Mac :
$ ping 10.1.1.2
PING 10.1.1.2 (10.1.1.2): 56 data bytes
64 bytes from 10.1.1.2: icmp_seq=0 ttl=64 time=0.295 ms
64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=0.363 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=0.357 ms
^C
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.295/0.338/0.363/0.031 ms
# Connection en ssh sur la VM
L'idée ici est de se passer totalement de la machine virtuelle, en montant les fichiers sur le bureau par SSHFS puis en utilisant le terminal pour se connecter à distance via ssh à la VM.
Nous allons configurer la connection ssh via un système de clef privée / clef publique afin d'éviter d'avoir à taper le mot de passe à chaque connection.
Sur le terminal MacOS X, on va tout d'abord lier l'IP de la VM au nom 'lamp'
$ sudo nano /etc/hosts
10.1.1.2 lamp
Puis on cree pour l'utilisateur courant le couple de clef privée / clef publique
# create dsa key into ~/.ssh/id_dsa
$ ssh-keygen -t dsa
Copie de la clef publique sur le serveur Ubuntu
$ cat ~/.ssh/id_dsa.pub | ssh by@lamp "cat >> .ssh/authorized_keys"
Maintenant on peut tout simplement se connecter sans mot de passe au serveur Ubuntu par la commande
$ ssh by@lamp
# Monter le disque dur de la VM sur le Mac
Sur Ubuntu, modifier le groupe de l'utilisateur courrant pour qu'il soit le même que celui d'apache :
# modify usergroup by as www-data
$ sudo usermod -g www-data by
# modify the folder /var/www/ as (user, user-group) = (by, www-data)
$ sudo chown by /var/www/
$ sudo chgrp www-data /var/www/
Sur Mac, il faut installer *sshfs* avec *MacPorts* :
1. Télécharger et installer Xcode
2. Ouvrir xCode
Xcode -> Open Developer Tool -> More Developer Tool ...
3. Téléchager et installer Command Line Tools
4. Valider avec le terminal la licence xCode
$ xcodebuild -license
5. Installer MacPorts : http://www.macports.org/install.php
6. Installer sshfs
$ sudo port install fuse4x sshfs
7. Monter le disque via sshfs
$ mkdir /Volumes/lamp
$ sshfs by@lamp:/var/www /Volumes/lamp -o volname=by@lamp
Le disque est monté via sshfs, il sera alors vu comme un serveur connecté sur MacOS X
# Installer Guest Additions de VirtualBox sur Ubuntu
Monter le CD Guest Additions
menu -> Devices -> Install Guest Additions ...
$ sudo mount /dev/cdrom /media/cdrom
Installer les outils de compilation et headers linux
$ sudo apt-get install dkms
$ sudo apt-get install build-essential
$ sudo apt-get install linux-headers-generic
$ sudo apt-get install linux-headers-$(uname -r)
Installer les Guest Additions :
$ sudo /media/cdrom/VBoxLinuxAdditions.run
# Configuration standard du serveur Ubuntu
Ici, on configure une fois pour toute une installation standard de PHP
$ sudo apt-get install php-apc
$ sudo apt-get install php5-intl
$ sudo apt-get install php5-curl
$ sudo apt-get install php5-gd
$ sudo apt-get install php5-mcrypt
$ sudo apt-get install php5-sqlite
$ sudo apt-get install php5-xdebug
$ sudo apt-get install php-pear
$ sudo nano /etc/php5/apache2/php.ini
date.timezone = Europe/Paris
short_open_tag = Off
magic_quotes_gpc = Off
register_globals = Off
session.autostart = Off
$ sudo service apache2 reload
Installer Git, SVN
$ sudo apt-get install git-core
$ sudo apt-get install subversion
Installer Composer
$ cd /tmp
$ curl -s https://getcomposer.org/installer | php
# make composer as default command line
$ sudo mv composer.phar /usr/local/bin/composer
Installer les outils de gestion avancée des droits
$ sudo apt-get install acl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment