ошибка Status: 500 Internal Server Error в cron задаче

lara_

Новичок
Добрый день.
Есть cron задача по обновлению инфы в БД: импорт товаров из Excel файла.
Результат работы скрипта приходит мне на почту:

PHP:
Status: 500 Internal Server Error
X-Powered-By: PHP/5.3.28
Content-type: text/html
На самом деле в письме должна быть инфа о том, сколько товаров было импортировано.
Например,

HTML:
<p>Обновлено 9866 товаров.</p>
Я вызывала этот скрипт напрямую в браузере http://mysite.com/script/update.php.
Скрипт выполнился без проблем.

Вопрос в том почему не выполняется cron задача?

Сам скрипт лежит не в корневой директории.
Файл .htaccess в папке со скриптом:

AddDefaultCharset utf-8

Файл .htaccess в корневой директории содержит зеркало, кеширование.
Сам сайт работает без проблем.
 

lara_

Новичок
Сron задача по обновлению инфы в БД: импорт товаров из Excel файла.
Скрип я вызывала из браузера. Он выполнился корректно.

Когда создавала cron задачу, прописала путь /usr/bin/php /home/username/public_html/script/update.php.
 

Активист

Активист
Команда форума
Хотя нет, правильнее наверное вам будет сделать так, что бы вы получали письма с крона
Код:
wget 'http://mysite.com/script/update.php' -o /dev/null -O /dev/stdout 2>/dev/null
 

lara_

Новичок
я никогда не работала с wget, поэтому плохо понимаю, что это за строки.

Письма после выполнения cron задачи ко мне и так приходят.
Я включила отображение ошибок, но Письмо сержит только
Код:
Status: 500 Internal Server Error
X-Powered-By: PHP/5.3.28
Content-type: text/html
 

Фанат

oncle terrible
Команда форума
Для начала я не понял, откуда в консольном скрипте вообще взялись НТТР заголовки...
 

lara_

Новичок
Сам скрипт выполняет импорт товаров. В итоге в письме должна быть информация, сколько товаров обновилось.
Вместо этого я получаю письмо, в кот
Код:
Status: 500 Internal Server Error
X-Powered-By: PHP/5.3.28
Content-type: text/html
В самом скрипте только считывание Excel файла (посредством библиотеки PhpExcel) и запросы к БД.
Еще есть счетчик того, сколько записей в БД обновилось.
В конце скрипта
PHP:
echo "<p>Обновлено <b>{$tblArticles_real_update_counter}</b> записей.</p>";
 

Фанат

oncle terrible
Команда форума
Для начала надо понять, что это за крон такой. Как он выполняется.

В любом случае, перед постановкой в крон, скрипт надо всегда попробовать запустить руками в консоли, и посмотреть вывод.
 

Активист

Активист
Команда форума
Для начала я не понял, откуда в консольном скрипте вообще взялись НТТР заголовки...
Это она php-cgi запускает вместо php (php-cli). Хостер видимо такой кривой. Но это не мешает, особо.

Код:
root@home:~# echo '<?php echo PHP_VERSION, "\n";?>' > test.php;
root@home:~# /usr/bin/php5-cgi test.php 
X-Powered-By: PHP/5.6.0beta3
Content-type: text/html; charset=UTF-8

5.6.0beta3
root@home:~#
А по поводу запуска через крон - запускайте через wget/curl , потому как скорее всего ваш "скрипт" не способен запускаться через bash.
 

Активист

Активист
Команда форума
А 500 отдает php-cgi, ибо ошибки в скрипте.

Код:
root@home:~# echo '<?php echo PHP_VERSION, "\n", xx();?>' > test.php
root@home:~# /usr/bin/php5-cgi test.php
PHP Fatal error:  Call to undefined function xx() in /root/test.php on line 1
Status: 500 Internal Server Error
X-Powered-By: PHP/5.6.0beta3
Content-type: text/html; charset=UTF-8

5.6.0beta3
root@home:~#
 

lara_

Новичок
Я разобралась.
Ошибка была в неправильных путях к файлу (подсказали на др. форуме).
Всем большое спасибо за помощь.
 

Фанат

oncle terrible
Команда форума
Надо писать не "разобралась", а "проблема решена".
Разобраться-то как раз не получилось.
И в следующий раз опять понадобится помощь профессиональной гадалки "с другого форума".
 

Активист

Активист
Команда форума
DOCUMENT_ROOT наверное использовался для путь, или путь был относительный. А в cron getcwd() насколько я помню равен ~
 
Сверху