Script Linux Shell permettant de vérifier la syntaxe PHP sur un serveur distant
Directement inspiré de la FAQ PHP de developpez.com ( Comment vérifier la syntaxe des scripts php dans plusieurs centaines de fichiers en quelques secondes ) je l’ai modifié pour en faire un utilitaire bien pratique pour vérifier un site PHP en SSH (Root) directement sur le serveur distant.
Le script parcourt le répertoire courant ainsi que tous les sous-répertoires.
Le shell utilisé ici est Bash .
Le résultat est affiché dans la fenêtre de shell, en même temps un fichier est généré avec le résultat. Lorsque des erreurs sont détectées, elles sont insérées dans le fichier avec le chemin du fichier en question.
Le résultat affiche également le nombre de fichiers exécutés, le nombre d’erreurs trouvées et pour information , le nombre de lignes de code dans les fichiers php (code PHP ou HTML, JS, etc…)
Le script a l’avantage de n’avoir pas besoin de passer de paramètres ou de chemin.
Pour l’utiliser :
A l’aide d’un client SSH (Putty / WinSCP) , en root uploadez le fichier chekphp.sh à la racine de votre site Web puis placez vous dans le dossier racine du site Web et exécutez la commande : bash checkphp.sh et c’est tout !
#!/bin/bash # # Script permettant la verification syntaxique de scripts PHP du repertoire courant # Auteur : Thierry Godin # Script cree le 01/04/2009 # http://www.n1bus.fr # Utilisation : #------------- # Copier le fichier a la racine du repertoire Web en tant que "Root" # En SSH , toujours en Root, executez la commande : bash chekphp.sh # Le resultat sera affiche a l'ecran # Les erreurs seront enregistrees dans le fichier __result_checkphp_<% date %>.txt # qui sera cree a la racine du site # # Si necessaire, modifiez le chemin vers le binaire PHP (PHPDIR) #========================================= # Declaration des variables NOW=`date +%Y%m%d%H%M` # Date du jour ex : 20050820 - Annee(4) Mois(2) Jour(2) - LGF=`pwd`/__result_checkphp_`date +%Y-%m-%d`.txt # Fichier resultat PHPDIR=/usr/bin/php5 # Chemin vers binaire PHP THEDIR=`pwd`/ NB=0 NBERRORS=0 NBLINESTOTAL=0 #============================== echo "`date +%Y-%m-%d:%H:%M:%S` - Debut verification syntaxe PHP." echo "Emplacement : $PWD" echo "> `date +%Y-%m-%d:%H:%M:%S` - Debut verification syntaxe PHP." > $LGF 2>&1 echo "> Emplacement : $PWD" >> $LGF 2>&1 echo " " >> $LGF 2>&1 echo "---------------ERREURS-------------------" >> $LGF 2>&1 find $THEDIR -name \*.php -exec $PHPDIR -l {} \; 2>> $LGF 1> /dev/null for FICH in `find $THEDIR -name \*.php` ; do NB=$(( $NB + 1 )) X=0 X=$(sed -n '$=' $FICH) NBLINESTOTAL=$(( NBLINESTOTAL + X)) done echo "----------------------------------------" >> $LGF 2>&1 echo " " >> $LGF 2>&1 echo "> Verification terminee ." >> $LGF 2>&1 echo "> - Fichiers verifies : $NB" >> $LGF 2>&1 NBLINES=$(sed -n '$=' $LGF) NBERRORS=$(( $NBLINES - 8)) echo "> - Fichiers en erreur : $NBERRORS" >> $LGF 2>&1 echo "> - Nombre total de lignes de code dans les fichiers PHP : $NBLINESTOTAL" >> $LGF 2>&1 echo "Verification terminee" echo " - Fichiers verifies : $NB" echo " - Fichiers en erreur : $NBERRORS" echo " - Nombre total de lignes de code dans les fichiers PHP : $NBLINESTOTAL" # # end # |
Script testé sur un serveur Linux OpenSuse 11 / PHP5
Le fichier généré __result_checkphp_2009-05-15.txt :
> Emplacement : /home/www/******/html/secure/*******
—————ERREURS——————-
—————————————-
> Verification terminée .
> - Fichiers vérifiés : 302
> - Fichiers en erreur : 0
> - Nombre total de lignes de code dans les fichiers PHP : 54325
Commentaires
Poster un commentaire
Vous devez être connecté pour poster un commentaire.