2015-10-06 2 views
-1

Я пытаюсь использовать PHP-скрипт для вызова сценария оболочки и печати вывода в браузере.проблемы с chdir в скрипте PHP для вызова сценария оболочки

Я подтвердил, что все настройки разрешений установлены правильно, и PHP, и скрипт bash имеют полный контроль.

Если я запускаю сценарий оболочки в текущем каталоге (тот же каталог, что и файл PHP), тогда он отлично работает. Но если я попытаюсь запустить сценарий оболочки из /some/other/directory/shell.script, это не сработает. Почему это так?

Я пробовал chdir() в другой каталог, но после запуска getcwd() он никогда не менял каталогов.

Я также пробовал команду exec сам по себе, и он не работает.

<?php error_reporting(E_ALL); ini_set('display_errors',1); 

echo "<h1>EDS Count Report</h1><p>"; 

$output=shell_exec('cd /app/script/catalog/ && ./EDScount_report.sh'); 
echo $output; 
?> 

содержимое SHELL сценария:

+0

Вы уверены, что у вас нет программного обеспечения, такого как CHROOT? open_basedir также может ограничить доступ в вашей файловой системе. –

+0

Добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия PHP-тега, например '

+0

Я добавил это в заголовок, но он все еще не показывает никаких сообщений об ошибках. Когда я пытаюсь запустить php-файл из командной строки, я получаю сообщение об ошибке: 'builder @ ae-prod-lxb101:/build2/php/dev> ./phpfile.php4 ./phpfile.php4: строка 1: синтаксическая ошибка рядом с неожиданным токеном '(' ./phpfile.php4: строка 1:' astra

ответ

1

Попробуйте это пожалуйста

<?php 
$output=shell_exec('sh /path/to/otherdirectory/shellscript.sh'); 
echo $output; 
?> 

, если вы уверены, что вы можете получить доступ к этому dicertory, вы также можете использовать это:

<?php 
    $output=shell_exec('cd /path/to/otherdirectory/ && ./shellscript.sh'); 
    echo $output; 
    ?> 
+0

Это не имело никакого отношения к сожалению. – astra

+0

почему это проголосовало? Я все еще не могу решить эту проблему. – astra

Смежные вопросы