2010-07-02 18 views
0

Je suis en train de lancer un shell d'un de mes contrôleurs dans une applications CodeIgniter PHP,système PHP() aide pas de commandes simples fonctionnent

Je suis en train d'exécuter le fichier /x/sh/xpay4.sh mais je viens d'obtenir 127 retourné au écran, je peux même utiliser les commandes de base comme ls ou pwd peut tout expliquer pourquoi ce serait, je pensais que ce serait peut-être safe_mode quand je ini_get('safe_mode') retourne 1

+4

Votre utilisateur PHP a les autorisations pour exécuter xpay4.sh? –

+0

comment puis-je trouver mon utilisateur PHP? –

+1

whoami dit qui vous êtes (en tant qu'utilisateur), puis pour vérifier la permission je pense que ls -l pourrait vous donner la réponse sur les permissions. – dierre

Répondre

1

fonction system est limitée en mode sans échec.

Vous ne pouvez exécuter des programmes dans le safe_mode_exec_dir. Pour des raisons pratiques ce n'est actuellement pas autorisé à avoir .. composants dans le chemin de l'exécutable. escapeshellcmd() est exécutée sur l'argument de cette fonction.

http://www.php.net/manual/en/features.safe-mode.functions.php

0
retourne système()

seule la dernière ligne de la sortie de la coquille. Semble likt c'est "127".

Si vous avez besoin de la sortie toute la place, essayez:

$output = array(); 
exec('/x/sh/xpay4.sh', $output); 
echo implode("<br>", $output);