Я запускаю 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, но у меня ничего не работает.
Пожалуйста, помогите мне.
Если вы изучите 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
Других решений пока нет …