Estou em hospedagem compartilhada e tenho Cpanel, Apache, PHP é executado por fastcgi. Onde o PHP armazena o log de erros?
Existe alguma outra maneira de encontrar o log de erros no ambiente de hospedagem compartilhada, em vez de ter que percorrer toda a estrutura do site para procurar arquivos error_log?
Eu tenho acesso ao php.ini
(estou usando o PHP versão 5.2.16).
error-handling
php
PHPLOVER
fonte
fonte
/var/log/httpd/error_log
ou/var/log/apache2/error.log
. Esses arquivos são de propriedade do root, portanto, você precisa ser root ou usásudo
-lo para vê-lo ou lê-lo.php --info | grep error
php --info | findstr /r /c:"error_log"
para ver onde está o arquivo de log.Respostas:
O PHP armazena os logs de erro
/var/log/apache2
se o PHP for um módulo apache2. Os hosts compartilhados geralmente armazenam arquivos de log na/log
subpasta do diretório raiz . Mas ... se você tiver acesso a umphp.ini
arquivo, poderá fazer o seguinte:De acordo com o comentário de rinogo : Se você estiver usando o cPanel, o arquivo de log principal que você provavelmente está procurando é armazenado (por padrão) em
Se tudo mais falhar, você pode verificar o local do arquivo de log usando
fonte
/usr/local/apache/logs/error_log
<?php phpinfo(); ?>
para confirmar o caminhoExperimente
phpinfo()
e verifique "error_log"fonte
echo ini_get('error_log');
?error_reporting(E_ALL|E_STRICT);
se.php.net/manual/en/function.error-reporting.phpLinux
O terminal exibirá o local do log de erros.
janelas
O prompt de comando exibirá o local do log de erros
Para definir o local do log
Abra o seu
php.ini
e adicione a seguinte linha:Obrigado @chelmertez , @Boom por estes (comentários sobre a pergunta).
fonte
php -info
alguma coisa? Você precisa ter certezaphp
se realmente chamando PHP para executar ...php.ini
e definirerror_reporting
comoE_ALL & ~E_DEPRECATED & ~E_STRICT
, ou quaisquer erros que queira ver, e definaerror_log
o caminho para o diretório em que deseja que seus erros sejam registrados. (Nota: este não é um caminho completo para um arquivo, só para um diretório.)php --info | grep log
me indicou / var / www / logs onde os logs mais recentes estavam localizados.sudo /etc/init.d/apache2 restart
Em um ambiente LAMP, os erros de php são direcionados por padrão para este arquivo abaixo.
Todos os logs de acesso estão em:
fonte
Como encontrar o log de erros do PHP no Linux:
Outra maneira equivalente:
fonte
Parece que, por padrão, o php não registra erros em nenhum lugar, a
error_log
chave no php.ini é comentada em todas as instalações que eu já vi.Geralmente eu:
locate php.ini
.Pesquise esses arquivos pelo
error_reporting
valor;O que deve ser definido para qualquer amálgama de níveis de log php que seja suficiente para você. ,
Por exemplo:
E_ALL & ~E_DEPRECATED & ~E_STRICT
Verifique o
error_log
valor para garantir que ele aponte para um local real e não seja comentado.O valor padrão não fornece um caminho completo, apenas um nome de arquivo, não sei para onde esse caminho é resolvido normalmente. Provavelmente
/var/log/
.fonte
Você deve usar o caminho absoluto ao definir a variável error_log no seu arquivo php.ini, caso contrário, os logs de erros serão armazenados de acordo com o seu caminho relativo.
Outra solução seria escrever um script simples que listaria todos os arquivos de logs de erros da árvore de diretórios.
fonte
Também pode ser
/var/log/apache2/error.log
se você estiver no mecanismo de computação do google.E você pode ver a cauda assim:
fonte
Se você construiu o Apache e o PHP a partir da fonte, os logs de erro por padrão são gerados
${Apache install dir}/logs/error_log
normalmente/usr/local/apache2/logs/error_log
. Caso contrário, se você o instalou a partir do repositório, você o encontrará em/var/log/apache2/error_log
. Você pode definir o caminho no seuphp.ini
também e verificá-lo invocandophpinfo()
.fonte
A melhor maneira é procurar no seu arquivo httpd.conf e ver qual é o padrão. Também pode ser substituído pelo seu host virtual específico. Começo olhando
/etc/httpd/conf/httpd.conf
ou/etc/apache2/httpd.conf
procuro error_log. Ele pode ser listado como / var / log / httpd / error_log ou/var/log/apache2/error_log
também pode ser listado de maneira simpleslogs/error_log
.Nesse caso, é um caminho relativo, o que significa que estará abaixo
/etc/httpd/logs/error_log
. Se você ainda não conseguir encontrá-lo, verifique a parte inferior do arquivo httpd.conf e veja onde estão os seus hosts virtuais. Pode estar em /etc/httpd/conf.d/<- como "outro" ou "extra". Seu host virtual pode substituí-lo pelo ErrorLog "/ path / to / error_log".fonte
Ao configurar seu arquivo de log de erros no php.ini, você pode usar um caminho absoluto ou um caminho relativo. Um caminho relativo será resolvido com base na localização do script de geração e você obterá um arquivo de log em cada diretório em que possui scripts. Se desejar que todas as suas mensagens de erro sigam para o mesmo arquivo, use um caminho absoluto para o arquivo.
Veja mais aqui: http://www.php.net/manual/en/ref.errorfunc.php#53025
fonte
O NGINX normalmente o armazena em /var/log/nginx/error.log ou access.log. (No Ubuntu, em qualquer caso)
fonte
Isso é útil. comentado por sjas em questão. então eu incluí como resposta.
fonte
Se você usar o registro php5-fpm, o padrão deve estar em
fonte
onde você quiser, se você definir sua chamada de função: error_log ($ errorMessageforLog. "\ n", 4, 'somePath / SomeFileName.som');
fonte
Pesquise o arquivo httpd.conf
ErrorLog
executandocat <file location> | grep ErrorLog
na linha de comandos. Por exemplo:Resultado:
Encontre a linha que começa com
ErrorLog
a sua resposta.Nota: Para hosts virtuais, é possível editar o arquivo de hosts virtuais
httpd-vhosts.conf
para especificar um local diferente para o arquivo de log.fonte
Os logs de erro do cPanel estão localizados em:
Por padrão, os logs do Apche estão localizados dentro:
ou
Se alguém estiver usando o local de log personalizado, você poderá verificá-lo executando este comando:
Se você estiver recebendo um erro de que o diretório apache2 não existe, execute este comando para encontrar o local correto:
ou
fonte
fonte
Você está no ambiente de compartilhamento e não consegue encontrar o log de erros, sempre verifique se o cPanel tem a opção Erros no painel do cPanel. Se você não conseguir encontrar o log de erros, poderá encontrá-lo lá.
Na barra de pesquisa do cPanel, pesquise Erro, ele exibirá Páginas de erro, que são basicamente listas de diferentes páginas de erro http e outro erro é onde os logs de erro são exibidos.
Outros lugares para procurar em ambiente compartilhado: / home / nome_do_usuário / logs / home / nome_do_usuário / public_html / error_log
fonte
algo assim :
ou
ou
fonte
Wordpress
O Wordpress direcionará as
error_log()
mensagens para/wp-content/debug.log
quandoWP_DEBUG_LOG
estiver definido como verdadeiro.Consulte a documentação do Wordpress para WP_DEBUG_LOG
fonte