У меня есть 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);
Письмо не было отправлено, и файл не был создан на сервере … Есть ли лучший способ проверить или вывести некоторые данные отладки?
Во-первых, запустите скрипт из командной строки, не используя командный файл, чтобы убедиться, что он даже работает правильно.
Если скрипт запускается из командной строки, но не из пакетного режима, возможно, возникла проблема с настройкой вашего пакетного файла. Это выглядит хорошо для меня, но может быть что-то конкретное для вашей установки, ОС и / или разрешений, которые здесь не ясны.
При запуске его в качестве запланированной задачи вы можете использовать коды завершения, чтобы определить, успешно ли выполняется сценарий. Лично я никогда не пробовал это с PHP и Windows, но вы можете использовать exit (0); для успешного выполнения и выхода (1); за неудачное исполнение. Этот результат может отображаться в столбце кода завершения запланированных задач (опять же, я не уверен в этом).
Вообще говоря, лучше всего записывать вывод в файл для целей отладки, так как вы можете получить контекстную информацию о проблеме (а не только состояние успеха / неудачи). Вы можете использовать метод PHP error_log () для записи в существующий файл журнала. Возможно, вам придется отредактировать файл php.ini, чтобы установить log_errors = On и error_log = syslog. Я полагаю, что в Windows PHP будет регистрироваться в журнале событий.
Других решений пока нет …