Apache 2.0 sur les systèmes Unix

Cette section contient les notes et conseils d'installation de PHP avec le serveur Apache 2.0 sur les systèmes Unix.

Avertissement

Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2. Utilisez le mode prefork MPM à la place, ou utilisez Apache 1. Pour savoir pourquoi, voyez FAQ.

Il est très recommandé de lire la documentation Apache pour avoir une meilleure connaissance du serveur web Apache 2.0.

Notes sur la compatibilité de PHP avec Apache 2.0 : Les versions de PHP suivantes sont reconnues pour fonctionner avec la plus récente version d'Apache 2.0.x :

Ces versions de PHP sont compatibles avec Apache 2.0.40 et plus récent.

Le support des SAPI d'Apache 2.0 a commencé avec PHP 4.2.0. PHP 4.2.3 est connu pour fonctionner avec Apache 2.0.39. N'essayez pas d'utiliser cette version de PHP avec une autre version d'Apache 2.0. Sinon, nous vous recommandons de configurer PHP 4.3.0 ou supérieures avec la plus récente des versions d'Apache 2.

Toutes les versions de PHP mentionnées ici fonctionnent avec Apache 1.3.x.

Téléchargez la version la plus récente de Apache 2.0 et une version appropriée de PHP, tel que décrit ci-dessus. Ce guide rapide couvre les manipulations de base, nécessaires à l'installation de Apache 2.0 et PHP. Pour plus d'informations, lisez la documentation Apache. Les numéros de version sont omis ici, pour s'assurer que les instructions ne soient pas incorrectes. Il faudra donc remplacer les séquences 'NN' avec les valeurs correctes que vous utilisez.

Exemple 4-8. Instruction d'installation (Module partagé Apache 2)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Maintenant, vous avez un dossier Apache 2.0.NN installe dans /usr/local/apache2,
    configure avec le support des modules dynamiques, et le prefork standard MPM.
    Pour tester l'installation, utilisez votre procédure standard de démarrage d'Apache :
    /usr/local/apache2/bin/apachectl start
    et pour stopper le serveur, utilisez
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php4-NN

10. Maintenant, configurez votre PHP. C'est l'endroit où vous configurez PHP
    avec diverses options, comme les extensions qui seront activées. Lancez
    ./configure --help pour une liste des options disponibles. Dans notre exemple,
    nous ferons un configuration assez simple avec uniquement le support Apache 2 et MySQL.
    Votre chemin vers apxs peut être différent, en fait, le binaire devrait toujours s'appeler
    apsx2 sur votre système.

      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

    Si vous décidez de changer vos options de configuration après l'installation,
    vous aurez juste besoin de répéter les trois dernières étapes. Vous aurez aussi besoin
    de redémarrer apache pour que le nouveau module soit chargé. Une recompilation de
    Apache n'est pas nécessaire.

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Notez que, à moins de l'avoir explicitement désactivé, 'make install' installera aussi PEAR,
    et des outils PHP tels que phpize, installera le CLI PHP, etc.

13. Configurez votre fichier php.ini :

    cp php.ini-dist /usr/local/lib/php.ini

    Vous pouvez éditer votre fichier .ini pour régler certaines options PHP. Si vous souhaitez
    votre php.ini à un autre endroit, utilisez --with-config-file-path=/votre/chemin lors de
    l'étape 10.

    Si vous utiliez plutôt php.ini-recommended, assurez-vous de lire l'ensemble des changements
    qui y sont contenus, car ils modifient le fonctionnement de PHP.

14. Editez votre httpd.conf afin de charger le module PHP. Le chemin dans la partie droite de la
    directive LoadModule doit pointer vers l'endroit où se trouve le module PHP sur votre système.
    Le make install lancé plus haut l'y aura certainement déjà déposé pour vous, mais assurez le vous.

    Pour PHP 4 :

      LoadModule php4_module libexec/libphp4.so

    Pour PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. Dites à Apache de faire parser certaines extensions par PHP. Par exemple,
    faites parser l'extension .php par PHP. Vous pouvez ajouter n'importe quelle(s)
    extension(s) à parser juste en les ajoutant à la suite, séparées par un espace.
    Nous ajouterons .phtml dans notre exemple.

      AddType application/x-httpd-php .php .phtml

    Il est assez fréquent de configurer l'extension .phps comme code source PHP colorisé,
    ce qui peut être fait ainsi :

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

16. Utilisez votre méthode habituelle pour démarrer le serveur Apache, e.g.:

      /usr/local/apache2/bin/apachectl start

Suivez les étapes ci-dessus, et vous disposerez d'un serveur Apache 2.0 avec le support de PHP module comme module SAPI. Bien sur, il y a bien d'autres options de configuration disponibles pour les deux logiciels, Apache et PHP. Pour plus de détails, utilisez la commande ./configure --help dans le dossier de souces approprié. Si vous souhaitez compiler une version multi-threadé de Apache 2.0 vous devrez remplacer le module standard MPM prefork avec worker ou perchild. Pour ce faire, ajoutez à la ligne de configuration de l'étape 6, l'option --with-mpm=worker ou --with-mpm=perchild. Soyez conscient des conséquences, et comprenez bien ce que vous faites. Pour plus de détails sur ce sujet, lisez la documentation Apache sur le module MPM.

Note : Si vous voulez utilisez la nagociation sur le contenu, lisez cette entrée de la FAQ.

Note : Pour compiler une version multi-threadée d'Apache, votre système doit supporter les threads. Cela implique aussi de compiler PHP avec le module expérimental de Zend Thread Safety (ZTS). Par conséquent, toutes les extensions ne seront pas disponibles. La configuration recommandée actuellement est celle avec le module standard MPM prefork.