Я посмотрел на другие ответы, которые они не подходят для этого случая.
Я использую полный путь к файлу. Код, который я скопировал, упрощен.
run.php содержит:
shell_exec("php /var/www/html/sync/chourly.php $position $quotientx > /dev/null 2>/dev/null &");
если я использую вручную php run.php
— это прекрасно работает.
вот строка на crontab -e:
05 * * * * /usr/bin/wget -O /dev/null http://sync.eeeww.com/run.php
снова запускается файл run.php, НО chourly.php не запускается. Я использую CentOS 6
какие-либо предложения, пожалуйста?
Дополнение: я проверил разрешения, которые я использую ec2-user для запуска php run.php, и crontab использует то же самое разрешение. он может запустить файл, но именно там возникает проблема с shell_exec
Использует /var/www/html/sync/chourly.php $SERVER['DOCUMENT_ROOT']
? Поскольку вы явно вызываете интерпретатор php (не mod_php), вызов `$ SERVER [‘DOCUMENT_ROOT’] не будет работать так, как вы ожидаете.
Попробуйте вручную запустить cron из оболочки, чтобы увидеть, где он выходит из строя.
cd /
su - your_httpd_usersame -c "/usr/bin/wget -O /dev/null http://sync.bitpine.com/run.php"
Других решений пока нет …