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も無効にしました。
何が問題ですか?
httpd
は、おそらくユーザーApache
またはユーザーhttpd
として実行されます。あなたのログは所有され、root
のみが書き込み可能です。これを機能させるには、ログファイルの所有権を変更してください。
これでうまくいくはずです:
~# chown Apache.apache /etc/httpd/logs/error_log
おそらく、その前者のグループを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
グループ:ApacheUbuntuを含むDebianベースのシステムでは、代わりに「www-data」を使用することに注意してください。
可能な解決策として、Apacheグループに自分を追加する必要があります
usermod -a -G Apache (username)
次に:
chgrp Apache (folderPath)
chmod g+rwxs (folderPath)
とにかくそれは奇妙です...これがあなたの問題を解決したかどうか教えてください、それが解決しなかった場合、あなたが私に詳細情報を提供する限り、私はそれを編集します:)