Я уже несколько дней гуглю и пытаюсь решить эту проблему с помощью моего PHP-скрипта, и надеюсь, что кто-нибудь здесь сможет увидеть проблему, которую я упускаю, чтобы заставить мой PHP-скрипт запустить мой Bash-скрипт.
Вот мой PHP:
//kickoff the yapeal script
echo "Starting yapeal.sh<br>";
echo "Current working directory: ";
echo getcwd() . "\n";
shell_exec('./yapeal.sh');
echo "<br>yapeal.sh ran, I hope.<br>";
Вот yapeal.sh
#!/bin/bash
cd /var/www/tools/applications
php -f /var/www/lib/yapeal/yapeal.php
sleep 5s
echo "`date -u` Yapeal kicked off, working" > bashoutput.log 2>&1
Вот данные по файлам:
-rwxrwxrwx 1 www-data www-data 4640 Jul 10 07:20 index.php
-rwxrwxrwx 1 www-data www-data 2845 Jul 10 07:33 working.php
-rwxrwxrwx 1 www-data www-data 232 Jul 10 07:17 yapeal.sh
Вот что я получаю в результате в веб-браузере:
Starting yapeal.sh
Current working directory: /var/www/tools/applications
yapeal.sh ran, I hope.
В файле bashoutput.log нет выходных данных.
Я проверил свой php.ini, в разделе disable_functions нет ссылок на exec или shell_exec.
решение1
Я решил свою проблему.
Изменил PHP-код на:
$output = shell_exec('./yapeal.sh');
echo $output;