Ce chapitre va vous aider lors de la configuration et de l'installation du PHP. Les connaissances nécessaires sont les suivantes :
Connaissances basiques d'UNIX
Avoir un compilateur C installé
Avoir installé un serveur web
1. gunzip apache_1.3.x.tar.gz 2. tar xvf apache_1.3.x.tar 3. gunzip php-3.0.x.tar.gz 4. tar xvf php-3.0.x.tar 5. cd apache_1.3.x 6. ./configure --prefix=/www 7. cd ../php-3.0.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. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a 13. make 14. make install A la place de cette étape, vous pouvez simplement écraser le binaire httpd. Assurez-vous d'avoir bien arrÆté le demon d'abord. 15. cd ../php-3.0.x 16. cp php3.ini-dist /usr/local/lib/php3.ini Vous pouvez éditer le fichier de configuration /usr/local/lib/php3.ini. Si vous préférez installer le fichier dans un autre répertoire, il faut utiliser l'option de configuration --with-config-file-path=/path à l'étape 8. 17. Editez le fichier de configuration apache httpd.conf or srm.conf et ajoutez : AddType application/x-httpd-php3 .php3 Ici, il faut choisir l'extension que vous souhaitez donner au fichier php. .php3 est simplement celle que nous suggérons. 18. Utilisez la procédure normale afin de démarrer le serveur Apache. (Vous devez impérativement arrêter et redémarrer le serveur Apache, et pas seulement le relancer à l'aide d'un signal HUP ou USR1).
Il y a deux moyens de configurer PHP.
Utilisations du script "setup" qui est fourni avec la distribution PHP. Ce script vous pose une serie de question (comme le script d'installation de PHP/FI 2.0) et lance le script "configure" à la fin. Afin de lancer le script, tapez ./setup.
Ce script va aussi créer un fichier appelé "do-conf", qui contient les options de configuration. Vous pouvez éditer ce fichier afin de modifier certaines options sans avoir a réexécuter la totalité du script "setup". Dans ce cas là, tapez ./do-conf afin de lancer le script "configure" avec les nouvelles options.
Lancez le script "configure" à la main. Pour voir toutes les options de configuration disponible, tapez ./configure --help.
Tous les détails à propos des différentes options de configuration sont regroupés ici:
Pour compiler PHP comme un module Apache, répondre "yes" à la question "Build as an Apache module ?" (correspond à l'option de configuration --with-apache= DIR) et spécifie la racine de la distribution Apache. Si vous avez décompressé Apache dans le répertoire /usr/local/www/apache_1.2.4, c'est la racine de la distribution Apache. Le répertoire par défaut est : /usr/local/etc/httpd.
Pour compiler PHP comme un module fhttpd, répondre "yes" à la question "Build as an fhttpd module ?" (correspond à l'option de configuration --with-fhttpd= DIR et spécifie la racine de la distribution fhttpd. Le répertoire par défaut est: /usr/local/src/fhttpd. Si vous utilisez fhttpd, compiler PHP en module vous permettra d'obtenir des performances supérieures, plus de controle et la possibilité d'exécution à distance.
Par défaut, PHP est compilé comme une CGI. Si vous voulez que votre serveur web supporte le PHP, compiler le PHP comme une CGI permet d'obtenir de meilleures performances. Cependant, la version CGI permet les utilisateurs de lancer des script PHP sous leur UID respectives. Lisez attentivement le chapitre consacré à la Sécurité si vous souhaitez utilisé cette solution.
PHP supporte de nombreuses bases de données (comme ODBC)
--with-adabas=DIR
Configure PHP pour le support des bases de données Adabas D. Le paramètre est le répertoire d'installation de la base de données et par défaut /usr/local/adabasd.
--with-dbase
Configure PHP pour le support des bases de données dbase. Aucune librairie n'est nécessaire.
--with-filepro
Configure PHP pour le support des bases de données filePro. Aucune librairie n'est nécessaire.
--with-msql=DIR
Compile PHP pour le support des bases de données mSQL. Le paramètres est le répertoire d'installation de la base de données et par défaut /usr/local/Hughes. C'est le répertoire par défaut où est installé mSQL 2.0. configure détecte automatiquement quelle version de mSQL est installé. PHP supporte aussi bien la version 1.0 que la version 2.0, mais si vous compilez PHP avec mSQL 1.0, vous pourrez accéder uniquement à mSQL 1.0, et vice-versa.
Voir aussi Configuration de mSQL au chapitre fichier de configuration.
--with-mysql=DIR
Compile PHP pour le support des bases de données MySQL. Le paramètre est le répertoire d'installation de la base de données et par défaut /usr/local. C'est le répertoire par défaut où est installé MySQL.
Voir aussi Configuration de MySQL au chapitre fichier de configuration.
--with-iodbc=DIR
Compile PHP pour le support des bases de données iODBC. Cette fonction a été développée au départ pour supporter "iODBC Driver Manager", un driver ODBC qui fonctionne sous la plupart des versions d'UNIX. Le paramètre est le répertoire d'installation de la base de données et par défaut /usr/local.
--with-openlink=DIR
Compile PHP pour le support des bases de données OpenLink ODBC. Le paramètre est le répertoire d'installation de la base de données et par défaut /usr/local/openlink.
--with-oracle=DIR
Compile PHP pour le support des bases de données Oracle. Cette option fonctionne avec les versions 7.0 à 7.3 d'Oracle. Le paramètre est le répertoire d'installation de la base de données et par défaut ORACLE_HOME. Vous n'avez pas à spécifier ce paramètres si votre base de données Oracle est déjà installée.
--with-pgsql=DIR
Compile PHP pour le support des bases de données PostgreSQL. Le paramètre est le répertoire d'installation de la base de données PostgreSQL et par défaut /usr/local/pgsql.
Voir aussi Configuration de Postgres au chapitre fichier de configuration file.
--with-solid=DIR
Compile PHP pour le support des bases de données Solid. Le paramètre est le répertoire d'installation de la base de données et par défaut /usr/local/solid.
--with-sybase=DIR
Compile PHP pour le support des bases de données Sybase. Le paramètre est le répertoire d'installation de la base de données et par défaut /home/sybase.
Voir aussi Configuration Sybase au chapitre fichier de configuration.
--with-sybase-ct=DIR
Compile PHP pour le support des bases de donnés Sybase-CT. Le paramètre est le répertoire d'installation de la base de données Sybase-CT et par défaut /home/sybase.
Voir aussi Configuration Sybase-CT au chapitre fichier de configuration.
--with-velocis=DIR
Compile PHP pour le support des bases de données Velocis. Le paramètre est le répertoire d'installation de la base de données Velocis et par défaut /usr/local/velocis.
--with-custom-odbc=DIR
Compile PHP pour le support d'une autre libraire ODBC. Le paramètre est le répertoire d'installation de la base de données et par défaut /usr/local.
Cette option impliques que vous aillez définie la variable CUSTOM_ODBC_LIBS avant de lancer le script de configuration. Vous devez aussi avoir une fichier odbc.h quelques part dans votre répertoire d'installation. Si vous n'en avez pas, créez en un et inclué dedans vos header. Vos headers demanderons sûrement des définitions supplémentaire, notamment en cas de base de données multiplateforme. Définissez les dans la variable CFLAGS.
Par exemple, vous pouvez utiliser Sybase SQL n'import où sous QNX en définissant la variable CFLAGS comme suit: CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
--disable-unified-odbc
Invalide le module ODBC unifié, qui est une interface commune a toutes les bases de données doté d'une interface ODBCn tel que Solid et Adabas D. Cela fonctionne aussi les librairies classique ODBC. Cela a été testé avec iODBC, Solid, Adabas D and Sybase SQL, sous tous les types d'OS. Cela implique qu'un et un seule des modules ou le module Velocis est utilisé ou bien une librairie personnel ODBC. Cette option n'est valide que si une des options suivantes est utilisée: --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-custom-odbc,
Voir aussi Configuration du module ODBC unifié au chapitre fichier de configuration.
--with-ldap=DIR
Ajoute le support LDAP (Lightweight Directory Access Protocol). Le paramètre est le répertoire d'installation de LDAP et par défaut /usr/local/ldap.
Plus d'informations à propos de LDAP est disponible dans les RFC 1777 et RFC 1778.
--with-mcrypt
Ajoute le support de la librairie mcrypt. Consulter la documentation concernant mcrypt pour plus d'information. Si vous utilisez le paramètre optionnel, DIR , PHP cherchera le fichier mcrypt.h dans le répertoire DIR/include.
--enable-sysvsem
Ajoute le support des sémaphores Sys V (supportés par la plupart des versions d'UNIX) Consulter la documentation concernant "Semaphore and Shared Memory" pour plus d'information.
--enable-sysvshm
Ajoute le support pour la memoire partagée. (supporter par la plupart des versions d'UNIX) Consulter la documentation concernant "Semaphore and Shared Memory" pour plus d'information.
--with-xml
Ajoute le support du parseur XML en utilisant la librairie expat de James Clark. Voir aussi les références aux fonctions XML pour plus de renseignements.
--enable-maintainer-mode
Ajoutes des dépendences supplémentaires ainsi que des options de compilation utilisées par certains développeurs du language PHP.
--with-system-regex
Cette option les expressions régulières du PHP en lieu et place de celles fournis avec le language. Si vous compilez PHP comme module serveur, vous devez utilisez la même librairie lorsque vous compilez PHP et lorsque vous le linker au serveur. Vous pouvez ajouter cette option si la librairie systeme ajoute de fonctionnalités supplémentaire dont vous avez besoin. Dans le cas contraire, il est recommendé d'utiliseer la librairie fournis avec le language.
--with-config-file-path=DIR
Le répertoire spécifié en paramètre est utilisé lorque PHP cherche le fichier de configuration au démarrge du PHP.
--with-exec-dir=DIR
Permet l'execution des programmes qui se trouve dans le répertoire DIR lorsque l'option "safe mode" est activée. Par défaut, DIR = /usr/local/bin. Cette option ne permet pas de modifier la valeur par défaut. Cette valeur peut être modifiée avec la directive safe_mode_exec_dir dans le fichier de configuration.
--enable-debug
Ajoute la possibilité d'obtenir des informations complémentaires. Il est alors possible d'obtenir plus d'informations quand il y a des problemes avec PHP. (Il est à noter que cela n'a rien à voir avec des facilitées de débuggage ou des informations à propos des scripts PHP.)
--enable-safe-mode
Active le "safe mode" par défaut. Cela imposes de nombreuses restrictions sur les fonctionnalités du PHP, concernant notamment l'ouverture des fichiers. Consultez le chapitre sur la sécurité pour avoir plus de renseignements. Si vous compilez PHP comme CGI, vous devriez toujours activer le "safe mode". Cela active l'option par défaut. Ce mode peut être activé ou désactivé en utilisant la directive safe_mode dans le fichier de configuration.
--enable-track-vars
Permet au PHP de stocker dans les tableaux HTTP_GET_VARS, HTTP_POST_VARS et HTTP_COOKIE_VARS les informations recues par les méthodes GET/POST ou bien en provenance d'un cookie. Cela active l'option par défaut. Cette option peut être activée ou désactivée grÅce à la directive track_vars dans le fichier de configuration.
--enable-magic-quotes
Acitve l'option "magic quotes" par défaut. Cela active l'option par défaut. Cette option peut être activée ou désactivée grÅce à la directive magic_quotes_runtime dans le fichier de configuration. Voir aussi les directives magic_quotes_gpc et magic_quotes_sybase.
--enable-debugger
Permet d'utiliser le débugger interne du PHP. Cette fonctionnalité est encore au stade expériementale. Voir aussi la directive Debugger Configuration dans le fichier fichier de configuration.
--enable-discard-path
Si cette option est activée, le binaire du PHP (dans le cas d'une compilation comme CGI) peut être placée en toute sureté à l'extérieur de l'arborescence du serveur web. Les utilisateurs ne pourront pas aller au delà des règles de sécurité imposée par le fichier ".htaccess". Voir aussi le chapitre concernant la sécurité à propos de cette option.
--enable-bcmath
Ajoute les fonctions de précisions mathématiques arbitraires. Voir aussi l'option bcmath.scale dans le fichier de configuration.
--enable-force-cgi-redirect
Active une option de sécurité concernant la redirection interne du serveur web. Si vous utilisez Apache comme CGI, vous devriez utiliser cette option.
Lorsque vous utilisez PHP comme CGI, PHP vérifie toujours par défaut qu'il est utilisé par redirection. (par exemple, sous Apache, en utilisant les directives "Action Directives"). Cela assure que le binaire PHP ne peut pas être utilisé pour passer par dessus les procédures d'authentification du serveur web en appellant une procédure directevement. Par exemple, http://my.host/cgi-bin/php/secret/doc.html. Dans cette exemple, on accède à la page http://my.host/secret/doc.html mais cela n'utilise aucune règle de sécurité pour le répertoire /secret.
Ne pas activer cette option annule la vérification et permet éventuellement de passser par dessus les procédures d'authentification et de sécurité du démon httpd. Désactivez cette option uniquement si votre serveur n'est pas capable d'indiquer si une rédirection sécurisée a été effectué et si toutes les fichiers sur votre serveur et dans les répertoires utilisateurs peuvent être accessible de l'extérieure par tout le monde.
Consultez le chapitre consernant la sécurité a propos de cette option.
--disable-short-tags
Désactive la version courte <? ?> des tags PHP. Vous devez désactiver la version courte des tags si vous souhaitez utiliser le PHP avec XML. Si vous désactivez la version courte des tags, les seuls tag PHP acceptés sont <?php ?>. Cette option établie la valeur par défaut. Elle peut être activée ou désactivée ave la directive short_open_tag dans le fichier de configuration.
--enable-url-includes
Ajoute la possibilité d'exécuter du code PHP à partir d'un autre serveur HTTP ou FTP directement grÅce à la fonction include(). Vois aussi l'option include_path dans le fichier de configuration.
--disable-syntax-hl
Annule la surbrillance de la syntaxe.
Pour que, lors de la compilation et de l'installation, PHP cherche les diférents fichiers ou librairies dans des répertoires précis, vous devez modifier les variables d'environnement CPPFLAGS et LDFLAGS. Si vous utilisez un shell "sensible" (???), vous pouvez aussi exécuter la commande LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure
Lorsque vous avez exécuté le script de configuration, vous êtes prêt pour compiler le PHP comme module ou bien comme CGI. La commande make devrait s'occuper de la compilation. Si cela ne fonctionne pas correctement, vous trouverez dans le paragraphe problemes de nombreuses réponses aux problèmes courant de compilation.
Si vous avez compilé PHP comme CGI, vous pouvez vérifier que votre compilation c'est bien déroulée en tapant la commande make test. C'est toujours une bonne idée de test si la compilation c'est bien déroulée. Dans ce sens, vous serez capable de détecter une erreur à la source au lieu de chercher des erreurs le problèmes plutard.
Si vous avez compilé PHP comme CGI, vous pouvez utiliser le script de benchmark en tapant la commande make bench. Il est a noté que si le "safe mode" est activé, le bench ne pourra pas se finir si l'exécution prend plus que les 30 secondes permises. Cela tient au fait que la fonction set_time_limit() ne peut pas être utilisé lorsque le "safe mode" est activé. Utilisez la directive max_execution_time pour contrúler le temps d'exécution dans vos scripts. make bench ne tient pas compte du fichier de configuration.