fIle_get_contents zwraca failed to open stream: HTTP request failed!

0

Cześć,

mam taki problem, że funkcja file_get_contents zwraca mi błąd failed to open stream: HTTP request failed!

Problem pojawia się, kiedy skrypt spod adresu URL jest wykonywany dłużej niż kilkanaście sekund, mimo, że max_execution_time jest ustawiony na 4 godziny! Wywołując skrypt bezpośrednio z przeglądarki wszystko wykonuje się tak jak powinno, bez błędów.

Spotkał się już ktoś z taką sytuacją?

0

Co to znaczy wywoływać skrypt z przeglądarki?

0

Już śpieszę z wytłumaczeniem :)

Otóż mam swój skrypt dostępny pod adresem http://domena.pl/skrypt

Powyższy skrypt uruchamiam CRONem przez inny skrypt w którym jest funkcja file_get_contents('http://domena.pl/skrypt').

Jeśli wpisuję w przeglądarkę http://domena.pl/skrypt to działa prawidłowo. Jeżeli uruchomię z przeglądarki skrypt z funkcją file_get_contents lub CRONem, wywala błąd z tematu.

1

Ale zdajesz sobie sprawę, że file_get_contents ma swój własny timeout, prawda?

0

Człowiek się uczy całe życie, nie przyszło mi to do głowy wcześniej, że ta funkcja ma swój timeout.

Jednak mam teraz problem inny, ponieważ wywoływany skrypt nawet bezpośrednio wywala Internal Error Server. Tak jak wspomniałem czas wykonywania skryptu jest ustawiony na 4 godziny, a tu po kilkdziesięciu sekundach wyrzuca błąd.

Dodam, że na innym serwerze skrypt działa bez zarzutu. Generalnie w skrypcie dodają się rekordy do bazy i zapisują zdjęcia, które są pobierane przez ImageCreateFromJpeg lub ImageCreateFromPng. Te funkcje nie mają swojego timeoutu, ale w logach nie ma błędu co go powoduje. Tym bardziej, że na innym serwerze ten skrypt działa. Co może być tego przyczyną?

0

Pewnie proces PHP jest zabijany przez serwer - zobacz jakie masz ustawienia Apache/nginxa.

0

Na co konkretnie zwrócić uwagę z php.ini? Czy chodzi Tobie o inną konfigurację?

0

Mówię o konfiguracji serwera, nie interpretera (interpretatora?) PHP.

0

Faktycznie, serwer wyłącza proces po 60 sekundach. Mimo czasu wykonywania skryptu ustawionego na 4 godziny i tak po minucie proces zostaje zabity. Dziękuję za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1