как запустить файл .sh с php?

Я пытаюсь запустить сценарий оболочки, используя 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 и других.