Salut.

Pour terminer mon projet, j'ai besoin d'éxecuter un script de remplacement de fichiers via apache. J'ai donc donner les autorisations d'executions avec visudo et lorsque j'execute le fichier en me connectant à la console en tant qu'apache, ça fonctionne.

Mais lorsque je veux automatiser avec PHP, ça ne va plus...


Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
$exec = shell_exec('sudo /usr/local/nconf/ADD-ONS/deploy_local.sh');

Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
 
OUTPUT_DIR="/usr/local/nagiosplus/nagioscfg/etc/BonneCfg/"
NAGIOS_DIR="/usr/local/nagios/etc/"
TEMP_DIR=${NAGIOS_DIR}"import/"
CONF_ARCHIVE="NagiosConfig_3_pc.tgz"
CMDPATH="/usr/local/nagios/var/rw/nagios.cmd"
 
 
if [ ! -e ${TEMP_DIR} ] ; then
mkdir -p ${TEMP_DIR}
fi
 
if [ ${OUTPUT_DIR}${CONF_ARCHIVE} -nt ${TEMP_DIR}${CONF_ARCHIVE} ] ; then
sudo cp -p ${OUTPUT_DIR}${CONF_ARCHIVE} ${TEMP_DIR}${CONF_ARCHIVE}
sudo tar -xf ${TEMP_DIR}${CONF_ARCHIVE} -C ${NAGIOS_DIR}
sudo rm -rf ${TEMP_DIR}${CONF_ARCHIVE}
 
fi
 
exit
A NOTER : dans visudo, j'ai pris garde à ne pas demander de mots de passe !

Les droits du script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
-rwxr-xr-x 1 apache apache 534  2 juin  10:49 /usr/local/nconf/ADD-ONS/deploy_local.sh
Merçi d'avance.