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