Afin d’installer suPHP vous devez déjà disposer d’Apache sur votre serveur
Remarque sur l’utilisation :
Il faut à présent définir les droits des fichiers de vos sites pour que chacun devienne indépendant. Exemple pour un utilisateur fictif « toto » ayant accès uniquement à tous les sous-dossiers à partir de /toto :
chown -R toto:toto /var/www/domaine_1/sous_dossier
Par ailleurs, il faut savoir deux choses sur l’utilisation de suPHP :
1. Le dossier contenant les fichiers d’un utilisateur doit également appartenir à cet utilisateur. C’est à dire que /sous_dossier doit appartenir à toto pour que celui-ci puisse exécuter les fichiers dans le dossier.
2. Les autres dossiers parents doivent obligatoirement appartenir à l’utilisateur root:root, Dans notre exemple /var/www/domaine_1 doit appartenir à root:root sous peine d’obtenir une erreur 500 dans votre navigateur
NB il peux être intéressant de définir ça dans /etc/skel qui est le squelette des répertoire utilisateur.
Configuration du module mod_suphp.c :
vi /etc/apache2/mods-available/suphp.conf
<IfModule mod_suphp.c>
AddType application/x-httpd-php .php .phtml .php3 .php4 .php5
AddType application/x-httpd-php-source .phps
AddHandler x-httpd-php .php .php3 .php4 .php5
<Location />
SuPHP_AddHandler x-httpd-php
</Location>
suPHP_ConfigPath /etc/php5/cgi
suPHP_Engine on
</IfModule>
a2enmod suphp
a2enmod suphp ermet d’activer le module Apache, qui n’est autre qu’un lien symbolique (ln -s /etc/apache2/mods-available/suphp.conf /etc/apache2/mods-enabled/)
La configuration de suPHP :
vi /etc/suphp/suphp.conf
[global]
;Path to logfile
logfile=/var/log/suphp/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=www-data
;Path all scripts have to be in
docroot=/
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=false
;Send minor error messages to browser
errors_to_browser=true
;PATH environment variable
env_path=/bin:/usr/bin:/usr/sbin:/sbin
;Umask to set, specify in octal notation
umask=022
; Minimum UID
; sur debian Apache (www-data) à l’uid 33
min_uid=33
; Minimum GID
min_gid=33
[handlers]
;Handler for php-scripts
x-httpd-php=php:/usr/bin/php5-cgi
;Handler for CGI-scripts
x-suphp-cgi=execute:!self