Configurer un environnement de développement sur Mac sous VirtualBox
Depuis quelque temps,j'ai des doutes sur la cohérence de mon environnement de développement local. J'utilise essentiellement une suite de logiciels constitués d'un serveur Web (Apache), d'un serveur de base de données (MySQL), d'un langage de script (PHP), d'un gestionnaire de paquets PHP (Composer) et de la plateforme Javascript Node.js. Enfin, j'utilise Homebrew comme gestionnaire de paquets pour OS X.
Depuis l'introduction de la fonction SIP avec OS X El Capitan, un utilisateur privilégié n'est plus en mesure d'installer certains paquets Homebrew sans désactiver provisoirement la fonction d'intégrité SIP de OS X. Cela est fastidieux puisqu'il fait appel à quelques redémarrages du Mac.
Aussi, il y a toujours la crainte que les versions futures de OS X provoquent la catastrophe.
Pour ces raisons, l'idée de maintenir dans une cloison étanche et bien distincte du système OS X hôte un environnement de développement adapté à chaque projet est une solution envisagée par plusieurs pour le développement local.
Deux des meilleures solutions sont :
- les machines virtuelles (p. ex. VirtualBox)
- les conteneurs (p. ex. Docker)
Je trouve que Docker pour Mac souffre de plusieurs goulots d'étranglement dont la vitesse du système de fichier. De nombreux articles sur le Web en témoignent éloquemment dont celui de Marko Mitranić publié en 2020.
Cet article présente donc une solution axée sur une machine virtuelle exécutant Ubuntu 18.04. Cette machine virtuelle est configurée à l'identique de mon serveur de production hébergé sur Google Cloud.
Étape 1 : Installation de VirtualBox
Télécharger le package d'installation Mac de VirtualBox. Double-cliquez l'icône du fichier DMG et complétez l'installation. Assurez-vous d'autoriser les accès nécessaires à VirtualBox.
Étape 2 : Télécharger Ubuntu Server 18.04
Télécharger le fichier ISO d'Ubuntu Server 18.04.
Étape 3 : Créer une instance de Ubuntu sur VirtualBox
Après avoir lancer VirtualBox sur votre Mac, créer une nouvelle machine virtuelle en cliquant sur l'icône Nouvelle. Puis, saisissiez un nom pour la machine virtuelle et confirmez le type de machine virtuelle (Linux) et sa version (Ubuntu 64 bits).
Ensuite, confirmer les valeurs de défaut quant à la taille de la mémoire (1024 Mo), la création d'un disque dur virtuel, le type de fichier de disque dur (VDI), le stockage sur disque physique (dynamiquement alloué) et l'emplacement du disque dur virtuel. La machine virtuelle étant créée, nous sommes prêt à démarrer la machine avec l'image ISO de Ubuntu.
Étape 4 : Installer Ubuntu
Démarrer la machine virtuelle et monter le disque de démarrage comme étant l'image ISO d'Ubuntu que vous avez préalablement téléchargée.
Procéder à l'installation de Ubuntu en choisissant la langue d'installation et la disposition du clavier. Accepter les autres valeurs de défaut proposées par le système : réseaux, proxy, etc.
Enfin, configurer votre profil d'utilisateur.
Aussi, activer l'accès SSH sur la machine virtuelle.
Compléter le paramétrage de l'installation en ignorant les choix proposés de modules Snaps.
Étape 5 : Configurer l'accès réseau par pont
Par défaut, les machines virtuelles VirtualBox sont configurées pour accéder au réseau via le mode NAT. Ce mode d'accès au réseau permet à la machine virtuelle d'accéder au réseau et à l'internet sans créer de conflit avec le réseau local. En effet, en utilisant le mode NAT, les adresses IP seront distribuées aux machines virtuelles par VirtualBox et non par le serveur DHCP de votre réseau. Le seul problème avec le mode NAT, c'est que vous ne pourrez pas accéder aux services de votre machine virtuelle depuis votre Mac.
Pour régler ce problème, le plus simple est d'utiliser le mode d'accès réseau : Accès par pont. Mais, vous pouvez aussi configurer la redirection de ports (ou port forwarding en anglais) de la passerelle virtuelle créée par VirtualBox pour pouvoir accéder au serveur web de votre machine virtuelle depuis n'importe quel ordinateur du réseau.
En tout premier lieu vous devez configurer le mode d'accès réseau par pont :
Relancer la machine virtuelle, connectez-vous à la machine virtuelle et obtenez son adresse IP par la commande hostname :
$ hostname -I
192.168.1.137
Se connecter par SSH
Vous pouvez maintenant rejoindre la machine virtuelle en utilisant Terminal dans le dossier Utilitaires du dossier Applications du Mac. Par exemple,
$ ssh [email protected]
Se connecter par Visual Studio Code
Il est possible également d'utiliser Visual Studio Code sur le Mac afin d'éditer votre code sur la machine virtuelle.
Sur vote Mac lancer Visual Studio Code et faites une recherche sur les extensions par le mot clé remote. Installer les extensions suivantes : Remote - SSH et Remote - WSL.
Étape 6 : Installer les paquets nécessaires au développement
Une fois que vous avez redémarrez la machine virtuelle, connectez-vous par SSH à la machine virtuelle (par SSH ou Visual Studio Code).
Installer curl, zip, unzip et les paquets courants :
$ sudo apt install curl zip unzip software-properties-common
Installer un Apache2 sur Ubuntu 18.04 LTS s'il n'est pas installé.
$ sudo apt install apache2
Installer PHP 7.4 en utilisant PPA
Installer Php 7.4 sur Ubuntu 18.04 LTS en utilisant PPA (dépôts personnels de paquets logiciels) avec des modules php.
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update
$ sudo apt -y install php7.4
$ sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y
Vérifiez la version de PHP en utilisant la ligne de commande suivante :
$ php -v
PHP 7.4.27 (cli) (built: Dec 20 2021 21:27:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies
Installer MySQL
Installez MySQL sur Ubuntu 18.04 LTS en utilisant la commande ci-dessous, cela y installera MySQL par défaut.
$ sudo apt-get install mysql-server mysql-client
Sécuriser l'installation de MySQL
MySQL Server est livré avec un script mysql_secure_installation qui peut effectuer plusieurs opérations liées à la sécurité.
Exécutez le script ci-dessous à l'invite de commandes. Vous devrez d'abord entrer le mot de passe root que vous avez créé lors de la configuration de MySQL.
Il vous sera demandé d'opter pour les règles de validation des mots de passe - si vous le souhaitez. Cela vous permet de tester les mots de passe MySQL et d'en améliorer la sécurité. Ceci n'est pas indispensable étant donné que la machine virtuelle n'est pas accessible à l'extérieur de votre réseau local.
Vous devez donc entrer oui ou non sous les fonctionnalités de sécurité :
- Changer le mot de passe pour root ? ((Appuyez sur Y|Y pour Oui, toute autre touche pour Non)
- Supprimer les utilisateurs anonymes ? (Appuyez sur Y|Y pour Oui, toute autre touche pour Non)
- Interdire la connexion root à distance ? (Appuyez sur Y|Y pour Oui, toute autre touche pour Non)
- Supprimer la base de données de test et y accéder ? (Appuyez sur Y|Y pour Oui, toute autre touche pour Non)
- Recharger les tables de privilèges maintenant ? (Appuyez sur Y|Y pour Oui, toute autre touche pour Non)
$ sudo mysql_secure_installation
Étape 7 : Installer phpMyAdmin sur Ubuntu
phpMyAdmin est l'outil Web open source le plus populaire et gratuit pour l'administration de MySQL. Si vous souhaitez l'installer phpMyAdmin, suivez la marche à suivre suivante.
Installer phpMyAdmin
- Faites la mise à jour des paquets du système
$ sudo apt-get update
- Installer phpMyAdmin
sudo apt-get install -y phpmyadmin
Lors de l'installation, il vous demandera de sélectionner le serveur Web que vous avez installé sur votre système. Sélectionnez apache2 et appuyez sur Ok.
Configurer phpMyAdmin
- Configurer la base de données pour phpMyAdmin que vous avez installée. Sélectionnez « Oui ».
- Définissez le mot de passe de l'application phpMyAdmin.
- Entrez à nouveau le mot de passe pour le confirmer.
Étape 8 : Installer PHP Composer
Installer Composer pour installer toutes les dépendances de l'application Laravel à l'aide de curl :
$ cd /home/<votre répertoire>
$ sudo curl -sS https://getcomposer.org/installer | php
Sortie :
All settings correct for using Composer
Downloading...
Composer (version 2.2.6) successfully installed to: /home/<votre répertoire>/composer.phar
Use it: php composer.phar
Déplacer composer.phar dans le répertoire /usr/local/bin.
$ sudo mv composer.phar /usr/local/bin/composer
Rendre composer exécutable par :
$ sudo chmod +x /usr/local/bin/composer
Vérifier la version de composer par :
$ composer -v
À ce stade-ci vous pouvez ajouter les autres paquets nécessaires à peaufiner votre environnement de développement.