1

私が取り組んでいる php プロジェクトの管理機能を強化しようとしています。現在、プロジェクトはすべてのエラーを syslog に記録します。これらのエラーの syslog を読み取る機能を管理ページに付与しようとしています。ターミナルで次のように入力できます。

cat /var/log/syslog | grep projectName

ただし、次のコマンドを使用してこのコマンドを実行しようとすると、

$output=shell_exec('cat /var/log/syslog | grep projectName');

またはで:

$output=`cat /var/log/syslog | grep projectName`;

$output は常に空になります。これを行う方法はありますか?これは最善の方法ですか (IE には syslog を読み取るためのネイティブな方法があります)。

編集:問題は権限の問題のようです。www-data に syslog へのアクセス許可を与えることもできますが、何らかの理由でそれは良い考えではないように思えます。ログを読み取るネイティブな方法はありませんか?

4

3 に答える 3

3

完全に別のログファイルを作成することになりました。これはすべての許可の問題を処理しました

于 2011-03-01T00:34:44.470 に答える
1

シェルコマンドを実行する代わりに、/var/log/syslog 自分自身を php で開くことはできませんか?

于 2010-11-06T20:58:21.470 に答える
-2

sudo を聞いたことがありますか? セキュリティに関心がある場合は、これが最良の選択かもしれません。しかし、sudo ルートを使用するのは複雑すぎると思います。Web ユーザーに読み取り権限を与えるだけです。書き込み権限と読み取り権限ではありません。これがセキュリティ コンサートであるためには、誰かが syslog ファイルを読み取る php スクリプトを作成する方法が必要です。サーバーに php スクリプトをアップロードできるのがあなただけである場合は、まったく心配する必要はありません。共有ホスティングの場合、これは問題であり、サーバーの syslog を誰でも読み取れるようになるためです。

于 2010-11-06T21:15:19.760 に答える