include_once не работает при использовании в сценарии оболочки

Я запускаю php-файл с помощью сценария оболочки, как ./first.sh

В first.sh я запускаю файл php, используя следующую команду

COMMAND="/usr/bin/php /home/mydirectory/public_html/members/cron/cron.php"

Под файлом Cron у меня есть этот код

mail('[email protected]','fff','aaa');

include_once '/home/mydirectory/public_html/members/wp-config.php';

mail('[email protected]','fff1','aaa1');

когда я выполняю .sh файл, я получаю только первое письмо, а не получаю второе. Под вторым письмом я написал еще одну кодировку для извлечения постов WordPress, но она не работает. И если я нажимаю cron.php в браузере, используя URL-адрес домена, он работает абсолютно нормально.

Я проверил так много других ответов от stackoverflow, но у меня ничего не работает.

Пожалуйста, помогите мне.

0

Решение

Если вы изучите wp-config.php (я полагаю, это файл конфигурации WordPress), то в нижней части скрипта вы увидите строку

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

К сожалению, WP включает файл «начальной загрузки» непосредственно в config … wp-settings.php включает в себя множество других файлов wp, инициализирует и т. Д. Итак, это необходимо отладить на уровне WordPress. WP заканчивает выполнение где-нибудь в wp-settings.php или другом включаемом файле, поэтому ваш php cron завершает работу / умирает.
В настоящее время у меня нет локальной установки wp для отладки (извините), но я на 99% уверен, что wp завершает выполнение.

Вы можете жестко закодировать необходимую информацию из wp-config, такую ​​как хост базы данных, имя пользователя и т. Д., В ваш cron.

В противном случае вы можете проанализировать php-файл с помощью token_get_all для получения значений (я столкнулся с подобной проблемой 2 года назад, к сожалению, у меня есть код в старом офисе работы).
http://php.net/manual/en/function.token-get-all.php

0

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

Других решений пока нет …

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