Aller au contenu

Php Fonction Exec


Supernovaes

Messages recommandés

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.

Lien vers le commentaire
Partager sur d’autres sites

:hi: 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...

Lien vers le commentaire
Partager sur d’autres sites

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+ :hi:

Fred.

Lien vers le commentaire
Partager sur d’autres sites

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+ :hi:

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?

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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+ :hi:

Fred.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour :hi:

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.

@+

Lien vers le commentaire
Partager sur d’autres sites

Bonjour :hi:

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.