Catégories
Conseils et Astuces | Le guide pour réussir le transfère de sa boutique

Installer un serveur Web sur Mac OSX

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *