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 :)