Apache et PHP sur MacOSX

© Christian PAULUS. Document créé le 8 mai 2001 , mis à jour le 13 mars 2007.

Si les faits ne correspondent pas à la théorie, changez les faits. Albert Einstein

Accueil du site > Astuces > PHP > Apache et PHP sur MacOSX

PHP 4+ / MacOSX

Un serveur WEB, s’il est destiné à être accessible par Internet, a parfois grand intérêt à être le plus fiable possible. Sa mise à jour est bien souvent critique. J’aurais tendance à dire que lorsqu’une faille du serveur est rendue publique, il est primordial d’agir rapidement. La disponibilité des mises à jour systèmes MacOS n’est pas suffisamment fiable, du simple fait que lorsqu’un correctif apparaît sur les serveurs Internet, ces derniers sont bien souvent pris d’assaut par les utilisateurs impatients, rendant le correctif indisponible. Et bien souvent, l’application du correctif ne peut pas attendre le bon vouloir de Madame "La bande passante".

Apache est livré en standard dans MacOS. Ce n’est pas la dernière version, et l’architecture n’est pas celle souvent employée sur d’autres serveurs unix. Ca dépend un peu des habitudes, il est vrai. Mais lorsque vous avez plusieurs dizaines de serveurs à maintenir, sur des machines Unix différentes, le fait d’avoir la même architecture WEB, la hiérarchie des fichiers, sur tous vos serveurs, quelque soit le type d’OS, est bien pratique.

Les composants

Dans cette présentation, le serveur WEB est composé de Apache 1.3.19 (http://www.apache.org/) et PHP 4.0.5 Released (http://www.php.net/).

Installation d’Apache

Pour les raisons évoquées ci-dessus, les constantes relatives aux options d’installation ne reprennent pas la configuration "native" de MacOS. L’environnement Apache, ses binaires et fichiers de configuration, seront tous installés dans le répertoire /usr/local/apache.

Récupérez le source sur le serveur officiel, décompressez le et, dans son répertoire source, entrez la commande de configuration :

./configure --prefix=/usr/local/apache --datadir=/usr/local/apache --sysconfdir=/usr/local/apache/conf --enable-module=so --logfiledir=/var/log/httpd --htdocsdir=/usr/local/apache/htdocs --cgidir=/usr/local/apache/cgi-bin --mandir=/usr/local/man

Pour plus d’information sur les différentes options de configure, entrez la commande ./configure —help ou, mieux, jetez un coup d’œil sur le fichier configure.

Terminez l’installation par un classique :

make install.

Installation de PHP

Rapatriez les sources de PHP et décompressez les. Entrez dans le nouveau répertoire de PHP. Dans le version 4.0.5, le script build/genif.sh doit être corrigé. On peut le remplacer par celui proposé par stepwise ( wget http://graphics.stepwise.com/Articl...) ou manuellement, en appliquant un patch sur le fichier build/genif.sh.

Il faut, là aussi, configurer l’environnement PHP avant la compilation. Par exemple, si vous ne désirez par utiliser les fonctions mySQL, entrez la commande :

./configure --prefix=/usr/local/apache --with-apxs=/usr/local/apache/sbin/apxs --without-mysql --with-config-file-path=/usr/local/apache/conf

Construisez le tout par les commandes :

make;
make install

Recopiez les fichiers de configuration de PHP :

cp php.ini-* /usr/local/apache/conf/

Allez dans le répertoire de configuration /usr/local/apache/conf et créez votre fichier php.ini à partir de l’un ou de l’autre des fichiers php.ini* présents ici que vous aurez pris soin de paramétrer correctement.

Configuration httpd.conf

Pour faire reconnaître les fichiers php et php3, vous devez valider (en retirant le # en début de ligne) les lignes :

AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Vous remarquerez au passage que la première ligne n’envoie pas x-httpd-php3 mais x-httpd-php.

Redémarrez apache PHP

A noter que apachectl est déjà présent sur le système dans /usr/sbin. Si ce n’est pas déjà fait, il faut rediriger cette commande sur la nouvelle version installée ici :

cd /usr/sbin
mv apachectl apachectl-ori
ln -s ../../usr/local/apache/sbin/apachectl

Il faut d’abord vérifier votre configuration. Lancez la commande :

/usr/local/apache/sbin/apachectl configtest

Si le résultat est correct (OK), vous pouvez faire (re)démarrer apache PHP :

/usr/local/apache/sbin/apachectl restart

Réglages d’administration système

Le fichier de log, le journal, de PHP est défini dans mon php.ini en /var/log/httpd/php-error_log. Il ne faut pas oublier de lui donner les droits d’écriture. En général, il suffit d’attribuer ce fichier à l’utilisateur nobody (voir votre configuration ApachePHP).

Si vous optez également pour un fichier de log au lieu d’un affichage des erreurs sur le navigateur, en plus d’y appliquer les droits d’accès en écriture, il ne faut pas oublier de l’ajouter à la liste des rotations de journaux (voir /etc/daily).

Documents et références

http://www.stepwise.com/Articles/Workbench/2001-03-24.01.html http://dev.nexen.net/docs/php/annotee/manuel_install.macosx.compile.php

Plussoyez !

Les forums sont fermés.