Apache, PHP et MySQL sur MacOS X

samedi 8 décembre 2001.
 

1) apache est installé d’origine, avec un mode d’emploi en français à l’adresse locale http://127.0.0.1/manual/.Il faut juste activer serveur web (et éventuellement ftp) dans Préférences système =>-Partage, et il se lancera automatiquement au démarrage.

Sinon apache se lance manuellement dans le terminal par :


sudo  -u nom_admin apachectl start

ou, tout à fait simplement, en arrêtant et relançant le partage web dans Préférences => Partage

2) php est installé d’office comme module d’apache (et non comme application autonome). Il faut juste indiquer à Apache de reconnaître les fichiers .php et .php3 (et tant qu’à faire le shtml et le xml) en modifiant légèrement le fichier de configuration d’apache /private/etc/httpd/http.conf

Pour cela la tradition geek est de passer par le Terminal, avec pico (par exemple)


sudo  -u nom_admin pico /private/etc/httpd/httpd.conf

-  (ctrl v pour changer de page)
-  écrire (ctrl o) et quitter (ctrl x) pico (ou vi, ou vim)

Mais on peut utiliser également un texteur "propre" sauvegardant les fichiers système en texte brut sans code parasite qui les empêcherait de fonctionner. Toujours travailler sur une copie ... Il y a, outre BBEdit, son petit frère gratuit Textwrangler, et SubEtheEdit, gratuit pour les particuliers et en français, ce qui ne gâte rien ;-)

Un simple "Ctrl-F php" ou G permet de trouver ce que l’on cherche, il faut juste répondre que oui, on veut modifier le fichier système et donner son mot de passe d’administrateur lorsque il est demandé, inutile de créer un compte root pour ça

Avec une méthode ou une autre il faut successivement :

-  décommenter (enlever le signe # en début de ligne) dans les deux lignes nécessaires
LoadModule php4_module et
AddModule mod_php4.c

-  rajouter pour pouvoir utiliser les fichiers php3, notamment de SPIP
AddType application/x-httpd-php .php3
après la même ligne avec .php tout court

-  chercher assez loin les lignes


<IfModule mod_dir.c>
DirectoryIndex index.html
</IfModule>

-  transformer la ligne du milieu en


DirectoryIndex index.php index.php3 index.html index.shtml index.xml

Puis redémarrer apache


sudo  -u nom_admin apachectl restart

ou passer par les Préférences Système => Partage

3) pour mysql il faut

-  télécharger un package récent pour macosx (par exemple chez marc liyanage mais il y en a ailleurs, notamment chez "A Fievet", ça installe un module Mysql en français dans les préférences système

-  cliquer dessus pour qu’il s’installe d’office aux bons endroits

-  créer dans le répertoire /usr/local/ un lien entre le dossier portant le nom du package comprenant la version de mysql (chez moi en 2001, depuis ça a évolué, /usr/local/mysql-3.23.44/) en lui donnant le nom mysql qui sera recherché par phpMyAdmin et SPIP, soit :


cd /usr/local/

sudo -u nom_admin ln /usr/local/mysql-3.23.44 /usr/local/mysql
(pour le paramétrage exact de ln man ln  ;-)

Cela évitera peut-être de se faire écraser son dossier data en cas de mise à jour de mysql en oubliant la sauvegarde préalable des données...

-  pour un serveur local non accessible en permanence à des tiers, rendre accessible le répertoire de programme ci-dessus et le répertoire de données de mysql (qui s’appelle data) à grand coup de chmod 777. je sais, c’est bestial, mais je ne sais pas encore faire en finesse) (note *)


sudo -u nom_user chmod 777 -R /usr/local/mysql-3.23.44/

sudo -u nom_user chmod 777 -R /usr/local/mysql

et recommencer dans tous les dossiers inférieurs dans l’arborescence, l’attribut -R n’étant récursif qu’au niveau immédiatement inférieur

-  pour pouvoir utiliser le script de démmarage automatique installé par le package (et avoir un serveur MySQL indépendant de tout utilisateur réel je suppose) il faut créer par netinfo un nouvel utilisateur système nommé "mysql" avec le mot de passe " "whatever you want" le nom réel "MySQL User" et le shell "/bin/tcsh" . Inutile de lui créer un répertoire (note **)

-  lancer mysql, éventuellement par sudo -u nom_user safe_mysqld &

-  créer les premières tables sudo -u nom_admin mysql_install_db

si l’ordinateur n’est pas accessible en ligne, ne pas se compliquer la vie en donnant un mot de passe aux utilisateurs root et nom_admin de mysl

-  télécharger un package récent de phpMyAdmin (chez moi 2.2.0) et l’installer en le décompactant dans un répertoire de site actif (soit /Library/WebServer/, soit /Users/ machin/Sites/) de préference dans celui qui ne sera pas utilisé comme site web local

-  vérifier que tout marche en testant l’adresse 127.0.0.1/phpMyAdmin-2.2.0/ ou 127.0.0.1/ /mon_user/phpMyAdmin-2.2.0/ selon les endroits où l’on a placé phpMyAdmin

-  avec phpMyAdmin créer un utlisateur mysql et une table avec le même nom que l’administrateur ou l’utilisateur système, et recharger (=relancer) mysql pour que la modification soit prise en compte

pour cette dernière opération, on peut avec avantage utiliser le package mysql de chez Fievet qui installe un module ad oc dans les préférences systèmes

4) plus d’informations et des liens de téléchargement :

télécharger les fichiers .pdf de mode d’emploi exhaustif de mysql et de php, partiellement traduits en français les miens viennent de nexen

chez Marc liyanage (MySql et phpMyAdmin, en anglais) et bien entendu chez Fievet (prénom non fourni sur le site, un excellent site en français pour les macounets et les macounettes

sur nexen, "le" site de référence en français sur PHP

sur mosx (en français, tout pour se servir pratiquement de macos x, dont les principales commandes shell)

voir aussi la faq de l’ancien groupe de news fr.comp.infosysteme.www.auteurs.php devenu fr.comp.lang.php

ainsi que le groupe fr.comp.os-macos.x ou passer par Google news

(*) en fait il est complètement inutile de modifier les permissions dès lors que l’on ne touche pas à php.ini autrement que pour lui indiquer ouù se trouve par défaut le socquet de connexion à Mysql cf "Mysql avec Tiger 10.4.4"

(**) c’est fait d’origine dans les versions récentes de macosx, comme beaucoup d’autre choses indiquées ici.