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
Partager