Installation PHP4


Installation sous Windows NT station (avec PWS)

Préliminaires : les tests ont été fait sur une station NT 4.0 Service Pack 4 avec PWS comme serveur Web

Récupérer l'archive binaire win32.
Site de référence : http://www.php.net/
URL de download : http://www.php.net/downloads.php

  1. Décompacter l'archive dans un répertoire qui pourra être le répertoire d'installation (par exemple c:\php4).
  2. Copier le fichier php4ts.dll (et msvcrt.dll s'il n'y est pas déjà) dans un répertoire se situant dans le path (une bonne idée étant de le mettre dans le répertoire système "c:\winnt\system32", par exemple, si "c:\winnt" est votre répertoire d'installation)
  3. Editer dans le bloc-note le fichier PWS-php4.reg afin d'y mettre le chemin d'accès réel à l'interpréteur php (php.exe ou php4isapi.dll selon que vous avez choisi d'exécuter l'interpréteur comme un cgi externe au serveur web ou comme un module isapi du serveur web).
    Attention ! Dans le chemin d'accès à taper tous les anti-slashes doivent être doublés ; exemple :
    C:\\PHP4\\php4isapi.dll
  4. Double-cliquer ensuite sur le PWS-php4.reg ainsi modifié pour enregistrer l'information dans le registre. C'est grâce à cela que le serveur web saura quel interpréteur appeler quand il verra apparaître l'extension ".php" (extension par défaut dans la version 4 de PHP).
  5. Placez vos scripts PHP dans le répertoire que vous avez choisi sur votre machine et testez votre nouvelle installation.

Pour l'accès aux bases de données, l'installation d'ODBC doit être correctement faite par ailleurs. Nous avons rencontré une difficulté sur une machine, due à une mauvaise installation d'ODBC, justement. Le piège était que le serveur PWS gelait sans qu'aucune explication ne soit donnée. Si vous utilisez ODBC pour accéder aux bases et que votre serveur web gèle à chaque appel à une source ODBC, voyez ici comment nous avons pisté et résolu le problème.

Installation sous Windows 2000 avec IIS

Préliminaires : les tests ont été faits sur une station Windows 2000 professionnel et un serveur Windows 2000.

Récupérer l'archive binaire win32.
Site de référence : http://www.php.net/
URL de download : http://www.php.net/downloads.php

  1. Décompacter l'archive dans un répertoire qui pourra être le répertoire d'installation (par exemple c:\php4).
  2. Copier le fichier php4ts.dll (et msvcrt.dll s'il n'y est pas déjà) dans un répertoire se situant dans le path (une bonne idée étant de le mettre dans le répertoire système "c:\winnt\system32", par exemple, si "c:\winnt" est votre répertoire d'installation).
  3. Lancer le gestionnaire d'ordinateur, services et applications, services internet (IIS).
  4. Cliquer droit sur le "Site Web par défaut" et choisir "Propriétés"
  5. Cliquer sur l'onglet "répertoire de base"
  6. Cliquer sur le bouton "Configuration..."
  7. Cliquer sur le bouton "Ajouter" de la nouvelle boîte de dialogue et saisir le chemin complet de l'interpréteur (que ce soit php.exe ou php4ts.dll), l'xtension de fichier associée (ici ".php"), cochez la case "Vérifier l'existence du fichier" pour plus de sécurité, si vous n'avez pas de problème de performance.

    A la question pourquoi préférer CGI (php.exe) ou ISAPI (php4ts.dll), plusieurs éléments de réponse :
  8. Cliquer sur OK pour valider cette boîte de dialogue. Il y a une nouvelle ligne dans la boîte précédente:
  9. Cliquez encore sur OK, puis encore une autre fois.
  10. Si vous voulez spécifier un comportement différent du comportement par défaut, le fichier php.ini doit être situé dans le répertoire système de windows soit c:\winnt\, par exemple.
  11. Si vous voulez sécuriser un peu votre serveur, vous mettez les scripts dans des répertoires spécifiques, sur lesquels, dans le gestionnaire de services internet, vous ôtez le droit de lecture. Attention, je ne parle pas des droits NTFS.
  12. Les droits de lecture NTFS doivent demeurer, au moins pour les personnes censées avoir accès aux scripts en question, IUSR_nom_de_machine si cet accès est pour les utilisateurs anonymes du web. Évidemment qui peut le plus peut le moins et IUSR_nom_de_machine pourrait être remplacé par 'Tout le monde" ou "Utilisateurs authentifiés". Mais si vous gérez des répertoires voisins, avec plusieurs webmestres indépendants et ayant un accès FTP commun, vous serez sans doute avisés d'utiliser de préférence IUSR_nom_de_machine. Ceci afin d'éviter d'avoir à créer autant de répertoires virtuels que de sites, sans pour autant permettre à chaque webmestre de regarder les scripts du voisin. En effet, chaque webmestre fait partie des groupes 'Tout le monde" et "Utilisateurs authentifiés" mais aucun ne peut usurper l'identité de IUSR_nom_de_machine.

Pour l'accès aux bases de données, l'installation d'ODBC doit être correctement faite par ailleurs. Personnellement j'ai opté pour MySQL. Le support de MySQL est natif dans PHP.

Installation sous Linux

Procédure indiquée sur le site PHP (http://www.php.net/manual/install.unix.php#install.unix.apache-module) ou modifiée comme suit par l'équipe internet Créteil.
Note : j'ai créé  un répertoire /root/src/ dans lequel j'ai copié les archives .tar.gz récupérées sur le web et je me suis placé dans ce répertoire. Par ailleurs, le symbole " qui se trouve à la fin de certaines lignes signifie que la commande se continue sur la ligne suivante ; ce ne sont pas deux commandes séparées.

1.  gunzip apache_1.3.12.tar.gz
2.  tar xvf apache_1.3.12.tar
3.  gunzip php-4.0.2.tar.gz
4.  tar xvf php-4.0.2.tar
5.  cd apache_1.3.12
6.  ./configure --sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd
7.  cd ../php-4.0.2
8.  ./configure --with-mysql with-config-file-path=/etc/httpd --with-apache=../apache_1.3.12 "
                               --enable-track-vars --enable-ftp
9.  make
10. make install
    On doit obtenir un message annonçant le succès de l'opération.
11. cd ../apache_1.3.12
12. pour PHP 4: ./configure --sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd "
                              --activate-module=src/modules/php4/libphp4.a
    (pour PHP 3: ./configure --sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd "
                               --activate-module=src/modules/php3/libphp3.a)
    Note importante : à ce stade le fichier en question (liphp4.a) n'exsite pas encore.
    Il sera créé au cours des opérations de make.
13. make
14. make install
    On doit obtenir un message annonçant le succès de l'opération.
    Au lieu de cette étape, on peut préférer écraser le binaire existant avec le nouveau httpd compilé.
    Bien entendu il faut stopper le serveur d'abord.
15. cd ../php-4.0.2
16. Dans notre cas : le php.ini s'est installé dans /etc/httpd comme demandé lors de la configuration.
    (habituellement pour PHP 4: cp php.ini-dist /usr/local/lib/php.ini
    (habituellement pour PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini)
  A ce stade on peut éditer le php.ini pour positionner différentes options PHP.
  Si vous souhaitez un autre répertoire pour le fichier de configuration (commme dans notre exemple)
  c'est l'option  --with-config-file-path=/path à l'étape 8 qui permet de le faire.

17. Editer httpd.conf ou srm.conf (Moins recommandé. on tend actuellement à tout mettre dans httpd.conf): 
      
     pour PHP 3:   AddType application/x-httpd-php3 .php3
     pour PHP 4:   AddType application/x-httpd-php .php
 
     ou tout autre extension choisie.  .php est actuellement recommandé.
  

18. Stopper le serveur http et le redémarrer (Ne pas se contenter d'un reload avec signal HUP ou USR1).

A la fin de la procédure de configuration de PHP4 (étape 8) il y a cet avertissement. Il est important de bien en comprendre les implications. En cas de doute, ne pas compiler PHP4 avec les fonctionnalités MySQl incluses  mais faire référence au réperoire d'installation de MySQL à la place.

+--------------------------------------------------------------------+
|                        *** WARNING ***                             |
|                                                                    |
| You chose to compile PHP with the built-in MySQL support.  If you  |
| are compiling a server module, and intend to use other server      |
| modules that also use MySQL (e.g, mod_auth_mysql, PHP 3.0,         |
| mod_perl) you must NOT rely on PHP's built-in MySQL support, and   |
| instead build it with your local MySQL support files, by adding    |
| --with-mysql=/path/to/mysql to your configure line.                |
+--------------------------------------------------------------------+

Les répertoires

 

/etc/httpd/ (notre choix) configuration
/var/log/httpd (notre choix) fichiers de log
   
   
   

E. Durup