Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / Développement / Installer Webgrind sur Debian

Installer Webgrind sur Debian

Par Pierre-Yves Landuré Dernière modification 21/04/2013 17:59

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 :

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