# TODO Faire une copie de ce script dans un répertoire de l'application web # (dans le répertoire _cli/ par défaut) et modifier les paramétres si nécessaire #------------------------------------------------------------------------------- #!/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 # Tous les chemins suivants sont relatifs au répertoire qui contient ce script # Chemin relatif de la racine du projet PROJPATH=.. # Chemin relatif vers le lanceur PHP LAUNCHERPATH=.launcher.php # Chemin relatif des scripts PHP wrappés WRAPPEDPATH= ############################################################################### MYDIR="$(dirname -- "$0")" MYNAME="$(basename -- "$0")" if [ ! -L "$0" ]; then echo "\ $0 Ce script doit être lancé en tant que lien symbolique avec un nom de la forme 'monscript.php' et lance le script PHP du même nom situé dans le même répertoire avec l'utilisateur www-data Vérification des liens..." cd "$MYDIR" for i in *.php*; do [ -f "$i" ] || continue name="bin/${i%.*}.php" dest="../_cli/_wrapper.sh" link="../bin/${i%.*}.php" if [ -L "$link" ]; then echo "* $name OK" elif [ -e "$link" ]; then echo "* $name KO (not a link)" else echo "* $name NEW" ln -s "$dest" "$link" || exit 1 fi done exit 0 fi 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" [ -f /g/init.env ] && source /g/init.env 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