2010-07-02 1 views
0

Я пытаюсь запустить оболочку из одного из моих контроллеров в PHP CodeIgniter приложениях,PHP системы() помогают не простые команды не работают

Я пытаюсь запустить файл /x/sh/xpay4.sh однако я просто получить 127 вернулся в экран, я могу даже использовать основные команды, как ls или pwd может любой предложить почему это было бы, я думал, что это может быть safe_mode, когда я ini_get('safe_mode') возвращает 1

+4

ли ваш PHP пользователь имеет разрешение на выполнение xpay4.sh? –

+0

Как узнать моего пользователя PHP? –

+1

whoami рассказывает, кто вы (как пользователь), а затем, чтобы проверить разрешение, я думаю, ls -l может дать вам ответ о разрешениях. – dierre

ответ

1

system функция ограничена в безопасном режиме.

Выполнять исполняемые файлы можно только в пределах safe_mode_exec_dir. Для практических причин в настоящее время нет разрешено иметь .. компонентов в пути к исполняемому файлу. escapeshellcmd() выполнен на аргументе этой функции.

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

0

системы() возвращает последнюю строку вывода оболочки. Звучит похоже, что это «127».

Если вам нужен весь выход вместо этого, попробуйте:

$output = array(); 
exec('/x/sh/xpay4.sh', $output); 
echo implode("<br>", $output); 
Смежные вопросы