Manuel PHP
Précédent |  | Suivant

# Chapitre 4. Installation sous UNIX

Cette section va vous guider lors du processus d'installation et de configuration de PHP sous Unix. Commencez par étudier les sections spécifiques à votre plate-forme ou à votre serveur web avant de passer à l'installation.

Comme ce que nous avons écrit dans le manuel dans la section Considérations générales sur l'installation, nous traiterons de l'installation de PHP sur des serveurs web dans cette section, bien que nous couvrirons également la configuration de PHP pour l'utilisation en lignes de commande.

Il y a plusieurs manières d'installer PHP sur des plates-formes Unix, soit avec un processus de compilation / configuration, soit avec des paquets pré-compilés. Cette documentation est particulièrement focalisée sur le processus de compilation / configuration. Beaucoup de systèmes basés sur Unix ont plusieurs sortes de paquets d'installation pour leur système. Ils permettent de vous assister dans une configuration standard mais si vous avez besoin d'avoir des fonctionnalités différentes (comme un serveur sécurisé ou un driver différent de bases de données), vous aurez besoin de construire PHP et/ou votre serveur web. Si vous n'êtes pas familiarisé avec la construction et la compilation de vos propres logiciels, il sera plus simple de vérifier si quelque part, personne n'a déjà construit une version de paquet de PHP avec les fonctionnalités dont vous avez besoin.

Pré-requis :

- Connaissance de base d'UNIX (savoir faire un "make" et compiler en C, si besoin).

- Un compilateur ANSI C (pour les codes sources)

- flex: Version 2.5.4 (pour compiler)

- bison: Version 1.28 (préféré), 1.35, or 1.75 (pour compiler)

- Un serveur web

- Tous les composants nécessaires aux extensions (bibliothèque GD, PDF, etc)

La configuration initiale de PHP et le processus de configuration sont contrôlés par l'utilisation du fichier configure et de ces options en lignes de commande. Vous pouvez récupérer une liste de toutes les options disponibles accompagnées d'une courte description en exécutant la commande ./configure --help. Notre manuel documente les différentes options séparément. Vous pouvez trouver les options internes en annexe, bien que les différentes options spécifiques à chaque extension sont décrites sur les pages de référence.

Lorsque PHP est configuré, vous êtes prêt à construire le module et/ou l'exécutable. La commande make devrait s'occuper de cela. Si elle échoue et que vous ne savez pas pourquoi, lisez la section Problèmes.

# Apache 1.3.x sur les systèmes Unix

Cette section contient des notes spécifiques pour l'installation de PHP avec Apache sur les systèmes Unix. Des notes spécifiques pour Apache 2 sont aussi disponibles sur une page séparée.

Vous pouvez sélectionner des options à ajouter au fichier configure à la ligne 10 depuis la liste complète des options de configuration. Les numéros de versions ont été omis ici afin de s'assurer que les instructions ne soient pas incorrectes. Vous devrez donc remplacer les 'xxx' par les versions correctes de vos fichiers.

Exemple 4-1. Instructions d'installation de PHP (en module Apache)

    1.  gunzip apache_xxx.tar.gz
    2.  tar -xvf apache_xxx.tar
    3.  gunzip php-xxx.tar.gz
    4.  tar -xvf php-xxx.tar
    5.  cd apache_xxx
    6.  ./configure --prefix=/www --enable-module=so
    7.  make
    8.  make install
    9.  cd ../php-xxx

    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 ./configure assez simple avec uniquement le support Apache et MySQL.
        Votre chemin vers apxs peut être différent de notre exemple.

          ./configure --with-mysql --with-apxs=/www/bin/apxs

    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.

        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. Et dans la section AddModule de httpd.conf, quelque part en dessous de
        ClearModuleList, ajoutez ceci :

        Pour PHP 4 :

          AddModule mod_php4.c

        Pour PHP 5 :

          AddModule mod_php5.c

    16. 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

    17. Utilisez votre méthode habituelle pour démarrer le serveur Apache.
        (vous devez l'éteindre et le redémarrer, pas seulement lui envoyer
        un signal HUP ou USR1.)

Alternativement, pour installer PHP en tant qu'objet statique :

Exemple 4-2. Instructions d'installation (Installation en tant que module statique d'Apache) de PHP

    1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
    2.  cd apache_1.3.x
    3.  ./configure
    4.  cd ..

    5.  gunzip -c php-5.x.y.tar.gz | tar xf -
    6.  cd php-5.x.y
    7.  ./configure --with-mysql --with-apache=../apache_1.3.x
    8.  make
    9.  make install

    10. cd ../apache_1.3.x

    11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
        (La ligne ci-dessus est correct ! Oui, nous savons que libphp5.a n'existe pas à
        ce moment. On ne le suppose pas non plus. Il sera créé.)

    12. make
        (vous devriez avoir maintenant un binaire httpd que vous pouvez copier dans votre
        dossier de binaire Apache ; si c'est votre première installation, vous devez exécuter la
        commande "make install")

    13. cd ../php-5.x.y
    14. cp php.ini-dist /usr/local/lib/php.ini

    15. Vous pouvez éditer le fichier /usr/local/lib/php.ini pour définir les options de PHP.
        Editez votre fichier httpd.conf ou srm.conf et ajoutez :
        AddType application/x-httpd-php .php

> Note : Remplacez php-5 par php-4 et php5 par php4 en PHP 4.

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 4-3. Exemples de commandes pour le 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), similaires à apachectl:
    /path/to/httpsdctl stop
    /path/to/httpsdctl start

    4. En utilisant mod_ssl, ou un autre serveur SSL, vous pouvez vouloir l'arrêter
    et le démarrer  manuellement :
    /path/to/apachectl stop
    /path/to/apachectl startssl

L'emplacement des exécutables apachectl et http(s)dctl peut varier. Si votre système est pourvu des commandes locate, whereis ou which, elles peuvent vous aider à retrouver vos programmes.

Différents exemples de compilation PHP pour Apache suivent :

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

Cette commande va créer une bibliothèque partagée `libphp5.so` (ou `libphp4.so` en PHP 4) qui sera chargée par Apache avec une ligne LoadModule dans le fichier `httpd.conf`. Le support PostgreSQL est aussi inclut dans cette bibliothèque.

Exemple 4-4. Compilation de PHP avec le support PostGreSQL

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

Cette commande va créer une bibliothèque partagée `libphp4.so` pour Apache, mais va aussi créer la bibliothèque 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 4-5. Compilation en bibliothèques statiques

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

Cette commande va créer une autre bibliothèque partagée `libmodphp5.a`, un fichier `mod_php5.c` et quelques fichiers associés dans le dossier src/modules/php4 du dossier source Apache. Puis, vous devez compiler Apache avec --activate-module=src/modules/php5/libphp5.a et le système de compilation d'Apache va créer un fichier `libphp5.a` et le lier statiquement avec `httpd` (remplacez php5 par php4 en PHP 4). 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 4-6. Compilation en bibliothèques partagées

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

Comme précédemment, mais au lieu d'inclure le support PostgreSQL directement dans l'exécutable `httpd` final, vous allez obtenir une bibliothèque 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 votre 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 `httpd.conf` par défaut de Apache est fourni avec une section qui ressemble à ceci :

> Exemple 4-7. httpd.conf fournit par Apache

>     User nobody
>     Group "#-1"

> À moins que vous ne changiez cette valeur par "Group nogroup" ou quelque 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.

Précédent | Sommaire | Suivant
Considérations générales sur l'installation | Niveau supérieur | Apache 2.0 sur les systèmes Unix