Installation avec le serveur Apache

Cette section contient des notes spécifiques pour l'installation de PHP avec Apache, aussi bien pour la version Unix que Windows.

Détails pour l'installation de PHP sous Apache sous Unix.

Il y a deux méthodes d'installation de PHP avec Apache 1.3.x sous Windows. L'une passe par les CGI (php.exe), l'autre est d'utiliser la DLL de module Apache. Dans les deux cas, vous devrez arrêter le serveur Apache, et éditer le fichier srm.conf ou httpd.conf, pour configurer Apache avec PHP.

Vous pouvez sélectionner des options à ajouter au fichier configure à la ligne 8 depuis la liste complète des options de configuration.

Exemple 3-5. Instructions d'installation avec Apache (version module)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-x.x.x.tar.gz
4.  tar xvf php-x.x.x.tar
5.  cd apache_1.3.x
6.  ./configure --prefix=/www
7.  cd ../php-x.x.x
8.  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.x
12. for PHP 3: ./configure --activate-module=src/modules/php3/libphp3.a
    for PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
  Au lieu de cette etape, vous pouvez aussi copier le binaire
  httpd et remplacer votre executable actuel. Assurez-vous tout
  de meme que le serveur est bien eteint.
15. cd ../php-x.x.x
16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini
    for PHP 4: cp php.ini-dist /usr/local/lib/php.ini
  Vous pouvez editer votre fichier php.ini pour modifier
  certaines options PHP. Si vous preferez placer ce fichier ailleurs,
  utilisez --with-config-file-path=/path lors de l'etape 8.
17. Editez votre fichier httpd.conf ou srm.conf file et ajoutez :
     Pour PHP 3:   AddType application/x-httpd-php3 .php3
     Pour PHP 4:   AddType application/x-httpd-php  .php
  Vous pouvez choisir n'importe quelle extension que vous voulez ici. .php
  est uniquement une suggestion. Vous pouvez aussi inclure .html.
18. Utilisez votre procedure habituelle pour demarrer votre serveur Apache.
(vous devez l'eteindre et le redemarrer, pas seulement lui envoyer
un signal HUP ou USR1.)

Suivant votre installation d'Apache et votre variante d'Unix, il existe de nombreuses façons d'arrêter et redémarrer Apache. Voici une liste des commandes typiques, pour différentes installations. Remplacez /path/to/ par le chemin d'accès à vos applications sur votre système.

Exemple 3-6. Redémarrage d'apache

