Я пытаюсь запустить сценарий оболочки, используя php
сценарий оболочки (/home/scripts/fix-perm.sh) находится на одном сервере
это код, который я пытаюсь
<?php echo shell_exec('/home/scripts/fix-perm.sh'); ?>
вышеуказанный код не работает
я использую сервер linux
Может кто-нибудь, пожалуйста, помогите мне?
Shell exec принимает строку, которая должна быть фактической командой. Теперь вы передаете ему путь к файлу. Это не интерпретируется как «выполнить файл по этому пути». Вы могли бы сделать несколько вещей.
Что вам нужно сделать, так это вызвать файл с помощью программы. Назовите его с bash или sh, как указано в комментарии:
echo shell_exec('sh /home/scripts/fix-perm.sh');
Другим вариантом может быть:
$contents = file_get_contents('/home/scripts/fix-perm.sh'); echo shell_exec($contents);
Я думаю, что первый вариант будет лучше.
Важно отметить, что все команды для выполнения внешних программ ожидают действительные команды, а не путь к файлу или что-то еще. Это касается shell_exec , exec , passthru и других.