Installer Webgrind sur Debian
Webgrind est une interface Web pour l'outil de débogage PHP Xdebug. Elle est conçue pour faciliter l'optimisation du code PHP à l'aide de ses fonctionnalités de profilage de l'exécution. Ce guide facilite son installation sur Debian GNU/Linux
Ce guide est testé sur:
- Debian 7.0 Wheezy
Ce guide est testé avec ces versions de Webgrind:
- GitHub master
Avertissement
Évitez d'installer Webgrind sur un serveur de production. Cette application permet d'avoir accès à des fichiers critiques du serveur.
Prérequis
Ce guide nécessite :
- un serveur HTTP Apache 2 avec le script a2tools disponible dans le guide Installer Apache 2 sur Debian.
- un serveur HTTP avec support du PHP, comme décrit par Installer PHP-FPM sur Debian.
- l'extension PHP Xdebug, comme décrit par Installer l'extension PHP Xdebug sur Debian.
Paramètres
Renseignez le nom de domaine où sera disponible l'application:
DOMAIN="webgrind.domain.com"
Si le serveur MySQL n'est pas local, l'outil mysql-tools essaiera de s'y connecter avec le client MySQL, ou, en cas d'échec de connexion, via une connexion SSH.
Renseignez le nom du certificat SSL à utiliser pour chiffrer l'application avec HTTPS (créé via la procédure Créer un certificat SSL / TLS sur Debian) (optionnel, recommandé):
SSL_KEY_NAME="${DOMAIN}"
Installation
Déterminez le chemin d'installation:
INSTALL_PATH="/opt/webgrind/${DOMAIN}"
Déterminez le chemin des données:
DATA_PATH="/var/lib/webgrind/${DOMAIN}"
Déterminez le chemin du cache:
CACHE_PATH="/var/cache/webgrind/${DOMAIN}"
Assurez-vous que le dossier parent existe:
command mkdir --parent "$(command dirname "${INSTALL_PATH}")"
command mkdir --parent "${CACHE_PATH}" "${DATA_PATH}"
command chown -R www-data:www-data "${CACHE_PATH}" "${DATA_PATH}"
Préparation de l'environnement
Installez les logiciels nécessaires:
command apt-get install git graphviz python
Activez le profilage permanent des scripts PHP présents sur le serveur:
command php-tools --for="webgrind" --set "xdebug.profiler_enable" "1"
Remarque: Vous pouvez aussi choisir d'activer le profilage en ajoutant "?XDEBUG_PROFILE" aux URL à étudier:
# command php-tools --for="webgrind" --set "xdebug.profiler_enable_trigger" "1"
Configurez le chemin de stockage:
command php-tools --for="webgrind" --fix "xdebug.profiler_output_dir" "${DATA_PATH}"
command php-tools --for="webgrind" --fix "xdebug.profiler_output_name" "cachegrind.out.%t.%p"
Rechargez la configuration de PHP:
test -x /etc/init.d/php5-fpm && /etc/init.d/php5-fpm force-reload
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
test -x /etc/init.d/nginx && /etc/init.d/nginx force-reload
Mise en place de l'application
Installez la dernière version de l'application:
command git clone "git://github.com/jokkedk/webgrind.git" "${INSTALL_PATH}"
Configurez les chemins:
command sed -i \
-e "s|static \$storageDir.*\$|static \$storageDir = '${CACHE_PATH}';|g" \
-e "s|static \$profilerDir.*\$|static \$profilerDir = '${DATA_PATH}';|g" \
-e "s|static \$dotExecutable.*\$|static \$dotExecutable = '$(command which 'dot')';|g" \
"${INSTALL_PATH}/config.php"
Mise en place de l'hôte virtuel
Créez la configuration du serveur HTTP:
if [ -n "${SSL_KEY_NAME}" -a -e "/etc/ssl/private/${SSL_KEY_NAME}.key" ]; then
command a2tools --ssl="${SSL_KEY_NAME}" "${DOMAIN}" "${INSTALL_PATH}"
command a2tools --template='redirect' "${DOMAIN}" "https://${DOMAIN}/"
else
command a2tools "${DOMAIN}" "${INSTALL_PATH}"
fi
L'outil est maintenant disponible sur le domaine spécifié en HTTP ou HTTPS si possible.
Mise à jour automatique
Mettez en place un script de mise à jour automatique quotidienne du code de l'outil:
echo "#"'!'"/bin/bash
# Update ${DOMAIN} source code from Git.
test -x '/usr/bin/git' -a -d '${INSTALL_PATH}' && {
pushd '${INSTALL_PATH}' > '/dev/null'
/usr/bin/git pull --quiet > '/dev/null'
popd > '/dev/null'
}" \
> "/etc/cron.daily/${DOMAIN}-update"
command chmod +x "/etc/cron.daily/${DOMAIN}-update"
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "${INSTALL_PATH}"
Remerciements
- Merci aux développeurs de Webgrind.