PHP-FPM (FastCGI Process Manager)
Accédez aux statuts d'un serveur PHP-FPM via une interface Web intégrée dans un espace dédié à l'état en temps réel de votre serveur.
Ce guide est testé sur:
- Debian 6.0 Squeeze
- Debian 7.0 Wheezy
Prérequis
Ce guide nécessite:
- L'accès aux statuts du serveur, comme décrit par Afficher les statuts d'un serveur.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
Paramètres
Renseignez le domaine d'accès aux statuts du serveur:
DOMAIN="status.domain.com"
Installation
Détectez le fichier de configuration du site de statut:
STATUS_VHOST="$(command grep -rl \
"STATUS PAGES CONFIGURATION END" \
'/etc/apache2/sites-available')"
Détectez le chemin d'installation utilisé:
if [ -n "${STATUS_VHOST}" ]; then
INSTALL_PATH=$(command grep "DocumentRoot" "${STATUS_VHOST}" \
| command sed -e 's/^[ \t]*//;s/[ \t]*$//' -e 's/[ \t]*[ \t]/ /g' \
| command cut --delimiter=" " --field=2)
fi
Détectez le sous-dossier utilisé:
SUB_FOLDER=""
if [ -n "${STATUS_VHOST}" -a -n "$(command grep '^[ ]*Alias ' "${STATUS_VHOST}")" ]; then
SUB_FOLDER="$(command grep '^[ ]*Alias ' "${STATUS_VHOST}" \
| command grep "${INSTALL_PATH}" \
| command sed -e 's/^[ \t]*//;s/[ \t]*$//' -e 's/[ \t]*[ \t]/ /g' \
| command cut --delimiter=" " --field=2)"
fi
Activez le module proxy d'Apache 2:
if [ -n "${SUB_FOLDER}" ]; then
command a2enmod proxy proxy_http
fi
Ajoutez la configuration nécessaire à l'hôte virtuel:
if [ -n "${STATUS_VHOST}" -a -n "${SUB_FOLDER}" -a -e '/etc/php5/fpm/pool.d/www.conf' ]; then
command sed -i -e "/STATUS PAGES CONFIGURATION END/i\\
# FPM status page.\\
<IfModule mod_proxy.c>\\
ProxyRequests Off\\
ProxyPreserveHost On\\
SetEnv proxy-nokeepalive 1\\
ProxyPass ${SUB_FOLDER}/php-fpm-status http://localhost/php-fpm-status\\
ProxyPass ${SUB_FOLDER}/php-fpm-ping http://localhost/php-fpm-ping\\
</IfModule>\\
\\
# FPM status page.\\
<Location /php-fpm-status>\\
Allow from all\\
</Location>\\
\\
# FPM ping page.\\
<Location /php-fpm-ping>\\
Allow from all\\
</Location>\\
" "${STATUS_VHOST}"
fi
Vérifiez que la configuration d'Apache 2 ne contient pas d'erreurs:
command apache2ctl -t
Rechargez la configuration d'Apache 2:
/etc/init.d/apache2 force-reload
Ajoutez le lien correspondant à la page d'accueil du domaine:
if [ -e "${INSTALL_PATH}/index.html" -a -e '/etc/php5/fpm/pool.d/www.conf' ]; then
command sed -i -e '/<\/ul>/i\
<li><a href="./php-fpm-status">PHP FPM status</a></li>\
<li><a href="./php-fpm-ping">PHP FPM ping</a></li> '\
"${INSTALL_PATH}/index.html"
fi
Vous pouvez maintenant accéder aux statuts en temps réel de FPM sur le domaine dédié aux statuts du serveur.