Bonjour !

J'ai actuellement un serveur en semi-production (:p) sur lequel j'héberge plusieurs sites. J'ai décidé d'opter pour une sécurité accrue pour mes utilisateurs. Je me suis donc tourné au départ vers suPHP et l'exécution de PHP en CGI avec des fichiers php.ini séparés.
Cela marchait bien jusqu'à ce que je déplace l'un de mes hébergés d'un autre serveur possédant une configuration normale et beaucoup moins sécurisée. En effet, ce site est plutôt fréquenté et utilise pas mal d'Ajax. C'est là que j'ai vu les limites du CGI. Pendant les périodes d'affluence, le serveur monte très vite en charge ce qui devient rapidement problématique...

Renseignements pris au près de Google et consorts, je décide de me tourner vers l'utilisation de Suexec et de FastCGI qui semble être un couple bien plus performant que le précédent. Ne pouvant éteindre le serveur Apache trop longtemps, je décide de laisser suPHP tourner et de tester le nouveau système sur un Vhost particulier en désactivant suPHP à l'intérieur de celui-ci.
Après avoir synthétisé les différentes configurations que j'ai pu trouver sur Internet, j'ai abouti à une situation qui ne me convient pas. En effet, lorsque je tente d'accéder à une page PHP de ce site de test, le navigateur me propose de la télécharger, bien que les "Handlers" appropriés soient spécifiés dans Apache. Cependant, ce qui est un petit signe d'espoir, mon navigateur m'indique bien le type Mime que j'ai renseigné dans ma configuration... Maigre consolation :/

Voici mes différents de fichiers de configuration, en espérant de tout coeur que vous serez à même de m'aider, ayant passé ma journée d'hier à essayer...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
$ less /etc/apache2/mods-enabled/fastcgi.conf 
<IfModule mod_fastcgi.c>
        FastCgiIpcDir /var/lib/apache2/fastcgi
        AddHandler php-fastcgi .fcgi
        FastCgiSuexec /usr/lib/apache2/suexec
        FastCgiConfig -singleThreshold 100 -killInterval 300 -autoUpdate -idle-timeout 240 -pass-header HTTP_AUTHORIZATION
        <Location /fcgi/>
                SetHandler fastcgi-script
        </Location>
        Action php-fastcgi /fcgi/php.fcgi
        AddType application/x-httpd-php .php
</IfModule>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ less /etc/apache2/sites-enabled/vhost.domaine.tld
<VirtualHost *:80>
        ServerAdmin foo@domaine.tld
        ServerName vhost.domaine.tld
        DocumentRoot /home/vhost/www/
        SuexecUserGroup vhost users
 
        CustomLog /home/vhost/logs/vhost-access_log combined
        ErrorLog /home/vhost/logs/vhost-error_log
        LogLevel debug
 
        suPHP_Engine off
        <Directory />
                suPHP_Removehandler .php
                RemoveHandler .php
        </Directory>
        ScriptAlias /fcgi/ /home/vhost/php/
 
        <Directory /home/vhost/www/>
                Options -Indexes -FollowSymLinks MultiViews +ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
$ less /home/vhost/php/php.fcgi 
#!/bin/sh
PHP_RC="/home/vhost/php/"
export PHP_RC
PHP_FCGI_CHILDREN=2
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi