Par facilité et peut être par habitude d’avoir procédé de la même manière sur Windows, nous courrons installer MAMP (Apache, Sql et Php) lorsque nous configurons notre nouveau Macbook ou que nous le réinitialisons. Le faire de cette manière est dommage dans un sens où macOS incorpore déjà Apache et Php. En ce sens, et si nous profitions pour décrire dans cet article la manœuvre?
1. Activer Apache
Big Sur incorpore déjà la fonctionnalité de serveur Web à l’aide d’Apache. Pour l’utiliser nous allons simplement paramétrer le service succintement.
Pour procéder nous utiliserons tout au long du tutoriel le Terminal que vous retrouverez dans /Applications/Utilitaires/Terminal.app
Pour ceux qui ne sont pas familiers avec l’application, elle est simple d’utilisation. Dès son ouverture un prompteur attends que vous lui donniez des instructions sous forme de commandes. Copiez-collez les commandes qui suivront en frappant la touche Entrée pour valider.
Nous utiliserons parfois le préfixe sudo à la saisie des commandes pour accorder l’accès admin de votre ordinateur, renseignez alors le mot de passe de votre compte.
Pour démarrer Apache
sudo apachectl start
Pour l’arrêter si nécessaire
sudo apachectl stop
Pour connaître la version Apache utilisée
httpd -v
La version Apache embarqué dans Big Sur est Apache/2.2.46
Après avoir démarré Apache, ouvrez votre navigateur et saisissez l’adresse http://localhost
Vous devriez obtenir ce résultat
Si jamais la page affichait autre chose, vous pouvez lancer un débug simple avec
apachectl configtest
Toute erreur y sera reportée.
2. Racine du serveur web
La racine du serveur web est l’endroit sur votre disque dur où seront stockés vos sites internet, on les voit souvent sous l’appellation public_html chez un hébergeur ou même htdocs sur Mamp par exemple.
Historiquement macOS propose deux racines avec 1 dossier côté système et l’autre dossier côté utilisateur. Vous pouvez vous contenter du dossier système ou faire quelques réglages supplémentaires pour que chaque utilisateur ait son propre dossier.
Racine Système
La racine système est affiché par défaut à l’adresse
http://localhost
Les fichiers sont stockés dans
/Library/WebServer/Documents/
Racine Utilisateur
Pour faire fonctionner ce mode et donc réaliser les réglages supplémentaires dont nous parlions plus haut, il va falloir dans un premier temps créer le dossier ~/Sites
Nous allons ensuite ajouter un fichier « utilisateur.conf » dans
/etc/apache2/users/
Vous le nommerez suivant votre nom d’utilisateur macOS, vous trouverez l’information en saisissant dans le Terminal
whoami
Lancez le Terminal et remplacez « utilisateur » par votre propre nom d’utilisateur :
cd /etc/apache2/users
sudo vim utilisateur.conf
Copiez ici le contenu suivant en pressant d’abord la touche « i » pour passer en mode insertion et en sauvegardant ensuite après avoir frappé la touche « Esc » puis saisi « :wq » pour enregistrer le fichier.
Pour plus d’informations concernant l’utilisation de vim, reportez vous à sa documentation : https://doc.ubuntu-fr.org/vim
<Directory "/Users/utilisateur/Sites/"> AllowOverride All Options Indexes MultiViews FollowSymLinks Require host localhost </Directory>
Les permissions du fichier devraient correspondre à :
-rw-r--r-- 1 root wheel 298 Nov 28 16:47 utilisateur.conf
Si ce n’est pas le cas saisissez dans le Terminal…
sudo chmod 644 utilisateur.conf
Ouvrez maintenant le fichier https.conf dans lequel nous allons activer certains modules :
sudo vim /etc/apache2/httpd.conf
Assurez vous de décommenter les lignes suivantes, il suffit d’enlever le « # » qui les précèdent :
LoadModule authz_core_module libexec/apache2/mod_authz_core.so
LoadModule authz_host_module libexec/apache2/mod_authz_host.so
LoadModule userdir_module libexec/apache2/mod_userdir.so
LoadModule include_module libexec/apache2/mod_include.so
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
Vous pouvez sauvegarder le fichier sans le quitter en saisissant dans vim « :w »
Nous allons décommenter la ligne suivante :
LoadModule php7_module libexec/apache2/libphp7.so
Et également la ligne suivante qui permet l’usage des dossiers utilisateurs :
Include /private/etc/apache2/extra/httpd-userdir.conf
Nous pouvons alors quitter le fichier en le sauvegardant.
Ouvrez ensuite le fichier de configuration Apache suivant :
sudo vim /etc/apache2/extra/httpd-userdir.conf
Et décommentez la ligne :
Include /private/etc/apache2/users/*.conf
Sauvegardez, puis quittez le fichier.
Redémarrez Apache pour que les modifications soient prises en compte :
sudo apachectl restart
Dès lors la racine utilisateur sera accessible à l’adresse :
http://localhost/~utilisateur/
3. Réécriture .htaccess et mod rewrites
Si vous comptez utiliser la racine système localisé dans /Library/WebServer/Documents il convient d’autoriser n’importe quel .htaccess qui y sera utilisé pour écraser les paramètres par défaut. Vous pouvez modifier ce réglage en remplaçant ligne 217 le réglage AllowOverride à All
sudo vim /etc/apache2/httpd.conf
Vous pouvez afficher les numéros de lignes sur Vim en saisissant :
:set number
Et décommentez la ligne :
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
4. PHP
PHP 7.3.24 est embarqué dans macOS Big Sur, il vous suffit de décommenter la ligne suivant dans le httpd.conf :
sudo vim /etc/apache2/httpd.conf
LoadModule php7_module libexec/apache2/libphp7.so
Redémarrez Apache pour que les réglages soient pris en compte :
sudo apachectl restart
Pour vérifier et tester PHP, vous pouvez créer un fichier info.php avec le contenu suivant :
<?php phpinfo(); ?>
… que vous placerez dans la racine que vous avez choisie pour votre installation, utilisateur ou système.
Comme vous pouvez le constater, Apple prévoit de supprimer PHP dans la prochaine version de macOS, à savoir Monterey. Pour contourner il nous faudra utiliser Homebrew et ainsi pouvoir utiliser n’importe quelle version de PHP.
php -v WARNING: PHP is not recommended PHP is included in macOS for compatibility with legacy software. Future versions of macOS will not include PHP. PHP 7.3.24-(to be removed in future macOS) (cli) (built: Dec 21 2020 21:33:25) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies
5. Installer MySQL
MySQL n’est pas pré-embarqué dans macOS, nous allons devoir l’installer directement depuis le site https://dev.mysql.com/downloads/mysql/
Choisissez en fonction de votre processeur, ARM pour les M1 et x86 pour les Macbook avec un processeur Intel.
L’inscription n’est pas obligatoire pour le téléchargement, vous pouvez sauter cette étape et lancer directement le téléchargement.
Lancez le fichier .dmg et suivez les diverses étapes de l’installation.
Au moment de choisir le type de cryptage, sélectionnez la deuxième option. Depuis la version 8 il arrive que certains programmes comme PhpMyAdmin ne parviennent pas à se connecter avec les cryptages basés sur SHA256, cela vous évitera donc des problèmes de connexion.
Ajoutez ensuite un mot de passe au compte root. Sur Mamp nous retrouvons souvent root/root, ici il vous sera demandé un mot de passe à 8 caractères minimum.
Ajouter un raccourci MySQL au terminal de commandes
Pour vous éviter le chemin complet vers MySQL lorsque vous souhaiterez l’utiliser dans le terminal de commandes, nous allons l’ajouter.
Si vous utiliser Zsh ouvrez le fichier :
cd ; vim .zshrc
et ajoutez y la ligne suivante :
export PATH="/usr/local/mysql/bin:$PATH"
La première commande vous amène à la racine de votre dossier utilisateur puis ouvre sous Vim le fichier de configuration Zsh nommé .zshrc
Une fois la modification apportée, enregistrez en tapant dans Vim « :wq » et copiez dans votre terminal la ligne suivante :
source ~/.zshrc
Elle aura pour fonction de rafraîchir la fenêtre et prendre ainsi en considération la modification.
Des réglages apparaissent dans vos préférences système macOS.
En cas de problème avec l’installation et si vous devez recommencer, n’hésitez pas à utiliser le bouton « Uninstall ». D’autres réglages sont disponibles dans l’onglet Configuration, ils concernent les chemins d’accès de MySQL.
Réparer le MySQL Socket error
Corrigez l’erreur de socket 2002. Il s’agit de refaire la liaison car macOS ne va pas chercher au bon endroit. MySQL le place dans /tmp alors que macOS pense le trouver dans /var/mysql. Le Socket autorise la communication bi-directionnelle entre client/serveur.
sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
6. Installer PhpMyAdmin
Après avoir corriger l’erreur de socket dans le paragraphe précédent, téléchargez phpMyAdmin https://www.phpmyadmin.net/downloads/ dézippez le fichier .zip et déplacez le dossier dans votre racine utilisateur.
Créez le dossier config
mkdir ~/Sites/phpmyadmin/config
Changez les permissions
chmod o+w ~/Sites/phpmyadmin/config
Démarrez la configuration depuis votre navigateur
http://localhost/~utilisateur/phpmyadmin/setup/ ou
http://localhost/phpmyadmin/setup/
Notabene : Si vous avez fait le choix d’utiliser la racine système, pensez à réaliser les étapes précédentes au bon endroit, à savoir /Library/WebServer/Documents/
Vous devez créer un nouveau serveur en cliquant sur new server.
Dans l’onglet Authentification renseignez le mot de passe enregistré lors de l’installation de MySQL ainsi que le username par défaut root. Enregistrez et vous pouvez considérer que c’est terminé.
Maintenant en vous rendant sur http://localhost/~utilisateur/phpmyadmin/ vous retrouverez l’interface classique permettant de créer et gérer des bases de données.
7. Permissions
Pour ne rencontrer aucun problème de permissions avec vos installations, il est préférable d’autoriser l’écriture de votre dossier racine.
Imaginons que vous ayez un projet de site internet dans ~/Sites/site-test
sudo chmod -R a+w ~/Sites/site-test
Si jamais vous souhaitez plus de sécurité, plutôt que d’autoriser l’écriture à tous, vous pouvez définir Apache _www comme propriétaire du dossier et de l’ensemble de ses sous-dossiers et fichiers.
sudo chown -R _www ~/Sites/site-test
Si jamais vous utilisez la racine système :
sudo chown -R _www /Library/WebServer/Documents/site-test