Сейчас мой вызов в разделе заданий CRON в CPanel выглядит так:
nice php /home/user/public_html/process.php
После последних обновлений CentOS и PHP 5. 2, я получаю эту ошибку на всех заданиях CRON:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0
Что еще хуже, Функции PHP не распознаются (например, mysql_connect
и require_once
) (только в скриптах CRON, хотя из CPanel обычные публично доступные файлы PHP загружаются в публичный интернет без проблем).
Из некоторого гугления, похоже, что мне нужно запустить его от имени пользователя "nobody", чтобы он работал правильно.
Если бы я был в shell, я бы сначала сделал su -s /bin/bash nobody
, чтобы действовать как этот пользователь, но в CRON-скриптах CPanel это не работает.
UPDATE: Все ошибки файла процесса php при запуске из CRON, как было запрошено:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: cannot open shared object file: No such file or directory in Unknown on line 0
Warning: require_once(../users/config/application_top.php): failed to open stream: No such file or directory in /home/username/process.php on line 34
Fatal error: require_once(): Failed opening required '../users/config/application_top.php' (include_path='.:/usr/share/pear:/usr/share/php') in /home/username/process.php on line 34
Файлы, отмеченные внутри require_once(), действительно есть, так что я понятия не имею, почему он так говорит. И это работает уже несколько месяцев... Я должен предположить, что это было yum update
, которое убило это.
Предупреждение PHP: PHP Запуск: невозможно загрузить динамическую библиотеку '/usr/lib64/php/modules/ssh2.so' - /usr/lib64/php/modules/ssh2.so: не удается открыть файл общих объектов: в Неизвестном нет такого файла или каталога в строке 0
Убедитесь, что у вас есть то же самое:
при выполнении в задании cron. Вы можете записать вывод echo $ PATH
и env
во временный файл и сравнить его с результатом при запуске из командной строки.