web-dev-qa-db-ja.com

権限が拒否されました:httpd:エラーログファイル/ etc / httpd / logs / error_logを開けませんでした

CentOS 6.7でhttpd searviceを再起動したいのですが、次のエラーが発生します。

/etc/init.d/httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: (13)Permission denied: httpd: could not open error log file /etc/httpd/logs/error_log.
Unable to open logs
                                                           [FAILED]

これはerror_logです。

ls -Z /etc/httpd/logs/error_log
-rw-r--r--. root root unconfined_u:object_r:var_t:s0   /etc/httpd/logs/error_log

Selinuxも無効にしました。

何が問題ですか?

7
MLSC

httpdは、おそらくユーザーApacheまたはユーザーhttpdとして実行されます。あなたのログは所有され、rootのみが書き込み可能です。これを機能させるには、ログファイルの所有権を変更してください。

これでうまくいくはずです:

~# chown Apache.apache /etc/httpd/logs/error_log
5

おそらく、その前者のグループをApacheに変更する必要があります。サーバーの所有者としてrootを持つことはお勧めできません。とにかく、Apacheはhttpの開始後に自分で変更する必要があります...

httpd Wiki から:

始める前に、Apache HTTPサーバー(httpd)が特定のユーザーおよびグループとして実行されていることを認識する必要があります。

Linuxおよび他のほとんどのUnixライクなシステムでは、httpdは「root」ユーザーとして起動されます。 UID = root、GID = root。これが必要なのは、このユーザーだけがポート80および443(実際には1024未満のもの)にバインドできるためです。

Httpが起動し、そのポート(httpd.confのListenステートメントで定義)にバインドした後、ユーザーをhttpd.confで指定されたものに変更します。通常:

ユーザー:Apache
グループ:Apache

Ubuntuを含むDebianベースのシステムでは、代わりに「www-data」を使用することに注意してください。

可能な解決策として、Apacheグループに自分を追加する必要があります

usermod -a -G Apache (username)

次に:

chgrp Apache (folderPath)
chmod g+rwxs (folderPath)  

とにかくそれは奇妙です...これがあなたの問題を解決したかどうか教えてください、それが解決しなかった場合、あなたが私に詳細情報を提供する限り、私はそれを編集します:)

1
Asur