Installer Apache PHP4 et PHP5 et suPHP - Gentoo
Un article de SD-France.com Wiki.
Sommaire |
But de ce guide
Ce guide à pour but de vous aider à installer sur votre serveur dédié avec Gentoo :
- Apache 2.0
- PHP 4
- PHP 5
- suPHP - va permettre de faire le lien entre apache, et les versions CGI de PHP.
L'intêret ? :
- pouvoir utiliser PHP4 et PHP5 depuis vos hébergements
- sécuriser l'exécution des scripts en affectant aux process l'uid du propriétaire
Attention ! :
Pensez à remplacer x86 et ~x86 par les keywords adapté a votre système :
- pour les AMD 64 bits : amd64 et ~amd64
Configuration du système (USE)
- Dans le fichier /etc/make.conf, assurez-vous d'avoir le flag apache2
pour que les autres applications activent le support pour Apache 2.0
- Concernant les flags PHP, à vous de les choisir, par défaut, l'install est très légère
- Dans le fichier /etc/portage/package.use, inserez des lignes du type :
=dev-lang/php-4* imap session gd =dev-lang/php-5* session xsl snmp soap
ou bien, si vous activez les mêmes flag pour les deux versions de php :
dev-lang/php imap session gd xsl snmp soap
- suPHP est malheurement encore marqué comme instable dans l'arbre de portage
on va donc autoriser son install même si on est en stable.
- Ajoutez au fichier /etc/portage/package.keywords la ligne :
www-apache/mod_suphp ~x86
Installation
On lance l'install :
emerge --verbose --ask net-www/apache '=dev-lang/php-4*' '=dev-lang/php-5*' www-apache/mod_suphp
Configuration des applications installés
On va d'abord activer le module mod_suphp au démarrage d'apache,
- Editez /etc/conf.d/apache2, vous devez avoir une ligne du type :
APACHE2_OPTS="-D DEFAULT_VHOST -D SUPHP"
Attention !!!, ne mettez pas aussi les options -D PHPX sans être certain de ce que vous faites.
- Ensuite, il y a une "pseudo faille" dans l'utilisation de suPHP avec apache,
vous devez désactiver l'option MultiViews car sinon, des visiteurs ma intentionnées
pourrons afficher le contenu de vos scripts en se servant des MultiViews
- Editez donc /etc/apache2/httpd.conf, vers la ligne 461 :
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
remplacez par
Options -MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
- Dans /etc/suphp.conf, adaptez la ligne :
x-httpd-php=php:/usr/lib/php5/bin/php-cgi
en la remplaçant par la ligne suivante si vous désirez que les .php soient exécutés avec php4)
x-httpd-php=php:/usr/lib/php4/bin/php-cgi
notez que les .php4 et .php5 seront exécutés avec la bonne version :)
- On active Apache au boot, et on le démarre :
rc-update add apache2 default /etc/init.d/apache2 start
Tests
echo '<?php phpinfo(); ?>' >/var/www/localhost/htdocs/phpinfo.php echo '<?php phpinfo(); ?>' >/var/www/localhost/htdocs/phpinfo.php4 echo '<?php phpinfo(); ?>' >/var/www/localhost/htdocs/phpinfo.php5
et avez votre navigateur :
http://IP.DE.VOTRE.SERVEUR/phpinfo.php http://IP.DE.VOTRE.SERVEUR/phpinfo.php4 http://IP.DE.VOTRE.SERVEUR/phpinfo.php5
Si tout correspond à ce que vous vouliez, c'est OK,
Sinon c'est qu'il y a un problème quelque part :)
