php file_get_contents causa falha de segmentação (11)

0

Estou com um problema em que a função php file_get_contents causa um erro de falha de segmentação (11).

Esse problema começou quando muitos dos meus scripts php de repente começaram a causar erros no navegador como "ERR_EMPTY_RESPONSE", etc. Então eu tentei descobrir o que todos esses arquivos tinham em comum. E então descobri que carrega dados json de servidores externos através da função file_get_contents. Eu tentei remover essa função de um dos arquivos. E com certeza. O script funciona de repente (mas não carrega os dados. Obviamente.) Todos esses scripts carregam conteúdo de URLs diferentes de servidores diferentes de empresas diferentes. Então eu já sei que não é nenhum URL ou arquivo específico.

Aqui está uma amostra do meu log de erros do apache:

[Thu Jul 30 16:43:58.890237 2015] [core:notice] [pid 2833] AH00052: child pid 4729 exit signal Segmentation fault (11)

Eu tenho procurado por horas. Tentando encontrar soluções, soluções alternativas, funções alternativas, etc. Mas sem sorte. A única solução que encontrei foi mudar o modo php para "fast-cgi". O que eu não quero depois de ler que o fastcgi não me deixará mais servir as regras da página via .htaccess. (Metade dos meus sites executa regras definidas em arquivos .htaccess).

Alguém tem alguma idéia do porquê isso está acontecendo? e como consertar isso? Eu também posso notar que eu nunca fiz nada para causar isso. Eu nunca mudei nada em configurações ou qualquer coisa. Simplesmente começou a acontecer há alguns dias. Então deve haver alguma maneira de corrigir esse erro, certo? Obrigado antecipadamente!

    
por HaakonHawk 30.07.2015 / 19:24

1 resposta

0

Tente usar outro método para obter o conteúdo do arquivo. Como sugerido por um usuário aqui que parece ter o mesmo problema:

link

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");
    
por TheFisch 19.08.2015 / 10:11