web-dev-qa-db-ja.com

どこでやる PHP エラーログを保存しますか? (php5、Apache、fastcgi、cpanel)

私は共有ホスティングをしていて、Cpanel、Apache、PHPをfastcgiで実行しています。 PHPにエラーログはどこに保存されますか。

Error_logファイルを探すためにサイト構造全体を調べなくても、共有ホスティング環境でエラーログを見つけることができる他の方法はありますか?

私はphp.iniにアクセスできます(私はPHPバージョン5.2.16を使用しています)。

350
PHPLOVER

PhpがApache 2モジュールの場合、Phpはエラーログを/var/log/Apache2に格納します。共有ホストは、多くの場合、ルートディレクトリの/logサブフォルダにログファイルを格納しています。 php.iniファイルにアクセスできるのであれば、これを実行できます。

error_log = /var/log/php-scripts.log

rinogo のコメントによると:あなたがcPanelを使っているなら、あなたがおそらく探しているマスターログファイルは に保存される(デフォルトで)。

/usr/local/Apache/logs/error_log

それ以外のすべてが失敗した場合は、ログファイルの場所を使用して確認できます。

<?php phpinfo(); ?>
281
Adam Arold

phpinfo()を試して、 "error_log"をチェックしてください

81
chelmertz

Linux

php --info | grep error 

端末はエラーログの場所を出力します。

Windows

php --info | findstr /r /c:"error_log"

コマンドプロンプトはエラーログの場所を出力します

ログの場所を設定する

php.iniを開き、以下の行を追加してください。

error_log = /log/myCustomLog.log

ありがとうございます @chelmertez@Boom (質問へのコメント)。

38
Cullub

LAMP環境では、phpエラーはデフォルトで以下のファイルに送られます。

/var/log/httpd/error_log

すべてのアクセスログは以下のようになります。

/var/log/httpd/access_log
28
Allie

LinuxでPHPエラーログを見つける方法:

eric@dev /var $ Sudo updatedb
[Sudo] password for eric:
eric@dev /var $ Sudo locate error_log

/var/log/httpd/error_log

他の同等の方法:

eric@dev /home/eric $ Sudo find / -name "error_log" 2>/dev/null

/var/log/httpd/error_log
16
Eric Leschinski

デフォルトではphp はどこにも記録しません エラー、php.iniのerror_logキーは私が見たすべてのインストールでコメントアウトされています。

一般的に私は:

  1. php.iniファイルを探します。 locate php.ini
  2. これらのファイルでerror_reporting値を探します。

    phpログレベルの統合で十分な値に設定する必要があります。

    例:E_ALL & ~E_DEPRECATED & ~E_STRICT

  3. error_log値を調べて、実際の場所を指していてコメントアウトされていないことを確認してください。

    デフォルト値はフルパスではなく、ファイル名のみを与えます。このパスがどこで通常解決されるのか私にはわかりません。おそらく/var/log/です。

11
ThorSummoner

あなたがグーグルコンピューティングエンジンにいるならば、それはまた/var/log/Apache2/error.logであることができます。

そして、あなたはこのようにしっぽを見ることができます:

tail -f /var/log/Apache2/error.log
10
Vivek

Php.iniファイルで error_log 変数を設定するときは絶対パスを使用してください。そうしないと、エラーログは相対パスに従って保存されます。

error_log = /var/log/php.errors

他の解決策はディレクトリツリーからすべてのエラーログファイルをリストする簡単なスクリプトを書くことでしょう。

9
mailo

もしあなたがApacheとPHPをソースからビルドしたなら、デフォルトでエラーログはあなたの${Apache install dir}/logs/error_log、すなわち一般的に/usr/local/Apache2/logs/error_logに生成されます。そうでなければ、リポジトリからインストールしたのであれば、/var/log/Apache2/error_logで見つけることができます。php.iniにもパスを設定し、phpinfo()を呼び出して検証できます。

5
Abhishek

最善の方法は、httpd.confファイルを調べて、デフォルトが何であるかを確認することです。特定の仮想ホストによって上書きされることもあります。まず/etc/httpd/conf/httpd.confまたは/etc/Apache2/httpd.confを見てerror_logを探します。/var/log/httpd/error_logまたは/var/log/Apache2/error_logのいずれかとしてリストされることがありますが、単にlogs/error_logとしてリストされることもあります。

この場合、これは相対パスです。つまり、/etc/httpd/logs/error_logの下になります。それでも見つからない場合は、httpd.confファイルの下部を調べて、仮想ホストが含まれている場所を確認してください。それは/etc/httpd/conf.d/<-に "other"あるいは "extra"としてあるかもしれません。あなたの仮想ホストはErrorLog "/ path/to/error_log"でそれを上書きすることができます。

5
Thomas Bennett

Php5-fpmログを使用している場合、デフォルトは以下になります。

/var/log/php5-fpm.log
3

NGINXは通常/var/log/nginx/error.logまたはaccess.logにそれを保存します。 (いずれにせよUbuntuに)

3
DarkNeuron

Php.iniでエラーログファイルを設定するときは、絶対パスまたは相対パスを使用できます。相対パスは、生成スクリプトの場所に基づいて解決され、スクリプトがある各ディレクトリにログファイルが作成されます。すべてのエラーメッセージを同じファイルに保存する場合は、絶対パスを使用します。ファイル。

ここにもっと見てください: http://www.php.net/manual/en/ref.errorfunc.php#53025

3
anemone928

関数呼び出しを設定した場合は、いつでもそれを指定できます。error_log($ errorMessageforLog。 "\ n"、4、 'somePath/SomeFileName.som');

2
cfphpflex

コマンドラインでcat <file location> | grep ErrorLogを実行して、httpd.confファイルでErrorLogを検索します。例えば:

$ cat /etc/Apache2/httpd.conf | grep ErrorLog

出力:

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
ErrorLog "/private/var/log/Apache2/error_log"

ErrorLogで始まる行を見つけたら、あなたの答えがあります。

注:仮想ホストの場合は、仮想ホストファイルhttpd-vhosts.confを編集して別のログファイルの場所を指定できます。

2
jkdev
php --info | grep error

これは役に立ちます。質問に関してsjasがコメントしました。だから私は答えとしてそれを含めました。

1
J4GD33P 51NGH
  1. ファイルマネージャのチェックログフォルダに移動できます。
  2. public_htmlフォルダのログファイルを確認してください。
  3. ログストアがある場所で "php phpinfo()"ファイルをチェックしてください。
0
Mevil Bhojani

cPanelエラーログは次の場所にあります。

/ usr/local/cpanel/logs /

/ usr/local/Apache/logs /

デフォルトでは、Apcheのログは次の場所にあります。

/ var/log/Apache

または

/ var/log/Apache2

誰かがカスタムログの場所を使用している場合は、次のコマンドを実行して確認できます。

cat/etc/Apache2 / conf / httpd.conf | grep ErrorLog

Apache2ディレクトリが存在しないというエラーが出た場合は、このコマンドを実行して正しい場所を見つけることができます。

apacheはどこですか

または

apache2はどこですか

0
Dewlance

あなたは共有環境にいて、エラーログを見つけることができません、あなたのcPanelダッシュボードのcPanelにオプションエラーがあるかどうか常にチェックしてください。あなたがエラーログを見つけることができないならば、あなたはそれをそこで見つけることができます。

CPanel検索バーでErrorを検索すると、基本的には異なるhttpエラーページのリストであるError Pagesが表示されます。その他のErrorはエラーログが表示される場所です。

共有環境を調べるためのその他の場所:/ home/yourusername/logs/home/yourusername/public_html/error_log

0
Krishna Pariyar