Installation de PHP 5

02 Jul. 2005
Auteur : Hyacinthe MENIET
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
PHP est un langage impératif de script, open source et employé généralement pour manipuler des chaînes de caractères. Il permet de construire des sites dynamiques. Il met en oeuvre une syntaxe proche de C, Java et Perl, ce qui le rend relativement facile à apprendre. PHP 5 est une évolution majeure : nouveau modèle objet, support d'XML et des services Web, possibilité d'utiliser une base de données locale (SQLite) et de créer des clients riches. PHP est disponible sur de nombreuses plate-formes (Unix, Linux, Windows et Mac Os), il s'utilise comme exécutable autonome ou comme module associé à un serveur web. Il dispose en outre d'un excellent support des principales bases de données. Il est activement développé et soutenu par une importante et énergique communauté internationale. Dans ce document, nous verrons comme l'utiliser en tant que module d'Apache et comment l'interfacer avec MySQL ou PostgreSQL. Je décris également l'installation de GD (inclus avec PHP) pour générer des graphes à la volée.

1. Pré-requis

Assurez-vous d'avoir installé Apache 2, comme indiqué ICI, ainsi l'un des SGBDR suivant MySQL ou PostgreSQL.

2. Installation des binaires de PHP

J'explique ici l'installation de PHP depuis les paquets de votre distribution. Si votre distribution n'est pas étudiée, recherchez dans vos cdroms des paquets aux noms similaires, ou utilisez l'installation à partir des sources.

3. Installation à partir des sources

3.1 Pré-requis pour les sources

3.2 Installation de PHP et GD

Je suppose dans la suite que le fichier apxs d'apache est dans /usr/sbin/. Si ce n'est pas le cas chez vous : adaptez ! L'installation de PHP se limite à :
$ cd /tmp $ tar -xzvf /où_est/php-5.0.x.tar.gz $ cd php-5.0.x/ $ ./configure --prefix=/usr --exec-prefix=/usr --with-apxs2=/usr/sbin/apxs --with-mysql --with-gd --with-zlib --enable-sockets --enable-ftp --with-jpeg-dir=/usr --with-png-dir=/usr --with-zlib-dir=/usr --with-xpm-dir=/usr/X11R6 --with-freetype-dir=/usr/X11R6 --enable-gd-native-ttf --enable-mbstring=all
Je suppose implicitement que vous souhaitez utiliser PHP avec MySQL, si c'est PostgreSQL qui a vos faveurs remplacez --with-mysql par --with-pgsql. Si vous avez installé MySQL en version 4.1.x et plus, vous pouvez ajouter --with-mysqli=/où/est/mysql_config. Finissez l'installation par :
$ make $ su # make install # cp php.ini-dist /usr/lib/php.ini

4. Configuration d'Apache pour PHP

Je suppose dans la suite que votre fichier php.ini est dans /usr/lib/ et que les extensions ainsi que les librairies de PHP sont dans /usr/lib/php. Si ce n'est pas ainsi chez vous, adaptez dans la suite ! Si vous souhaitez que php, supporte les variables globales passées par URL, vous devez avoir l'option suivante à On (dans /usr/lib/php.ini) :
register_globals = On
Sachez toutefois que ce n'est pas très sécurisé. Toujours dans /usr/lib/php.ini, assurez-vous d'avoir la ligne suivante (non commentée) :
include_path = ".:/usr/lib/php"
Editez maintenant le fichier de configuration d'Apache : httpd.conf. Généralement, il se trouve dans /etc/httpd/conf/ ou /etc/apache/. Là assurez-vous que php5_module est bien chargé, chez moi ça donne ceci (remplacez lib/apache/ par ce qu'il y'a pour les autres modules) :
LoadModule php5_module lib/apache/libphp5.so
Toujours dans httpd.conf, cherchez la directive DirectoryIndex, ajoutez lui l'item index.php, juste après index.html. Chez moi ça donne ceci :
DirectoryIndex index.html index.php index.html.var
Et plus bas dans ce même fichier, assurez-vous d'avoir les deux lignes qui suivent :
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Pour tester votre configuration php, créez un fichier my_test.php :
<html>
<?php
phpinfo();
?>
</html>
Placez-le à la racine de votre Apache, chez moi c'est /home/httpd/htdocs/. Dans votre navigateur entrez comme adresse http://localhost/my_test.php. Cette page présente un bref récapitulatif de l'installation PHP. Si ce n'est pas le cas, c'est que PHP est mal installé ou configuré. Vous trouverez de la documentation sur PHP, chez nexen et sur php.net