Je viens de reinstaller tout mon mac et j’ai besoin de remettre en place mon serveur WEB. Vu que je développe tout en local, il est indispensable d’avoir un serveur WEB sur ma machine.
Que comprend la stack?
C’est assez classique, le trio : PHP, MariaDB (fork de Mysql) et Nginx (Tu peux remplacer Nginx part Apache mais perso. j’aime Nginx) ^^
En plus de ce trio d’enfer, il faut installer DNSMasq qui va permette de faire tourner un serveur DNS sur ta machine pour utiliser un TLD personnalisé comme .test ou autre.
Installer Brew:
Pourquoi je te parle de Brew alors que ça fait pas partie de la stack? Ben en faite Brew est un célébre installateur de paquet pour MacOSX et va grandement te facilier la tâche.
Je te laisse voir ça ici : https://brew.sh/index_fr
il suffit de lancer la commande et zou… tu as brew d’installer.
Une fois fait, tu peux mettre à jour les paquets (si tu viens d’installer Brew en vrai ce n’est pas necessaire, tu as déjà les paquets à jour).
Brew update
Installer MariaDb:
Un petit
brew install mariadb
Une fois l’installation faite tu dévrais avoir quelques choses comme ça :
Lancer le service :
brew services start mariadb
Maintenant lance le script pour sécuriser MySql :
Ici, tu vas pouvoir créer ton password root, supprimer la base de données de test, permettre l’accès en remote…
sudo /usr/local/bin/mysql_secure_installation
Accès aux bases de donnée:
Perso. sur mon mac j’utilise le logiciel « SequelPro » plutôt que PhpMyAdmin. c’est simple à utiliser, très performant et bien fait 😀
Je te laisse le découvrir ici : https://sequelpro.com/download#auto-start
Installer PhpMyAdmin:
Si tu veux installer PhpMyAdmin tu peux passer via :
brew install phpmyadmin
Installer nGinx:
Comme je te disais en préambule, perso. je préfére Nginx comme serveur WEB. Il est léger et performant mais il ne gère pas le fichier .htaccess contrairement à Apache. Alors après, c’est plus un choix personnel, je connais mieux Nginx.
Un simple :
brew install nginx
Tu commences à comprendre l’intêret de brew? ^^
Une fois installé, tu peux lancer le service:
brew services start nginx
Et si tu vas sur https://127.0.0.1:8080
Tu devrais voir:
Configuration de nginx:
Pour éviter les « 403 Forbidden » il va falloir changer les droits d’accès de Nginx
Via la commande :
vim /usr/local/etc/nginx/nginx.conf
changer la ligne #user nobody; par :
user <TON_USER> staff;
Une fois fait, il faut redemarrer nginx via :
brew services restart nginx
Installation de PHP
Ici, je vais te montrer pour installer plusieurs version de PHP. Tu sais à quel point il peut être intéressant de pouvoir switcher de version de PHP sur un projet ou pour tester si les versions récentes de PHP fonctionnent bien.
Si tu installes PHP via Brew, tu auras seulement la dernière version.
Ajout d’un dépôt:
Pour avoir accès aux différentes version de PHP via Brew, on va utiliser un dépôt pour pouvoir ensuite les installer.
Lance cette commande:
brew tap exolnet/homebrew-deprecated
Ensuite, tu peux installer au choix les versions de PHP que tu souhaites:
- brew install php@5.6
- brew install php@7.0
- brew install php@7.1
- …
Voila une bonne chose de faite. On vient d’installer MariaDB, PHP et Nginx. y’a plus qu’une chose à faire… installer DNSMasq.
Installer DNSMasq:
Pour info. si tu décides d’utiliser le TLD « .Dev », il faudra obligatoire un certificat SSL. C’est obligatoire pour afficher un domaine en .dev. Perso. j’utilise « .test », c’est bien et assez parlant.
Tu commences à connaitre la chanson, pour l’installer:
brew install dnsmasq
Donc, si toi aussi tu choisis « .test » :
echo 'address=/.test/127.0.0.1' > /usr/local/etc/dnsmasq.conf
Adapte « .test » en fonction de ton choix. Ce que va faire cette configuration, c’est que tous les domaines en .test vont aller « taper » sur 127.0.0.1 donc ton serveur WEB et Nginx va vérifier si tu as un Vhost correspondant.
On redemarre le service :
sudo brew services start dnsmasq
Ensuite, on ajoute ça au resolver:
sudo mkdir -v /etc/resolver sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/test'
Exemple de server nginx:
Enfaite, un détail : Le Vhost (virtual host) est un terme d’Apache pour Nginx, c’est des blocks servers.
Une fois tout ça fait, il faut configurer ses vhosts nginx.
Rends toi, dans /usr/local/etc/nginx/
Ici, tu as possibilités de changer les paramétrages de nginx.
Dans le dossier « servers », tu peux créer des fichier .test (exemple : mon_site.test)
Et tu peux avoir comme celui :
Exemple de fichier « server » Nginx:
server { listen 80; server_name *.mon_site.test mon_site.test; root /Users/Vinvin/dev/mon_site.test; index index.php index.html index.htm; error_log /Users/Vinvin/dev/mon_site.test/error_logs.log; location /i { try_files $uri /i/default.jpg; } location / { try_files $uri $uri/ /index.php?$args ; } location ~ \.php$ { #try_files $uri $uri/ /index.php?$args; try_files $uri =404; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php7.0-fpm: fastcgi_pass 127.0.0.1:9056; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; fastcgi_read_timeout 900; } }
Plus de détail : https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/
Mon aide ta été préciseuse ?
Tu veux me remercier en me payant une bière ou un jus de pomme ? C'est facile via Paypal. Glisse moi ton email, je t'enverrai une photo si tu le souhaites.