Se passer de MAMP sous Mac (stack MAMP native)

Les Macs ont tout ce qu’il faut pour se passer de MAMP. Apache et PHP sont déjà préinstallés sur le système, il n’y a plus qu’à mettre MySQL.

Installer MySQL

Deux options s’offrent à nous :

  • Installer MySQL en téléchargeant l’archive depuis le site officiel
  • Installer en utilisant Macports ou Brew

Pour la première solution, rendez-vous sur cette page. J’opterai ici pour la seconde car ça nous permet plus de flexibilité.

J’utiliserai ici Macports et j’installerai MariaDB, un fork de MySQL réputé pour être plus performant.

sudo port search mariadb
    …

mariadb @5.5.49 (databases)
    Multithreaded SQL database server

mariadb-10.0 @10.0.25 (databases)
    Multithreaded SQL database server

mariadb-10.0-server @10.0.25 (databases)
    Run mariadb-10.0 as server

mariadb-10.1 @10.1.14_1 (databases)
    Multithreaded SQL database server

mariadb-10.1-server @10.1.14 (databases)
    (Beta version) Run mariadb-10.1 as server

Lors de la rédaction de cet article, les versions 10.1.x sont encore en développement. Je fais donc le choix de la sécurité. Vous pouvez avoir plus d’info directement sur la page MySQL de Macport.

Je précise que les versions 5.x ne sont pas d’anciennes versions mais bien des versions stables. Pour plus d’infos sur les différentes versions de Maria, go sur la page des téléchargements de leur site.

sudo port install mariadb-10.0

Voilà, c’est installé, c’est ici que les petites manips commencent. On veut n’avoir à taper que mysqld pour démarrer la base et mysql pour lancer l’interpréteur.

# créé le lien symbolique pour mysql
sudo port select mysql

Macport dispose d’une commande qui permet normalement de lancer mysqld au boot. À tester (vous la trouverez sur la page MySQL de Macport donnée plus haut). Pour ma part, ma machine n’est pas un serveur, je ne veux donc pas que MySQL tourne constamment !

# j'ai du créer le répertoire var pour le serveur
sudo mkdir /opt/local/var/db/mariadb-10.0

# ensuite on exécute le script d'install de la db principale
sudo -u _mysql mysql_install_db

# puis réglage des permissions
sudo chown -R _mysql:_mysql /opt/local/var/db/mariadb-10.0/
sudo chown -R _mysql:_mysql /opt/local/var/run/mariadb-10.0/
sudo chown -R _mysql:_mysql /opt/local/var/log/mariadb-10.0/

On va ensuite créer la commande permettant de démarrer mysqld. Pour lancer le serveur, il faut appeler mysqld_safe aves les bons paramètres. On va donc directement créer deux petits script bash afin de pouvoir démarrer et stopper le serveur en une seule commande.

# /local/usr/sbin/mysqlstart

#!/bin/bash

/opt/local/lib/mariadb-10.0/bin/mysqladmin -u root -p shutdown
# /local/usr/sbin/mysqlstop

#!/bin/bash

/opt/local/lib/mariadb-10.0/bin/mysqladmin -u root -p shutdown

Enfin une petite mise au point des droits pour que ce petit monde puisse s’exécuter :

sudo chmod +x /opt/local/sbin/mysqlst*

Même si on est en local, on va prendre la peine de mettre un mot de passe à root, même merdique :

# on démarre notre base
sudo mysqlsart

# le mot de passe par défaut est vide, il suffit donc de valider
# lorsque le mdp est demandé
/opt/local/lib/mysql56/bin/mysqladmin -u root -p password

Dernier point, afin que php puisse se connecter à MySQL il faut qu’il trouve le socket. On va donc créer un lien du socket de MariaDB vers le path standard où php ira chercher (j’ai mis un moment avant de trouver le problème pour celui là !).

# on localise le socket
/opt/local/lib/mariadb-10.0/bin/mysqladmin variables | grep socket
…
| socket                                                 | /opt/local/var/run/mariadb-10.0/mysqld.sock

# on créé le répertoire qui contiendra le socket
sudo mkdir /var/mysql

# on fait juste un petit lien symbolique
sudo ln -s /opt/local/var/run/mariadb-10.0/mysqld.sock /var/mysql/mysql.sock

Voilà, on est bon !

Apache

Ça va aller beaucoup plus vite car Apache est déjà installé. Il suffit de se rendre dans le fichier de config /etc/apache2/httpd.conf et de l’éditer avec votre outil de prédilection.

On se rend à la section avec la DocumentRoot et vous faites pointer les directives DocumentRoot et Directory là où vous vouler établir la racine de votre projet.

Juste en dessous, n’oubliez par de remplacer AllowOverride None par AllowOverride All si vous voulez que vos .htaccess soient pris en compte.

Dernière chose, faites une recherche pour php et décommentez rewrite_module et php5_module, ils sont côte à côte.

On est tout bon, il n’y a plus qu’à démarrer Apache avec un petit coup de apachectl start et on l’arrêtera avec apachectl stop. En route vers localhost et roule ma poule !

Il n'y a pas encore de commentaire

Laisser un commentaire

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