私は共有ホスティングをしていて、Cpanel、Apache、PHPをfastcgiで実行しています。 PHPにエラーログはどこに保存されますか。
Error_logファイルを探すためにサイト構造全体を調べなくても、共有ホスティング環境でエラーログを見つけることができる他の方法はありますか?
私はphp.ini
にアクセスできます(私はPHPバージョン5.2.16を使用しています)。
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(); ?>
phpinfo()
を試して、 "error_log"をチェックしてください
php --info | grep error
端末はエラーログの場所を出力します。
php --info | findstr /r /c:"error_log"
コマンドプロンプトはエラーログの場所を出力します
php.ini
を開き、以下の行を追加してください。
error_log = /log/myCustomLog.log
ありがとうございます @chelmertez 、 @Boom (質問へのコメント)。
LAMP環境では、phpエラーはデフォルトで以下のファイルに送られます。
/var/log/httpd/error_log
すべてのアクセスログは以下のようになります。
/var/log/httpd/access_log
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
デフォルトではphp はどこにも記録しません エラー、php.iniのerror_log
キーは私が見たすべてのインストールでコメントアウトされています。
一般的に私は:
locate php.ini
。これらのファイルでerror_reporting
値を探します。
phpログレベルの統合で十分な値に設定する必要があります。 、
例:E_ALL & ~E_DEPRECATED & ~E_STRICT
error_log
値を調べて、実際の場所を指していてコメントアウトされていないことを確認してください。
デフォルト値はフルパスではなく、ファイル名のみを与えます。このパスがどこで通常解決されるのか私にはわかりません。おそらく/var/log/
です。
あなたがグーグルコンピューティングエンジンにいるならば、それはまた/var/log/Apache2/error.log
であることができます。
そして、あなたはこのようにしっぽを見ることができます:
tail -f /var/log/Apache2/error.log
Php.iniファイルで error_log 変数を設定するときは絶対パスを使用してください。そうしないと、エラーログは相対パスに従って保存されます。
error_log = /var/log/php.errors
他の解決策はディレクトリツリーからすべてのエラーログファイルをリストする簡単なスクリプトを書くことでしょう。
もしあなたがApacheとPHPをソースからビルドしたなら、デフォルトでエラーログはあなたの${Apache install dir}/logs/error_log
、すなわち一般的に/usr/local/Apache2/logs/error_log
に生成されます。そうでなければ、リポジトリからインストールしたのであれば、/var/log/Apache2/error_log
で見つけることができます。php.ini
にもパスを設定し、phpinfo()
を呼び出して検証できます。
最善の方法は、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"でそれを上書きすることができます。
Php5-fpmログを使用している場合、デフォルトは以下になります。
/var/log/php5-fpm.log
NGINXは通常/var/log/nginx/error.logまたはaccess.logにそれを保存します。 (いずれにせよUbuntuに)
Php.iniでエラーログファイルを設定するときは、絶対パスまたは相対パスを使用できます。相対パスは、生成スクリプトの場所に基づいて解決され、スクリプトがある各ディレクトリにログファイルが作成されます。すべてのエラーメッセージを同じファイルに保存する場合は、絶対パスを使用します。ファイル。
ここにもっと見てください: http://www.php.net/manual/en/ref.errorfunc.php#53025
関数呼び出しを設定した場合は、いつでもそれを指定できます。error_log($ errorMessageforLog。 "\ n"、4、 'somePath/SomeFileName.som');
コマンドラインで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
を編集して別のログファイルの場所を指定できます。
php --info | grep error
これは役に立ちます。質問に関してsjasがコメントしました。だから私は答えとしてそれを含めました。
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はどこですか
あなたは共有環境にいて、エラーログを見つけることができません、あなたのcPanelダッシュボードのcPanelにオプションエラーがあるかどうか常にチェックしてください。あなたがエラーログを見つけることができないならば、あなたはそれをそこで見つけることができます。
CPanel検索バーでErrorを検索すると、基本的には異なるhttpエラーページのリストであるError Pagesが表示されます。その他のErrorはエラーログが表示される場所です。
共有環境を調べるためのその他の場所:/ home/yourusername/logs/home/yourusername/public_html/error_log