Impossible d'executer script linux sous PHP - PHP - Programmation
Marsh Posté le 23-08-2013 à 09:52:11
Salut,
Je suis pas un expert mais déjà dans exec pas besoin de mettre le mot bash, le script exécuté l'indiquera lors de son exécution comment l'interpréter, grâce à l'en-tête #!/bin/bash
Marsh Posté le 23-08-2013 à 13:27:11
Bon, j'ai supprime le mot bash, l'execution ne fonctionne toujours pas
Marsh Posté le 23-08-2013 à 13:39:14
est ce que tu as essayé avec des commandes bidon du style:
coté php :
exec('test.sh' );
coté bash
#!/bin/bash
str = "ça fonctionne!"
echo $str
Après si ça marche toujours pas, copie le fichier test.sh met le au même endroit que ton script php adapte le chemin dans le exec("test.sh" ) et réessaye. Si ça se trouve c'est le chemin qui est mauvais
Là si ça marche, soit ton chemin est mauvais soit tu as mal attribuer les droits de lecture.
bref après là je suis à cours d'idée pour le moment ^^
Marsh Posté le 23-08-2013 à 13:54:52
Merci de ta reponse
J'ai reussi a afficher l'erreur :
Code :
|
Marsh Posté le 23-08-2013 à 14:09:22
le serveur sur lequel tu exécute ton script à désactiver la fonction exec();
Regarde dans ton php.ini, cherche disable_function et regarde si exec() s'y trouve.
Tu l'exécute en local ton script?(easyphp,wampserver...)
Marsh Posté le 23-08-2013 à 14:44:23
Yep, exec etait desactive merci
Maintenant j'ai un souci avec screen Il fonctionne en lancant le script depuis SSH mais pas depuis le site oueb
Comment faire pour que php maffiche le message d'erreur ?
Merci d'avance
Marsh Posté le 04-09-2013 à 17:21:09
dans ton php.ini :
error_reporting = E_ALL | E_NOTICE | E_STRICT
log_errors = On
error_log = /tmp/php.log
puis fais un chmod 777 /tmp/php.log (ou mieux donne le fichier au user apache , www-data sur debain ou ubunru)
redémarre apache.
Tout les logs php iront dans ce fichier, ce qui devrait bien t'aider pour ce genre de script.
Attention également la fonction exec est mauvaise car ne retourne pas bcp d'info.
Exemple de fonction maison que j'utilise à la place
/**************************************************************************************************************************************\
| La fonction exec de php est mauvaise car compliqué pour gerer les différents message que peuvent retourner la commande.
| Vous devez passer en paramètre à cette fonction la commande ET un tableau vide. Celui ci contiendra les messages de retour.
| Cette fonction retourne egalement le code retour de la commande (si =0 pas d'erreur, si !=0 erreur) .
\**************************************************************************************************************************************/
public static function exec_inbox($cmd,&$tab_erreur='')
{
exec("$cmd 2>&1",$tab_retour,$code_retour_sortie) ;
if ($code_retour_sortie!= 0 )
{
error_log("erreur sur l'exécution de '$cmd' code_retour=$code_retour_sortie" );
foreach($tab_retour as $retour)
{
error_log($retour);
}
}
$tab_erreur=$tab_retour;
return $code_retour_sortie;
}
Marsh Posté le 06-09-2013 à 16:48:32
Tu espères faire quoi en appelant screen depuis un script php?
Marsh Posté le 22-08-2013 à 22:07:57
Salut,
Je ne sais pas trop dans quelle categorie il faut que je post ca
Il faut que j'execute un script avec un commande PHP :
Voici le script bash, il est en 0777 :
Le script et le php sont utiliser par 2 users differents.
Merci d'avance