Installation de Apache + PHP 5 en CGI + mode suEXEC
Tatane |
mercredi 13 juillet 2005 à 17:01 |
Debian |
#3 |
RSS
Tutorial d'installation de PHP5 en mode CGI + suEXEC sous linux Debian Woody stable.
Le mode suEXEC d'Apache permet de configurer pour chaque Virtual Host, un utilisateur et un groupe faisant tourner l'instance d'Apache, ce qui permet d'associer à un Virtual Host le compte utilisateur créé sur l'OS (donc le même que pour l'accès FTP) et donc d'avoir plus de droits que l'utilisateur par défaut de Apache (exemple : création de fichiers/répertoires).
Apache
Par d?faut la version stable d'Apache disponible sous Debian est déjà compilée avec le mode suEXEC disponible, sachant que suEXEC ne sera disponible que dans l'arborescence de base du serveur c'est-à -dire :
/var/www
Donc il suffit d'installer Apache :
apt-get update && apt-get install apache
Voici un extrait du fichier de config :
Port 80 User www-data Group www-data ServerName * DocumentRoot /var/www/
La directive ServerName sera re-spécifiée à l'aide des Virtuals Host.
PHP5 en mode CGI
Pour installer PHP5 en mode CGI il faut d'abord ajouter la ligne suivante à votre fichier /etc/apt/sources.list :<br />
deb http://packages.dotdeb.org ./
Ensuite mettre à jour votre gestionnaire APT, puis installer PHP5 CGI :
apt-get update apt-get install php5-cgi
Virtuals Hosts
Admettons que nous ayons 2 sites Internet à héberger :
- www.site1.com
- www.site2.com
Il faudra donc créer 2 utilisateurs sur le système :
"site1" et "site2" dans le même groupe "ftpusers"
addgroup ftpusers adduser -g ftpusers site1 adduser -g ftpusers site2
Ensuite dans chaque "Home" utilisateur il faudra créer un lien symbolique "www" qui pointera vers l?espace web de l'utilisateur "/var/www/sitex/www/".
mkdir /var/www/site1/www /var/www/site2/www cd /home/site1/ ln -s /var/www/site1/www/ www cd /home/site2/ ln -s /var/www/site2/www/ www
Ensuite il faut copier dans chaque répertoire web utilisateur le répertoire "cgi-bin" contenant l'exécutable "php5".
cp -R /usr/lib/cgi-bin/ /var/www/site1/
cp -R /usr/lib/cgi-bin/ /var/www/site2/
chown -R site1:ftpusers /var/www/site1/
chown -R site2:ftpusers /var/www/site2/
chmod -R 755 /var/www/
Nous pouvons enfin passer à la configuration des Virtuals Hosts. Ajouter ces lignes dans la directive ? <IfModule mod_mime.c> ? :
AddHandler php-script .php Action php-script /cgi-bin/php5 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Si Apache "crie" à cause de la directive "Action" vérifiez si la ligne suivante est bien décommentée :
LoadModule action_module /usr/lib/apache/1.3/mod_actions.so
Créer ensuite les répertoires qui accueilleront les logs d'Apache pour chaque Virtual Host :
mkdir /home/site1/logs /home/site2/logs
Ajouter ces lignes à la fin de votre fichier de configuration d'Apache (/etc/apache/httpd.conf) :
NameVirtualHost * <VirtualHost *> ServerName www.site1.com DocumentRoot /var/www/site1/www/ ErrorLog /home/site1/logs/error.log CustomLog /home/site1/logs/access.log combined User site1 Group ftpusers ScriptAlias /cgi-bin/ "/var/www/site1/cgi-bin/" <Directory "/var/www/site1/www/"> AllowOverride All Options -Indexes +ExecCGI Order Deny,Allow Allow from all </Directory> </VirtualHost> <VirtualHost *> ServerName www.site2.com DocumentRoot /var/www/site2/www/ ErrorLog /home/site2/logs/error.log CustomLog /home/site2/logs/access.log combined User site2 Group ftpusers ScriptAlias /cgi-bin/ "/var/www/site2/cgi-bin/" <Directory "/var/www/site2/www/"> AllowOverride All Options -Indexes +ExecCGI Order Deny,Allow Allow from all </Directory> </VirtualHost>
Attention au php.ini, ce dernier se trouve dans /etc/php5/cgi/php.ini. Il est important de vérifier que les différentes extensions nécessaires au bon fonctionnement de PHP soient activées :
extension=mysql.so extension=gd.so extension=tidy.so extension=imap.so ...
Relancer Apache, tester les accès à vos sites, c'est fini !
/etc/init.d/apache restart

Commentaires
1. Le lundi 18 juillet 2005 à 16:05, par Tatane
2. Le samedi 30 juillet 2005 à 10:32, par tof
3. Le dimanche 5 mars 2006 à 20:33, par Eric
4. Le mardi 28 mars 2006 à 09:27, par Nicolas
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.