Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Сервер выдает ошибку 500
цитата
13/01/09 в 03:44
 Wskeal
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log


При исполнении простенького php скрипта, притом что иногда скрипт исполняется до конца без этой ошибки, а иногда нет, короче как повезет))

Думал может мало времени на исполнение скриптов, попросил хостера увеличить, он увеличил до пяти минут. На сервере php в режиме Fast cgi, может поэтому не может толком выполнить скрипт? Но почему-то другие скрипты (стримротатор и трейдскрипт) работают без сбоев.

Вот код:
<?
set_time_limit(0);
$list = file("bla-bla.txt");
$file = fopen("bla-bla-bla.txt", "w+");
$data = "";
foreach($list as $url){
$url = trim($url);
$page = file_get_contents($url);
preg_match("#&image=(.*)\"\)\;#i", $page, $match);
$data = trim($url)."|".trim($match[1])."\r\n";
fwrite($file, $data);
}
fclose($file);
?>
цитата
13/01/09 в 04:38
 Pentarh
Ну так в эррор логе веб сервера должно быть все написано что ему не нравится.
цитата
13/01/09 в 12:39
 Soft-Com
для скриптов в режиме fast-cgi ограничение на время работы вводится как минимум в 2х местах, и это только на время исполнения, без учёта значения таймаута до вывода данных и т.д.

т.е. только логи тебе помогут понять что там происходит.
или скинь сюда, посмотрим.
цитата
13/01/09 в 16:21
 Wskeal
В error логах про этот скрипт ничего не пишется, хотя про другие скрипты пишутся, даже нотисы пишутся при запуске каждого пхп скрипта. А про этот пусто (((


Soft-Com: Можно поподробней, в каких двух местах?

IPCCommTimeout n (20 seconds)

стояло 20 сек. повысили до 120сек. и все равно ошибка((
цитата
13/01/09 в 16:38
 Pentarh
Долго думает перед выдачей 500 ошибки?

В цикле попробуй вот это поставить в начале

echo "Processing $url..\n"; flush();

Последний раз редактировалось: Pentarh (13/01/09 в 16:40), всего редактировалось 1 раз
цитата
13/01/09 в 16:40
 Wskeal
Pentarh: Иногда долго, иногда быстро ошибку выдает, а иногда все таки выполняет скрипт до конца без ошибки.
цитата
13/01/09 в 16:41
 Pentarh
размер файла $list = file("bla-bla.txt") в студию
цитата
13/01/09 в 16:43
 Wskeal
20кб
цитата
13/01/09 в 16:45
 Soft-Com
всё-таки работает php-fcgid

у него существует много таймаутов, попробуй
BusyTimeout
IPCCommTimeout
IPCConnectTimeout

накрутить, а лучше в момент пиковой загрузки машины запустить скрипт руками, посмотреть время, и выставить в таймаутах это время +30%
цитата
13/01/09 в 16:45
 Pentarh
Возможно сервер не может дождаться ответа от пхп скрипта.

Вообще долгие операции в пхп лучше сопровождать периодическим выводом текста. Попробуй сделать как я выше написал.
цитата
13/01/09 в 17:02
 Wskeal
Всем спасибо. Теперь работает, действительно дело было в том, что долгие операции лучше сопровождать выводом текста. Хостер чуток подсправил скрипт, чтоб он выводил результат и теперь скрипт работает до конца и ошибку не выводит.


Эта страница в полной версии