WordPress — Не могу запустить PHP-скрипт как cronjob

Недавно мой сайт был перенесен на другой сервер из-за обслуживания на хосте. С тех пор как я не могу больше запускать этот скрипт как cronjob: http://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-alkmaar/cron/load-shows.php

Я попытался запустить его с помощью PHP с помощью следующего cronjob:

php /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron/load-productions.php

Но я продолжал получать следующую ошибку:

Предупреждение PHP: require_once (../ inc / api.php): не удалось открыть поток: нет такого файла или каталога в /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhuis-alkmaar/cron /load-productions.php в строке 3 PHP Неустранимая ошибка: require_once (): Не удалось открыть обязательное ‘../inc/api.php’ (include_path = ‘.: / usr / local / lib / php’) в / home / provadja / domains / filmhuisalkmaar.nl / public_html / wp-content / themes / filmhuis-alkmaar / cron / load-productions.php в строке 3

Я проверил, сохраняются ли файлы, указывающие на отсутствие. И они были. Я проверил права доступа к файлам, и они установлены на 755, что должно быть более чем хорошо. Правильно?

Затем я попробовал wget со следующим cronjob:

/usr/bin/wget -O https://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-alkmaar/cron/load-shows.php

Но потом я продолжаю получать следующий URL:

wget: отсутствует URL

Использование: wget [OPTION] … [URL] …

Попробуйте «wget —help» для получения дополнительных опций.

Я действительно в растерянности здесь. Тем более, что раньше он работал нормально. Это очень расстраивает, потому что эти скрипты очень важны для моего сайта, чтобы оставаться в курсе.

Любая помощь будет принята с благодарностью. Спасибо.

4

Решение

Попробуйте запустить его так:

cd /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhui‌​s-alkmaar/cron/ && php load-productions.php

Обратите внимание на использование cd команда в начале. Это означает «изменить текущий рабочий каталог на ../cron/ и затем запустить скрипт load-productions.php».

0

Другие решения

Я предпочитаю для задач cron использовать полный путь к включенным и требуемым сценариям. Итак, вместо:

require_once("../inc/api.php");

Я вообще делаю:

$base = dirname(dirname(__FILE__));
require_once($base . "/inc/api.php");

Таким образом, сервер точно знает, где искать и не относится к определенным каталогам.

Примечание: я тоже люблю делать /path/to/php -q /path/to/script.php тоже. 🙂

0

Я процитирую комментарий fvu к моему вопросу, который я попробовал и могу подтвердить сейчас как полностью работающий:

1) существует ли /home/provadja/domains/filmhuisalkmaar.nl/public_html/wp-content/themes/filmhui‌ s-alkmaar / inc / api.php? 2) очевидная ошибка в использовании wget (-O нужно имя файла, в котором будет сохранен вывод скрипта), попробуйте wget -O / dev / null https://www.filmhuisalkmaar.nl/wp-content/themes/filmhuis-> Алкмар / хрон / загрузка шоу s.php

Большое спасибо всем за помощь!

0
По вопросам рекламы [email protected]