Я пытаюсь запустить php-файл из crontab. Цель php - просто отправить электронное письмо пользователю. Включая файлы заголовков моей инфраструктуры php. Но у crontab, похоже, проблема с путями. Я попытался изменить его на абсолютный путь .. см. Примеры тестов ниже.Запуск PHP-файла из Crontab, который включает require_once()
Использование require_once(http://www.test.com/inc/header.php)
и работает php -f test.php
к результатам командной строки в:
PHP Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /home/user/public/test.com/public/deploy/cron/test.php on line 3
PHP Warning: require_once(http://www.test.com/inc/header.php): failed to open stream: no suitable wrapper could be found in /home/user/public/trybe-ing.com/public/deploy/cron/test.php on line 3
PHP Fatal error: require_once(): Failed opening required 'http://www.test.com/inc/header.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/user/public/test.com/public/deploy/cron/test.php on line 3
Использование require_once('../../inc/header.php');
и работает php -f test.php
результатам командной строки в файле PHP осуществляется успешно.
Но, глядя на мой счет хрон:
*/1 * * * * php /home/user/public/test.com/public/deploy/cron/test.php
И, глядя на результаты в/вар/почты /, он возвращает эту ошибку:
Message 23:
From [email protected] Thu Jun 25 13:13:02 2015
X-Original-To: user
From: [email protected] (Cron Daemon)
To: [email protected]
Subject: Cron <[email protected]> php /home/user/public/test.com/public/deploy/cron/test.php
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/user>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=user>
Date: Thu, 25 Jun 2015 13:13:02 +0100 (BST)
PHP Warning: require_once(../../inc/header.php): failed to open stream: No such file or directory in /home/user/public/trybe-ing.com/public/deploy/cron/test.php on line 3
PHP Fatal error: require_once(): Failed opening required '../../inc/header.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/user/public/test.com/public/deploy/cron/test.php on line 3
Это кажется, что кронтаб не может для запуска php-файла, как при его запуске из командной строки. Как я могу заставить это работать?
Вы видите, что я делаю неправильно, и предлагаю решение?
Thnnks
вы можете показать свою структуру папок? – jagad89
Ответ Oldskool прав - случайно 'require_once()' всегда будет требовать путь к файлу, а не URL (если вы не измените этот параметр, упомянутый в сообщении об ошибке, который я бы не рекомендовал) – d0ug7a5
Посмотрите [здесь] (http : //stackoverflow.com/questions/6649104/require-once-php-error) – jagad89