Supernovaes Posté(e) le 4 février 2008 Posté(e) le 4 février 2008 Bonjour à tous, Alors voila, mon problème, j'essaye d'utiliser la fonction php exec pour pourvoir exécuter des commandes shell sur mon DS207+, mais sans résultat. D'après se que j'ai trouvé sur internet, il faut regarder au niveau de safe_mode_exec_dir, mais je peu me tromper. Après avoir envoyé un message a Ikeke, cette fonction, d'après lui, ne serait plus activé? Le gros souci, c'est que j'ai vraiment besoin de cette fonction. Alors comment faire pour activer/ré-activer cette fonction? Merci d'avance pour votre aide. Cordialement. Cédric.
B2V Posté(e) le 4 février 2008 Posté(e) le 4 février 2008 Bonjour Le gros souci, c'est que j'ai vraiment besoin de cette fonction. Alors comment faire pour activer/ré-activer cette fonction? Merci d'avance pour votre aide. J'ignore comment réactiver la commende, mais il semble que la commande" system" fonctionne Correctement. Peut être te donnera t'elle satisfaction...
fredlime Posté(e) le 4 février 2008 Posté(e) le 4 février 2008 Bonsoir, Je l'utilise dans mon script 'moniteur-web' fichier 'index.php' Et regarde mon Tuto pour le paramétrage d'Apache. Mais dans l'état, seul les binaires ou script du dossier '/usr/syno/bin' sont exécutables. Et certains dossiers sont inaccessibles. comme '/dev' A+ Fred.
Supernovaes Posté(e) le 4 février 2008 Auteur Posté(e) le 4 février 2008 Bonsoir, Je l'utilise dans mon script 'moniteur-web' fichier 'index.php' Et regarde mon Tuto pour le paramétrage d'Apache. Mais dans l'état, seul les binaires ou script du dossier '/usr/syno/bin' sont exécutables. Et certains dossiers sont inaccessibles. comme '/dev' A+ Fred. Pour se qui est de system, je vais voir si elle fonctionne pour moi. Quelle est ton tuto? EDIT: je viens de trouver ton site: dans ta signature :)Mais quelle est le tuto?
fredlime Posté(e) le 4 février 2008 Posté(e) le 4 février 2008 Re, Bien celui de 'moniteur-web' http://fredo.servehttp.com/html/Astu-06-s.htm#moniteur-web Regarde la partie 'ZONE SYSTEME' pour les modifications. A+ Fred.
Supernovaes Posté(e) le 4 février 2008 Auteur Posté(e) le 4 février 2008 Re, Bien celui de 'moniteur-web' http://fredo.servehttp.com/html/Astu-06-s.htm#moniteur-web Regarde la partie 'ZONE SYSTEME' pour les modifications. A+ Fred. ok merci, je vais potasser tout ça. Je vous tiens au courant.
Supernovaes Posté(e) le 4 février 2008 Auteur Posté(e) le 4 février 2008 je viens de faire quelques essai: Pour se qui est de la fonction system, je ne parviens pas a la faire fonctionner tout comme exec j'ai bien rajouter des php.ini => open_basedir = /bin:/usr/bin:/proc:/volume1/web:/volume2/web:/volu…………..etc j'ai essayé les deux solutions: exec("/bin/ls",$test); system("/bin/ls",$test);
fredlime Posté(e) le 4 février 2008 Posté(e) le 4 février 2008 Désolé, mais moi et le PHP, c'est pas mon fort !! Toutefois, si tu cherches a lister un dossier de cette manière, cela ne marchera pas. PHP n'affichera que la dernière ligne. J'ai lu çà, quelque part. Dans mon script, je lance uniquement un 'script shell', et ensuite j'affiche la page qu'il a générer. Sa marche selon mes besoins, donc. Pour faire autre chose, je passe la main. A+ Fred.
B2V Posté(e) le 5 février 2008 Posté(e) le 5 février 2008 Bonjour Pour moi, la fonction system s'execute, attention, le code retourné est le code de fin de transaction Ok/Nok et non le resultat de la commande, essaye de faire un system("ls > nomdunfichiertexte", $resultat), puis lis le ficher nomdunfichiertexte en php ou non pour verifier l'execution de la commande. @+
B2V Posté(e) le 5 février 2008 Posté(e) le 5 février 2008 Bonjour Dans le fichier /usr/syno/etc/php.ini - supprimer le répertoire de la ligne safe_mode_execdir = - commenter la ligne open_basedir = ... - Redemarrer le service apache /usr/syno/apache/bin/httpd -k restart
Supernovaes Posté(e) le 5 février 2008 Auteur Posté(e) le 5 février 2008 Bonjour Dans le fichier /usr/syno/etc/php.ini - supprimer le répertoire de la ligne safe_mode_execdir = - commenter la ligne open_basedir = ... - Redemarrer le service apache /usr/syno/apache/bin/httpd -k restart Ok, je vais essayer. le commande ls n'est qu'un exemple. Se que je veux éxécuter est bien plus complexe.
Supernovaes Posté(e) le 5 février 2008 Auteur Posté(e) le 5 février 2008 Bonjour safe_mode=off puis safe_mode_exec_dir = ne pas toucher a open_basedir = - Redemarrer le service apache /usr/syno/apache/bin/httpd -k restart test ce script <?php // Affiche le nom d'utilisateur qui fait tourner le processus php/http // (sur un système ayant "whoami" dans le chemin d'exécutables) echo "hello "; echo exec('whoami'); ?> repond hello admin SUPER, la fonction exec fonctionne. Un grand merci à vous. Phi, j'ai fait se que tu m'as dit de faire. En gros j'ai efface se qui avait après "safe_mode_exec_dir =" et exec c'est mis a marcher. PAr contre j'aimerais comprendre maintenant Pourquoi avoir supprimer se qui se trouvé après "safe_mode_exec_dir ="? sachant que "safe_mode" était déjà sur off. A quoi servent ses lignes? Encore merci.
Supernovaes Posté(e) le 5 février 2008 Auteur Posté(e) le 5 février 2008 vi moi aussi je suis perplexe car d'apres la doc cela fonctionne avec safe_mode sur on moins qu'il y ai une directive de compilation PHP qui le met a on par defaut la valeur de safe_mode_exec_dir est "" doc PHP safe_mode_exec_dir chaîne de caractères Si PHP est utilisé en safe mode, les fonctions comme system() et toutes celles qui permettent l'exécution en ligne de commande refuseront d'exécuter des programmes qui ne sont pas dans ce dossier. Vous devez utiliser / en tant que séparateur de dossier sous tous les environnements, y compris Windows. Le "Safe Mode" est supprimé dans PHP 6.0.0. Mais se que je ne comprend pas c'est que safe_mode est sur off donc je ne vous pas pourquoi il utilisait safe_mode_exec_dir.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.