[1. Nombreuses variantes Linux SysV :
/etc/rc.d/init.d/httpd restart
2. Avec les scripts apachectl :
/path/to/apachectl stop
/path/to/apachectl start
3. httpdctl et httpsdctl (utilisant OpenSSL), similaire a apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start
4. En utilisant mod_ssl, ou un autre serveur SSL, manuellement :
/path/to/apachectl stop
/path/to/apachectl startssl
Les exécutables apachectl et http(s)dctl peuvent être situés dans différents dossiers. Si votre système est pourvu de locate, de whereis ou de which, utilisez-les pour retrouver vos programmes.

Différents exemples de compilation PHP pour Apache suivent :

Exemple 3-7. Compilation sur Apache avec l'extension PostGreSQL

./configure --with-apxs --with-pgsql

Cette commande va créer une librairie partagée libphp4.so qui sera chargée par Apache avec une ligne LoadModule dans le fichier httpd.conf. Le support PostgreSQL est aussi inclut dans libphp4.so.

Exemple 3-8. Compilation sur Apache avec l'extension PostGreSQL (librairie partagée)

./configure --with-apxs --with-pgsql=shared

Cette commande va créer une librairie partagée libphp4.so pour Apache, mais va aussi créer la librairie partagée pgsql.so qui sera chargée dans PHP avec une directive du fichier php.ini file ou en la chargeant explicitement dans le script avec la fonction dl().

Exemple 3-9. Compilation sur Apache avec l'extension PostGreSQL (2)

./configure --with-apache=/path/to/apache_source --with-pgsql

Cette commande va créer une autre librairie partagée libmodphp4.a, un fichier mod_php4.c et quelques fichiers compagnons dans le dossier src/modules/php4 du dossier Apache. Puis, vous devez compiler Apache avec --activate-module=src/modules/php4/libphp4.a et le système de compilation d'Apache va créer un fichier libphp4.a et le lier statiquement avec httpd. Le support PostgreSQL est alors inclus directement dans l'exécutable httpd, ce qui fait que le résultat final est un fichier unique httpd, qui inclut Apache et PHP.

Exemple 3-10. Compilation sur Apache avec l'extension PostGreSQL (2) (librairie partagée)

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Identique à la version précédente, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable final httpd, vous allez obtenir une librairie partagée pgsql.so que vous pouvez charger dans PHP soit grâce au fichier de configuration php.ini ou dynamiquement avec dl().

Lorsque vous faites le choix entre les différents modes de compilation de PHP, vous devez prendre en compte leurs avantages et inconvénients respectifs. Les objets partagés permettent de compiler PHP et Apache de manière séparée, et vous n'aurez pas à compiler l'ensemble pour faire évoluer PHP. La compilation statique permet de charger et d'exécuter plus rapidement PHP. Pour plus d'informations, voyez la page web sur le support des DSO.

Note : Le fichier de configuation d'Apache actuel est fourni avec une section qui ressemble à ceci :

User nobody
Group "#-1"

A moins que vous ne changiez cette valeur par Group nogroup ou quelques chose comme ça (Group daemon est aussi classique), PHP ne sera pas capable d'ouvrir des fichiers.

Note : Assurez-vous que vous spécifiez la version installée de apxs avec l'option --with-apxs=/path/to/apxs. Vous ne devez PAS utiliser la version d'apxs qui est dans les sources d'Apache, mais celle qui est réellement installée sur votre système.

Installer PHP sous Windows avec Apache 1.3.x

Il y a deux méthodes pour faire fonctionner PHP avec Apache 1.3.x sous Windows. La première est d'utiliser l'exécutable CGI (php.exe), l'autre est d'utiliser les modules Apache DLL. Dans les deux cas, vous devez arrêter le serveur Apache, éditer votre fichier srm.conf ou httpd.conf pour configurer Apache.

Bien qu'il puisse y avoir quelques différences de configurations de PHP sous Apache, le processus reste simple et à la portée du néophyte. Reportez-vous aux documentations Apache pour plus de détails sur ces directives.

Si vous avez dézippé le package dans C:\PHP\ comme indiqué dans le chapitre "Installation manuelle sous Windows", vous devez insérer les lignes suivantes dans votre fichier srm.conf ou httpd.conf pour qu'il fonctionne en CGI :

N'oubliez pas de redémarrer le serveur, avec la commande NET STOP APACHE suivie de NET START APACHE.

Avertissement

En utilisant la configuration en CGI, votre serveur sera ouvert à plusieurs attaques potentielles. Lisez donc la section sécurité des CGI pour savoir comment vous en défendre.

Si vous voulez utiliser PHP comme module Apache, vous devez déplacer le fichier php4ts.dll dans le dossier windows/system (pour Windows 9x/Me) ou winnt/system32 (pour Windows NT/2000), en écrasant les anciennes versions. Puis, vous devez ajouter les deux lignes suivantes dans le fichier de configuration Apache :

Après avoir modifié le fichier de configuration, pensez à redémarrer le serveur web, par exemple avec NET STOP APACHE suivi de NET START APACHE, si vous utilisez Apache comme service Windows, ou bien utilisez les alias classiques.

Note : Il se peut qu'après avoir utilisé l'installeur Apache pour Windows, vous deviez définir la directive AddModule pour mod_php4.c dans le fichier de configuration (httpd.conf). Cela peut être fait en ajoutant AddModule mod_php4.c à la liste des AddModule, juste après le début du fichier de configuration. C'est particulièrement important si la directive ClearModuleList est utilisée. Ne pas le faire reviendrait à ne pas déclarer PHP comme module Apache.

Il y a deux méthodes pour utiliser la fonctionnalité de coloration syntaxique, elles dépendent de votre installation. Si vous avez configuré Apache comme module ISAPI, alors il suffit d'ajouter la ligne suivante dans votre fichier de configuration : AddType application/x-httpd-php-source .phps

Si vous choisissez de configurer Apache pour utiliser PHP comme exécutable CGI, vous aurez besoin de la fonction show_source(). Pour cela, créez simplement un script PHP et ajoutez-y le code suivant : <?php show_source ("original_php_script.php"); ?>. Substitutez original_php_script.php par le nom du fichier que vous souhaitez afficher.

Note : Avec le couple Windows-Apache tous les antislashes des noms de chemins tels que "c:\directory\file.ext", doivent être convertis en slash c'est à dire "c:/directory/file.ext".