Я пытаюсь использовать 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 сценария:
Вы уверены, что у вас нет программного обеспечения, такого как CHROOT? open_basedir также может ограничить доступ в вашей файловой системе. –
Добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия PHP-тега, например ' Php error_reporting (E_ALL); ini_set ('display_errors', 1); 'тогда остальная часть вашего кода, чтобы убедиться, что он что-то дает. –
Я добавил это в заголовок, но он все еще не показывает никаких сообщений об ошибках. Когда я пытаюсь запустить php-файл из командной строки, я получаю сообщение об ошибке: 'builder @ ae-prod-lxb101:/build2/php/dev> ./phpfile.php4 ./phpfile.php4: строка 1: синтаксическая ошибка рядом с неожиданным токеном '(' ./phpfile.php4: строка 1:' php error_reporting (E_ALL); ini_set (' display_errors ', 1);' ' – astra