php file_get_contents вызывает ошибку сегментации (11)
У меня проблема, когда функция php file_get_contents вызывает ошибку сегментации error (11).
Эта проблема началась, когда многие из моих php-скриптов неожиданно стали причиной ошибок браузера, таких как "ERR_EMPTY_RESPONSE" и т. Д. Поэтому я попытался выяснить, что общего имеют все эти файлы. А потом обнаружил, что загружает данные json с внешних серверов через функцию file_get_contents. Я попытался удалить эту функцию из одного из файлов. И конечно же. Сценарий неожиданно работает (но не загружает данные. Очевидно.) Все эти сценарии загружают контент с разных URL-адресов с разных серверов разных компаний. Так что я уже знаю, что это не какой-то конкретный URL или файл.
Вот пример из моего журнала ошибок apache:
[Thu Jul 30 16:43:58.890237 2015] [core:notice] [pid 2833] AH00052: child pid 4729 exit signal Segmentation fault (11)
Я искал вокруг в течение нескольких часов. Попытка найти решения, обходные пути, альтернативные функции и т. Д. Но безуспешно. Единственное решение, которое я нашел, было изменить режим php на "fast-cgi". Что я не хочу после прочтения, что fastcgi больше не позволит мне обслуживать правила страницы через.htaccess. (На половине моих сайтов действуют правила, определенные в файлах.htaccess).
У кого-нибудь есть идеи, почему это происходит? И как это исправить? Я также могу отметить, что я никогда ничего не делал, чтобы вызвать это. Я никогда ничего не менял ни в каких конфигурациях или в чем-либо. Это просто начало происходить пару дней назад. Таким образом, должен быть какой-то способ исправить эту ошибку, верно? Заранее спасибо!
1 ответ
Попробуйте использовать другой метод для получения содержимого файла. По предложению пользователя, у которого, похоже, такая же проблема:
function get_content($URL){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$filecontent = get_content("URL");