O log de acesso especificado em httpd.conf para um site mostra apenas as informações das conexões de entrada. Para conexões de saída, como as emitidas pela função php file_get_contents, como posso obter o log?
O log de acesso especificado em httpd.conf para um site mostra apenas as informações das conexões de entrada. Para conexões de saída, como as emitidas pela função php file_get_contents, como posso obter o log?
A modificação de aplicativos PHP de terceiros pode não ser uma solução viável. O proxy HTTP deve ser usado por pelo menos dois motivos:
Não há nenhuma solução que possa ser apenas ligada, mas essa funcionalidade deve ser implementada.
Uma abordagem possível é:
Faça um wrapper em torno das funções que fazem solicitações de saída:
Em seguida, use
log_file_get_contents()
para todas as solicitações que deseja registrar.Uma função de wrapper semelhante precisa ser escrita para outras funções usadas para solicitações de saída.
Adaptando minha resposta para Como obter facilmente todos os endereços HTTPS aos quais um aplicativo se conecta externamente? :
Em Monitorando arquivos continuamente com lsof , você pode usar
lsof
em conjunto com a-r
opção repeat ( ). O seguinte se repete a cada dois segundosque lhe dará um registro histórico progressivo a cada 2 segundos:
Nota : Cada intervalo de dois segundos é separado por
=======
.Você poderia então canalizar a saída para um arquivo, assim
Se você não deseja registrar todas as solicitações HTTP(S) de saída, pode
grep
usar o nome do seu script/processo:Acho que
grep
deve funcionar, mas não consigo testar.Reconhecidamente, a saída não é tão bonita quanto usar
mas isso forneceria apenas um instantâneo instantâneo das solicitações de saída atuais :
Novamente, para restringir a saída apenas ao processo PHP, você pode usar grep
Não há log prontamente disponível. Você precisaria de uma solução específica para o seu sistema operacional.
Se você é o programador, então você pode tentar redeclarar as funções nativas do PHP usando namespaces e a
auto_prepend_file
diretiva php.ini.Saída:
Além disso, você deve certificar-se de fazer isso com quaisquer outras funções ou classes que façam solicitações da Web, como:
E possivelmente mais que desconheço.