エラーでApacheが立ち上がりません

httpdを起動後、apachectlをうつと
# /usr/sbin/apachectl start
(13)Permission denied: Error retrieving pid file run/httpd.pid
となります

ls -l で
-rw-r--r-- 1 root root 6 9月 7 16:33 /var/run/httpd.pid
特に問題ないように見えます

どの箇所を確認すれば良いか教えてください

回答の条件
  • 1人2回まで
  • 登録:2007/09/07 16:54:55
  • 終了:2007/09/08 22:09:33

ベストアンサー

id:withgod No.2

withgod回答回数32ベストアンサー獲得回数12007/09/07 17:33:21

ポイント100pt

恐らく、一度そのユーザ・グループ設定が無い状態(コメントアウトとか)で起動したのでしょう。

そこで実行者(root)の権限で、pidファイルやlogが生成されたんだと思います。

pidファイルは停止した事により削除されたと思いますので(もし残ってたら、削除しちゃって下さい)、logの権限の変更か削除してから再度起動すれば良いと思います。

削除はrmですぐ出来るでしょうが、一応念のため所有権の変更は書いておきますね。

chown apache:apache /etc/httpd/logs/*

もし、/etc/httpd/logs の権限がrootになってたりapache権限の書き込みが無い場合は、書き込み権限を付けるか、所有権を変更しましょう。

#上記は全てちゃんとユーザapache,グループapacheがある上での話です。


後更に、logrotateにapacheのログをローテートさせてる場合には、そちらの方も設定を忘れないように。

#logだけならその仕業な気もしますが、pidがrootで出来てるってことは冒頭の理由でしょう・・・

id:technote7

細かくご指摘ありがとうございます。

ユーザー・グループ設定が無い状態での起動は確かにしたかもしれません

以前/etc配下の所有者を全てrootにしてしまったので。。

ご指摘の箇所

・/etc/httpd/logs/*のapacheへ所有権・グループの変更

は行いましたがエラーは変わらず出てしまいました

書き込み権限は全て644です

#apacheのユーザとグループはちゃんとあります

2007/09/07 17:59:57

その他の回答(1件)

id:withgod No.1

withgod回答回数32ベストアンサー獲得回数12007/09/07 17:14:21

ポイント100pt

apacheの実行権限はどうなってるんでしょう?

httpd.conf中に次のような感じで書いてるはずです。

User www-data

Group www-data

そのエラーメッセージから推測するに、apacheの実行権限はrootでないのにhttpd.pidに書き込もうとしてエラーを出してると思います。


ところで次のようになっていますが

エラーでApacheが立ち上がりません

httpdを起動後、apachectlをうつと

既に立ち上げた状態で更に起動しようとしてるのでしょうか?

#普通は、httpd=apacheです、起動はinit.d以下のスクリプトですると思います。

#直接apachectlを使う事って、tarからインストールとかしなければ最近では殆ど無い気がしますし、その場合は大抵 /usr/local以下だと・・・

再起動をしようというなら、restartだと思いますし・・・。

既に立ち上げてるのにも関わらず、起動しようとしてこけてるかもしれませんし。

id:technote7

apacheは

User apache

Group apache

となっています。

httpdを一度落としてapachectl startさせたところ下記のエラーとなりました

(13)許可がありません: httpd: could not open error log file /etc/httpd/logs/error_log.

Unable to open logs

となり

権限を調べると

ls -l /etc/httpd/logs/error_log

  • rwxr-xr-x 1 root root 2494263 9月 7 17:17 /etc/httpd/logs/error_log

となっています

2007/09/07 17:21:31
id:withgod No.2

withgod回答回数32ベストアンサー獲得回数12007/09/07 17:33:21ここでベストアンサー

ポイント100pt

恐らく、一度そのユーザ・グループ設定が無い状態(コメントアウトとか)で起動したのでしょう。

そこで実行者(root)の権限で、pidファイルやlogが生成されたんだと思います。

pidファイルは停止した事により削除されたと思いますので(もし残ってたら、削除しちゃって下さい)、logの権限の変更か削除してから再度起動すれば良いと思います。

削除はrmですぐ出来るでしょうが、一応念のため所有権の変更は書いておきますね。

chown apache:apache /etc/httpd/logs/*

もし、/etc/httpd/logs の権限がrootになってたりapache権限の書き込みが無い場合は、書き込み権限を付けるか、所有権を変更しましょう。

#上記は全てちゃんとユーザapache,グループapacheがある上での話です。


後更に、logrotateにapacheのログをローテートさせてる場合には、そちらの方も設定を忘れないように。

#logだけならその仕業な気もしますが、pidがrootで出来てるってことは冒頭の理由でしょう・・・

id:technote7

細かくご指摘ありがとうございます。

ユーザー・グループ設定が無い状態での起動は確かにしたかもしれません

以前/etc配下の所有者を全てrootにしてしまったので。。

ご指摘の箇所

・/etc/httpd/logs/*のapacheへ所有権・グループの変更

は行いましたがエラーは変わらず出てしまいました

書き込み権限は全て644です

#apacheのユーザとグループはちゃんとあります

2007/09/07 17:59:57
  • id:tezcello
    httpd が既に起動しているのなら、
    # /usr/sbin/apachectl start
    で再度起動する必要は無いのでは?
  • id:takabow
    2の方が言うように、Apache停止時にhttpd.pidが残ってるのならば削除すれば動くかなと。
    通常httpd.pidはApache起動時に生成され、停止時に削除されます。
  • id:withgod
    これ以上はここでやり取りすればいいのかな?
    はてな始めたばかりで良く解ってません・・・
    >エラーは変わらず出てしまいました
    同じエラーですか?
    その場合
    >もし、/etc/httpd/logs の権限が~~~
    は行いましたか?
  • id:technote7
    実は私自身も始めたばかりでよく分かっていません。。。すいません。

    # ls -l /etc/httpd/logs
    lrwxrwxrwx 1 root root 19 5月 11 14:51 /etc/httpd/logs -> ../../var/log/httpd
    となりchownで変えようとすると変わらないのですがこれが原因でしょうか

    エラー内容は同じです
  • id:withgod
    それはシンボリックリンクですね、その先の設定が必要です。
    ls -lL /etc/httpd
    の結果を書いてみてください。
    #logs の部分だけで。

    /etc/httpd/logs ってのはググった感じで行くと、redhat系(この言い方も通じるのか?)ですかね?
    debianしかここ数年触ってないので良く解らんのですが同じエラーの場合は取り合えず次のようにしたら動くかもしれません。

    chown apache:apache /var/log/httpd
    chmod 755 /var/log/httpd

    所有者や、実行権限の付け方がRH系に適切かどうかは解りませんが(。。;
  • id:technote7
    その通りでREDHATになります

    少し端末から離れてしまうので数時間先になりますがやってみます
  • id:technote7
    #ls -lL /etc/httpd
    drwxr-xr-x 2 apache apache 4096 9月 6 14:45 logs

    所有者と実行権限を変えて見ましたが同じエラーが出てしまいました。
    こうなるとhttpd.confに原因があるのでしょうか・・・
  • id:withgod
    同じエラー とはコレと同じですか?
    >(13)許可がありません: httpd: could not open error log file /etc/httpd/logs/error_log.

    次の結果を貼り付けてみて下さい。
    ls -lL /etc/httpd | grep logs
    ls -lL /var/var/log/ | grep httpd
    ls -lL /var/log/httpd

    あと気になってるのですが、なぜapachectlなんでしょう?
    大抵のdistroは起動用スクリプトが有る筈ですが・・・
    /etc/init.d/httpd や /sbin/service 辺りは無いんでしょうか?
    そちらで起動しても同様のエラーになりますか?
  • id:technote7
    長くお付き合いいただいてありがとうございます
    エラーは
    >(13)許可がありません: httpd: could not open error log file /etc/httpd/logs/error_log.
    と同じです
    #ls -lL /etc/httpd | grep logs
    drwxr-xr-x 2 apache apache 4096 9月 6 14:45 logs

    /var/var/log/:
    このフォルダはありませんでした

    # ls -lL /var/log/httpd
    合計 279132
    -rw-r--r-- 1 apache apache 170469116 9月 4 23:08 access_log
    -rw-r--r-- 1 apache apache 32707880 8月 19 04:02 access_log.1
    -rw-r--r-- 1 apache apache 25327522 8月 12 04:02 access_log.2
    -rw-r--r-- 1 apache apache 25770095 8月 5 04:02 access_log.3
    -rw-r--r-- 1 apache apache 26595907 7月 29 04:03 access_log.4
    -rw-r--r-- 1 apache apache 2494263 9月 7 17:17 error_log
    -rw-r--r-- 1 apache apache 610175 8月 19 04:02 error_log.1
    -rw-r--r-- 1 apache apache 390985 8月 12 04:02 error_log.2
    -rw-r--r-- 1 apache apache 454549 8月 5 04:02 error_log.3
    -rw-r--r-- 1 apache apache 598863 7月 29 04:03 error_log.4
    -rw-r--r-- 1 apache apache 0 8月 8 04:02 ssl_access_log
    -rw-r--r-- 1 apache apache 1936 8月 7 10:27 ssl_access_log.1
    -rw-r--r-- 1 apache apache 3914 7月 2 13:01 ssl_access_log.2
    -rw-r--r-- 1 apache apache 6839 6月 2 08:27 ssl_access_log.3
    -rw-r--r-- 1 apache apache 756 9月 7 16:33 ssl_error_log
    -rw-r--r-- 1 apache apache 126 8月 12 04:02 ssl_error_log.1
    -rw-r--r-- 1 apache apache 1890 8月 8 04:02 ssl_error_log.2
    -rw-r--r-- 1 apache apache 1890 8月 1 16:12 ssl_error_log.3
    -rw-r--r-- 1 apache apache 1890 7月 28 13:05 ssl_error_log.4
    -rw-r--r-- 1 apache apache 0 8月 8 04:02 ssl_request_log
    -rw-r--r-- 1 apache apache 2056 8月 7 10:27 ssl_request_log.1
    -rw-r--r-- 1 apache apache 4160 7月 2 13:01 ssl_request_log.2
    -rw-r--r-- 1 apache apache 7277 6月 2 08:27 ssl_request_log.3


    /etc/init.d/httpd や /sbin/service を試しても同じ結果になります

    ググってみるとhttpd.confが誤っていても同じエラーがでるみたいです
    http://mtlab.ecn.fpu.ac.jp/WSM_2005/051030192906.html
  • id:withgod
    >/var/var/log
    は間違いです、/var/log のつもりでした(。。;

    そろそろ検討付かなくなってきたのですが・・・
    一個疑問点が。
    本件の投稿時間が"2007-09-07 16:54:55"で、error_logが"9月 7 17:17"になってます。
    エラーメッセージから察するに、書き込めないはずのファイルに書き込めてる・・・
    error_logに何か書かれてませんか?

    あと、root権限で起動しても同じエラーが発生しますか?
    わざわざroot権限で起動したことはありませんが、恐らく次のどっちかでいけると思います。
    1. httpd.confの User/Groupをroot/rootにしてからroot権限で起動
    2. 同上の User/Groupをコメントアウトしてからroot権限で起動
    #動いたからと言って、そのまま運用するのは、公開サーバではお控え下さい・・・

    /etc/httpdの中にhttpd.confのデフォルトのファイルが有れば、diff取って比較なんかしてみても良いかもしれません。

    後はエラーログを消してみるとか(退避させる)
  • id:technote7
    結局のところ私のスキルでは解決できず
    再セットアップさせました。
    ここまでお付き合い頂きありがとうございました。
    これ機にきちんとしたバックアップ環境用意します

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません