#!/bin/bash # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8 # s'assurer que le script PHP est lancé avec l'utilisateur www-data # Faire une copie de ce script dans un répertoire de l'application web # (par défaut c'est le répertoire _cli/) et paramétrer les variables suivantes: # ce sont tous des chemins relatif au répertoire qui contient ce script # Chemin relatif de la racine du projet PROJPATH=.. # Chemin relatif vers le lanceur PHP LAUNCHERPATH=_cli_simple_launcher.php # Chemin relatif des scripts PHP wrappés WRAPPEDPATH= ############################################################################### if [ ! -L "$0" ]; then echo "\ $0: ce script - doit être lancé en tant que lien symbolique avec un nom de la forme 'monscript.php' - lance le script PHP du même nom situé dans le même répertoire avec l'utilisateur www-data" exit 0 fi MYNAME="$(basename -- "$0")" MYTRUESELF="$(readlink -f "$0")" MYTRUEDIR="$(dirname -- "$MYTRUESELF")" PROJDIR="$(cd "$MYTRUEDIR${PROJPATH:+/$PROJPATH}"; pwd)" launcher="$MYTRUEDIR/$LAUNCHERPATH" class="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.phpc" script="$MYTRUEDIR${WRAPPEDPATH:+/$WRAPPEDPATH}/${MYNAME%.php}.php" www_data="${DEVUSER_USERENT%%:*}" [ -n "$www_data" ] || www_data=www-data cmd=(php "$launcher") [ -n "$MEMPROF_PROFILE" ] && cmd+=(-dextension=memprof.so) if [ -f "$class" ]; then cmd+=("$(<"$class")") else cmd+=("$script") fi cmd+=("$@") if [ "$(id -u)" -eq 0 ]; then su-exec "$www_data" "${cmd[@]}" else exec "${cmd[@]}" fi