как проверить, работает ли php-файл, запускаемый через задание по расписанию

У меня есть PHP-скрипт, запущенный из командного файла. Каков наилучший способ проверить, работает ли это?

В настоящее время файл BAT имеет это:

c: \ php \ php.exe -f c: \ www \ somedomain \ customcode \ automatic_scripts \ simple_email.php

Я попытался дважды щелкнуть командный файл, чтобы посмотреть, будет ли он запускать скрипт php, но код внутри, похоже, ничего не делал.

Для примеров кода, используемых в этом файле:

    $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);

а также

    $headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail('[email protected]',"hello test","testing msg",$headers);

Письмо не было отправлено, и файл не был создан на сервере … Есть ли лучший способ проверить или вывести некоторые данные отладки?

0

Решение

Во-первых, запустите скрипт из командной строки, не используя командный файл, чтобы убедиться, что он даже работает правильно.

Если скрипт запускается из командной строки, но не из пакетного режима, возможно, возникла проблема с настройкой вашего пакетного файла. Это выглядит хорошо для меня, но может быть что-то конкретное для вашей установки, ОС и / или разрешений, которые здесь не ясны.

При запуске его в качестве запланированной задачи вы можете использовать коды завершения, чтобы определить, успешно ли выполняется сценарий. Лично я никогда не пробовал это с PHP и Windows, но вы можете использовать exit (0); для успешного выполнения и выхода (1); за неудачное исполнение. Этот результат может отображаться в столбце кода завершения запланированных задач (опять же, я не уверен в этом).

Вообще говоря, лучше всего записывать вывод в файл для целей отладки, так как вы можете получить контекстную информацию о проблеме (а не только состояние успеха / неудачи). Вы можете использовать метод PHP error_log () для записи в существующий файл журнала. Возможно, вам придется отредактировать файл php.ini, чтобы установить log_errors = On и error_log = syslog. Я полагаю, что в Windows PHP будет регистрироваться в журнале событий.

2

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

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

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