自作PHPのログ出力先はどこのフォルダがいいでしょうか?
既存のアプリであれば/var/logですが、自作アプリもそこへ出力するべきか
それとも他に出力したほうがいいのか悩んでいます。
アドバイスよろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
運用状況によりますが
/usr/local/var/log
とか
/usr/local/php/var/log
的なディレクトリでもよいかと。
ただし、アクセスログはhttp側に任せるべきなので、どういった実行結果やエラーを
どういったログに残したいかによります。
またCLIでのログは極力loggerで制御して下さい
投稿2017/10/25 04:38
総合スコア114769
0
PHPは特に指定しない場合は標準出力にログを吐き出すようです。
Apache越しにPHPを起動した場合は/var/logsの配下に吐き出すようです。
どこに出力するべきか?
色々調べましたが、PHPの公式サイト、PHPRightWay、Qiitaなどと調べましたが○○に出力すべきというベストプラクティス的な情報は得られませんでした。
というわけで、Linux自身のディレクトリ構成の規格に沿うことにします。
@ITというサイトで各ファイルはどこに格納されているべきかという紹介をしてくれています
こちらの記事から抜粋していきます。
ディレクトリ/ファイル構成の標準規格FHS
さまざまなシステムで似たり寄ったりの構成になっていますが、やはり細かい違いはあります。
これを統一すべく策定されたのがFilesystem Hierarchy Standard(FHS)で、
2001年8月時点ではバージョン2.2がリリースされています(http://www.pathname.com/fhs/)。
/var
プリントやメール、ネットニュースのスプール、キャッシュといった作業用エリア、ログファイルなど、
変化していく(variable)ファイルを配置するディレクトリです。
/tmpと違って、リブートしても削除されません。
/var/log
各種プログラムの動作記録を収めているのが/var/logです。
例えば、ブート時のメッセージを収めたboot.logを見ることで、起動時に特定のハードウェアを認識しているかどうかを確認したりします。
どうやらUnix / Linux系OSはFHSという
こういうディレクトリを用意しているので、その配下にファイルを格納してくださいねー
…という勧告を行っているようです。
素直にFHSに従い、/var/logの配下に出すようにするのが普通でしょうね。
ただし、そこから先は@ITさんの記事だけではよくわからないですね。
実際にFHSを見に行くと書いてありました。
/var/log : Log files and directories
Purpose
This directory contains miscellaneous log files.
Most logs must be written to this directory or an appropriate subdirectory.
ログファイルは/var/logの直下か、適切にサブディレクトリを切ってその配下に出力しなさいと書いてあります。
自作PHPのログ出力先はどこのフォルダがいいでしょうか?
一般的には「/var/logs」の配下に新しいプロジェクト名のディレクトリを切って、そこで運用するのが自然でしょう。
運用ルール的な説明をしておくと、
FHSはLinuxディストリビューションの開発者に対してかなりの強制力を持ちますが、
利用者レベルではそこまで厳格に受け止める必要はなさそうです。
現にApacheはFHSの現行3.0や2.3では宣言されていない/var直下にwwwというディレクトリを作ってそこに静的ファイルを格納して動作する仕組みになっています。
(FHSに厳密に従うのであれば、/opt配下にディレクトリを作成するのが自然でしょう。ただしApacheが出来た当時はFHSのバージョンも古くて、例えば/opt等のディレクトリが宣言されてなかったとか?この辺はよく分かってませんが…)
実際にログを吐き出す際、
例えばアクセスが激しいサーバの場合ログが大量になることが想定されるので、
外付けHDDをマウントして、/mnt/hoge/huga/logs
等のパスに対してログを出力するような運用が考えられます。
ただし、FHSを知っているエンジニアは真っ先に/var/logsの配下を覗くと思いますので、
そこにログファイルを吐き出さない場合は予め周知しておく必要があるでしょう。
投稿2017/10/25 07:36
編集2017/10/25 08:05総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
CentOS(Redhat)ならば
/var/log/phplog
または一階層だけ下に掘って
/var/log/php/phplog
が、一般的かと思います(私の好みは後者です)
ただ、これはユーザの利用方法にもよりますが
あえてWEBサイトを管理しているOwnerのホームディレクトリ配下に出力する人もいます。
例)
■ホームディレクトリ
/home/hoge
■ログディレクトリ
/home/hoge/logs
■ドキュメントルート
/home/hoge/website
このメリットは、chroot制限のかかっているサーバ環境において、FTPで直接ログを取得できることです。
逆にデメリットとしては、ログの保管先がバラバラになることで管理が大変になることです。
保存先については色々と意見があるかと思いますので、参考までに・・・。
※特殊なディレクトリを指定してかつ「logrotate」を忘れると大変なことになるのでご注意ください
投稿2017/10/25 05:56
編集2017/10/25 05:57総合スコア240
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/25 05:03
2017/10/25 05:18
2017/10/25 06:16
2017/10/25 06:38
2017/10/25 08:08
2017/10/25 15:07