Configuration Serveur · 3 min read · Dec 16, 2025
Comment configurer suPHP avec PHP4 et PHP5 - Page 2
4 Installer PHP4-CGI
Je vais d’abord décrire comment utiliser suPHP avec PHP4, puis plus tard dans ce tutoriel comment l’utiliser avec PHP5, et à la fin comment l’utiliser avec les deux installés en même temps.
Comme je l’ai mentionné précédemment, suPHP a besoin de PHP en tant que CGI au lieu du module Apache. Par conséquent, nous installons le package php4-cgi comme ceci :
apt-get install php4-cgi5 Installer suPHP
Ensuite, nous téléchargeons et décompressons les sources de suPHP. Au moment de la rédaction de cet article, la version actuelle était 0.6.1 :
cd /tmp
wget http://www.suphp.org/download/suphp-0.6.1.tar.gz
tar xvfz suphp-0.6.1.tar.gz
cd suphp-0.6.1Maintenant, nous devons éditer src/apache2/mod_suphp.c car sinon vous obtiendrez une erreur comme celle-ci :
| Forcing reload of web server: Apache2Syntax error on line 49 of /etc/apache2/sites-enabled/000-default: suPHP_AddHandler not allowed here |
lorsque vous mettez certaines directives suPHP dans vos vhosts Apache. Ouvrez le fichier, et dans les lignes 316 et 317 (les numéros de ligne peuvent différer si vous utilisez une version de suPHP autre que 0.6.1) vous trouverez la chaîne ACCESS_CONF. Remplacez-la par RSRC_CONF | ACCESS_CONF afin que les deux lignes ressemblent à ceci :
vi src/apache2/mod_suphp.c| AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Indique à mod_suphp de gérer ces types MIME"), AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Indique à mod_suphp de ne pas gérer ces types MIME"), |
(Si vous préférez éditer le fichier sur votre système Windows, assurez-vous de l’enregistrer avec des sauts de ligne Unix au lieu de sauts de ligne Windows avant de transférer le fichier de nouveau sur votre système Linux !)
Ensuite, nous compilons et installons suPHP :
./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make installMaintenant, nous devons créer le fichier de configuration /etc/suphp.conf. Nous pouvons le faire en copiant simplement le modèle qui vient avec les sources :
cp /tmp/suphp-0.6.1/doc/suphp.conf-example /etc/suphp.confNous devons apporter quelques modifications à /etc/suphp.conf. Définissez la valeur de webserver_user sur www-data (c’est le nom d’utilisateur de l’utilisateur Apache dans le package Apache par défaut de Debian), et pour x-httpd-php nous devons spécifier notre binaire php4-cgi qui est /usr/bin/php4-cgi donc le fichier final ressemble à ceci :
vi /etc/suphp.conf| [global] ;Chemin vers le fichier journal logfile=/var/log/suphp.log ;Niveau de journalisation loglevel=info ;Utilisateur sous lequel Apache s'exécute webserver_user=www-data ;Chemin dans lequel tous les scripts doivent se trouver docroot=/ ;Chemin vers chroot() avant d'exécuter le script ;chroot=/mychroot ; Options de sécurité allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false ;Vérifiez si le script est dans DOCUMENT_ROOT check_vhost_docroot=true ;Envoyer des messages d'erreur mineurs au navigateur errors_to_browser=false ;Variable d'environnement PATH env_path=/bin:/usr/bin ;Umask à définir, spécifiez en notation octale umask=0077 ; UID minimum min_uid=100 ; GID minimum min_gid=100 [handlers] ;Gestionnaire pour les scripts php x-httpd-php=php:/usr/bin/php4-cgi ;Gestionnaire pour les scripts CGI x-suphp-cgi=execute:!self |
Ensuite, nous devons ajouter le module suPHP à la configuration d’Apache. Ajoutez la ligne suivante à /etc/apache2/httpd.conf :
vi /etc/apache2/httpd.conf| LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |
Ensuite, redémarrez Apache :
/etc/init.d/apache2 restart6 Configuration d’Apache
Dans ce chapitre, je suppose que nous avons un site web www.example.com sur l’adresse IP 1.2.3.4 avec le document root /var/www et la configuration de vhost suivante :
| |
Afin d’activer suPHP pour le vhost www.example.com et de le faire exécuter des scripts PHP en tant qu’utilisateur testuser et groupe test, nous modifions le vhost comme suit :
| |
AddHandler x-httpd-php fait référence à suPHP_AddHandler x-httpd-php qui fait ensuite référence à la ligne x-httpd-php dans /etc/suphp.conf ce qui signifie que les scripts avec les extensions .php, .php3, .php4 et .php5 sont interprétés par /usr/bin/php4-cgi.
Redémarrez Apache :
/etc/init.d/apache2 restartMaintenant, nous créons un simple script phpinfo() et y accédons dans notre navigateur :
vi /var/www/info.php| |
Allez à http://www.example.com/info.php dans votre navigateur, et vous devriez voir que vous avez PHP4 en cours d’exécution :

Si vous rencontrez des problèmes, veuillez vérifier /var/log/suphp.log et /var/log/apache2/error.log pour des erreurs. La plupart du temps, vous pouvez les corriger en changeant l’option appropriée dans /etc/suphp.conf ou en changeant les permissions des fichiers/répertoires.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.