Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1364 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Impossible d'executer script linux sous PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Impossible d'executer script linux sous PHP

n°2200608
babajaga
Piles ? Nie pisz
Posté le 22-08-2013 à 22:07:57  profilanswer
 

Salut,
 
Je ne sais pas trop dans quelle categorie il faut que je post ca :o
 
Il faut que j'execute un script avec un commande PHP :
 

Code :
  1. {
  2. exec("bash /home/user1/Serveur/script.sh" );
  3. header('location: ../succes.php');
  4. }


 
Voici le script bash, il est en 0777 :
 

Code :
  1. #!/bin/bash
  2. screen -X -S test kill
  3. screen -S test date


 
Le script et le php sont utiliser par 2 users differents.
 
Merci d'avance :hello:
 

mood
Publicité
Posté le 22-08-2013 à 22:07:57  profilanswer
 

n°2200625
furil
Posté le 23-08-2013 à 09:52:11  profilanswer
 

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

n°2200648
babajaga
Piles ? Nie pisz
Posté le 23-08-2013 à 13:27:11  profilanswer
 

Bon, j'ai supprime le mot bash, l'execution ne fonctionne toujours pas :/


Message édité par babajaga le 23-08-2013 à 13:27:19
n°2200650
furil
Posté le 23-08-2013 à 13:39:14  profilanswer
 

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 ^^


Message édité par furil le 23-08-2013 à 13:40:12
n°2200651
babajaga
Piles ? Nie pisz
Posté le 23-08-2013 à 13:54:52  profilanswer
 

Merci de ta reponse :)
 
J'ai reussi a afficher l'erreur :
 

Code :
  1. Warning: exec() has been disabled for security reasons

n°2200652
babajaga
Piles ? Nie pisz
Posté le 23-08-2013 à 13:58:19  profilanswer
 

Meme chose en faisant ce que tu as dis :)

n°2200654
furil
Posté le 23-08-2013 à 14:09:22  profilanswer
 

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...)

n°2200658
babajaga
Piles ? Nie pisz
Posté le 23-08-2013 à 14:44:23  profilanswer
 

Yep, exec etait desactive merci :hello:
 
Maintenant j'ai un souci avec screen :lol: 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

n°2201773
PierreC
Posté le 04-09-2013 à 17:21:09  profilanswer
 

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;
 
        }


---------------
Du tofu en Alsace : www.tofuhong.com
n°2202084
skeye
Posté le 06-09-2013 à 16:48:32  profilanswer
 

Tu espères faire quoi en appelant screen depuis un script php?[:petrus dei]


---------------
Can't buy what I want because it's free -

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Impossible d'executer script linux sous PHP

 

Sujets relatifs
Ouverture Terminal Linux + Ligne de commande[Topic unic][Ada][Gnu/Linux] La programmation pas à pas.
[PHP] Problème de chemin relatifRecherchons stagiaire développeur PHP - Septembre
PHP Fatal error - Allowed memory size exhaustedScript qui ouvre une pop-up à la perte réseau
Cacher un mot de passe dans un script powershellmkdir avec une espace dans le nom de fichier dans un script.
recherche Script Html pour Supprimer la cesure automatiqueCombo Lighttpd / PHP - FastCGI / SQLite / Wordpress
Plus de sujets relatifs à : Impossible d'executer script linux sous PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR