はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

このスレッドはクローズされています。記事の閲覧のみとなります。

 httpdのサービスが機能しない
日時: 2010/11/02 02:52
名前: フェニックス

1.不明点・障害内容:httpdのサービスが機能しない
2.ログの有無   :
  (有:その内容) :
3.Distribution  :fedora
      Version :11
4.Service Name  :httpd
      Version :
5.ネットワーク構成:

初めまして、私は研究室単位でサーバを共有しており、その係を引き継いだのですが、攻撃にあい、サーバーが落ちました。そこで、fedora11で作るサーバーに関する書籍を見てインターネットへの接続はできたのですが、Webページの公開ができません。
具体的には、本のとおりにyumでインストールして、geditで設定をし、サービス設定のhttpdを有効にして開始しようとすると、このサービスは機能してません、と表示されます。
どうか、ご指導のほどお願いします。

■ コンテンツ関連情報

 Re: httpdのサービスが機能しない ( No.1 )
日時: 2010/10/21 09:10
名前: 管理者

> 具体的には、本のとおりにyumでインストールして、geditで設定をし、サービス設定のhttpdを有効にして開始しようとすると、このサービスは機能してません、と表示されます。

サービス開始時のログ「/var/log/httpd/error_log」には、どの様なメッセージが出力されていますか?

この他、SELinuxが有効になっていたりしませんか?
(「getenforce」コマンドを実行した時に「Enforcing」と出力されていませんか?)
 Re: httpdのサービスが機能しない ( No.2 )
日時: 2010/10/21 15:43
名前: フェニックス

申し訳ございません、許可がありませんと言われて、ログの見方がわからないのですが
/etc/rc.d/init.d/httpd start
とコマンドを入れると
(98)Address already in use: make_sock: could not bind to address [::]:80
[ OK ]
とでます。
また、
getenforce
と入れると、ご指摘のとおり、
Enforcing
と出力されました。
度々申し訳ございませんが、ご指導の程お願い致します。
 Re: httpdのサービスが機能しない ( No.3 )
日時: 2010/10/21 16:28
名前: 管理者

> (98)Address already in use: make_sock: could not bind to address [::]:80

原因としては、何らかのプロセスが httpd で使用するポート「80」を使っている為、サービスが起動できない理由です。


1.80ポートを使用しているプロセス番号を調べます。
実行例)
# fuser -n tcp 80
80/tcp: 1859 2990 3286 3510

実行例では、「1859」「2990」「3286」「3510」の4つが使用しています。

2.プロセス番号からサービス(プログラム)を調べます。
実行例) 上記「1」で出力されたプロセス番号「1859」を調べる場合
# ps aux | grep 1859 | grep -v grep
root 1859 0.0 0.4 261608 17832 ? Ss Sep28 0:20 /usr/sbin/httpd

出力結果の一番右が、サービス(プログラム)になります。

3.80ポートを使用しているプロセスを強制終了させます。
実行例) 上記「1」で出力されたプロセス番号「1859」を強制終了
# kill -9 1859


「1」で出力されたプロセス番号を、「2」「3」で実施して下さい。
本来は「1」-->「3」で問題ないのですが、何がポートを使用しているのか知りたい為「2」を明記しました。
理由は、上記は根本的な解決になっていない為です。

原因を調べる為、「2」の実行結果を開示して下さい。


> getenforce
> と入れると、ご指摘のとおり、
> Enforcing
> と出力されました。


SELinux は無効にしておいた方が無難です。
(知識があれば別ですが・・・。因みに当方はSELinuxの知識は無いので質問には答えられません。)

SELinux の無効化は以下をご参考下さい。

参照:http://kajuhome.com/security_trouble.shtml#n02-02
 Re: httpdのサービスが機能しない ( No.4 )
日時: 2010/10/21 17:07
名前: stranger
参照: http://ja.528p.com/

どのような攻撃をどこから受けて、どこが悪くてサーバが落ちたのか検証されましたか
サポートが切れたfedora11でサーバを構築しても、セキュリティのupdateはfedora側ではしてくれません
公共機関としてのモラルに係わることなので、あえて苦言をいいました

>/etc/rc.d/init.d/httpd start
>とコマンドを入れると
>(98)Address already in use: make_sock: could not bind to address [::]:80


すでにhttpdが起動していてさらにstartを実行したのでは?
[::]:80はipv6のアドレスと思われる
ipv6の設定はされていないでしょうから bindできないと思います

# ps aux | grep httpd
を実行してみる

rootで実行されているのが親プロセス
apache(たぶん)で実行されているのが子プロセス
になります

再度
# /etc/rc.d/init.d/httpd stop
を実行してから

# ps aux | grep httpd
を実行してみる
grep httpdの行以外に表示されないならapacheは停止しています

それでも残っているならkillコマンドを発行します
killコマンドを発行するのはrootで実行している親プロセスだけで良いです

親プロセス子プロセスの関係
親プロセスでリクエストを受けて子プロセスを立ち上げ
実際の通信を子プロセスに受け持たせます

実際にapacheが起動しているならあとはselinuxの関連でしょう
 Re: httpdのサービスが機能しない ( No.5 )
日時: 2010/10/21 17:49
名前: フェニックス

攻撃を受けたのかもしれないという仮定を引き継いだ方から聞いただけでしかない状態で、検証の術も分からないのです。至らなくて申し訳ございません。
# fuser -n tcp 80
のコマンドを打ち込んだところ、何も出ず、#が出てしまい、
# ps aux | grep httpd
を打ち込むと、
root 2676 0.0 0.0 5280 804 pts/0 R+ 17:43 0:00 grep httpd
とroot ~ grep httpdまでしか出ず、apacheは実行されていないんでしょうか。startは[OK]とでるのですが。また
# /etc/rc.d/init.d/httpd stop
の結果は[失敗]となってしまいます。
 Re: httpdのサービスが機能しない ( No.6 )
日時: 2010/10/21 18:45
名前: stranger
参照: http://ja.528p.com/

同じような事例がnetに上がっていますが
http://hsuzuki.ddo.jp/weblog/4519

お節介
あなたの研究室を経由して他の研究室のパソコンに侵入されるということもあるわけで
 Re: httpdのサービスが機能しない ( No.7 )
日時: 2010/10/21 19:33
名前: フェニックス

事例のようにやっても無理でした。
そもそも、httpd.pidファイルが、検索しても見つかりません。
 Re: httpdのサービスが機能しない ( No.8 )
日時: 2010/10/21 20:38
名前: 新高校生

>事例のようにやっても無理でした。
>そもそも、httpd.pidファイルが、検索しても見つかりません。


httpd.pidファイルはロックファイルでしょうから、httpdが動いてないときには存在しません。
事例に関して調べるなら、それよりも /etc/rc.d/init.d/httpd をエディターで開いて
該当箇所を見る方がいいです。
 
 Re: httpdのサービスが機能しない ( No.9 )
日時: 2010/10/21 21:09
名前: フェニックス

まとめますと、
# ps aux | grep httpdとするとgrep httpdの行以外に無いのでapacheは起動していない。
しかし、# /etc/rc.d/init.d/httpd startではOKと出ている。この時、
(98)Address already in use: make_sock: could not bind to address [::]:80と出たので、
事例のように起動ファイルのpidファイルのパスを修正したが現状変わらず。
また、停止しようとすると失敗する。
removeして再installしても無理。
ポート80に関して、fuser -n tcp 80で反応ないので、他で使われている様子はなし。
これは、apacheは起動はしていて機能はしていないということでしょうか。試行錯誤してはいるものの、解決方法がどうしても分かりません。大変恐縮ですが、どうかご指導お願い致します。
 Re: httpdのサービスが機能しない ( No.10 )
日時: 2010/10/22 04:30
名前: stranger
参照: http://ja.528p.com/

ある程度解かっていると思って前回の返答をしましたが、すみません

fedora11は新規インストールですか
以前のfedoraのバージョンアップですか

たぶん
/etc/httpd/conf/httpd.confで

ServerRoot "/etc/httpd"
PidFile run/httpd.pid

になっている場合、/etc/httpd/run/httpd.pidと解釈されます

/etc/httpd/runは /var/run/httpdへのシンボリックリンクになっているとおもう

下記コマンドを端末で実行すると
# cd /etc/httpd
# ls -al
run -> ../../var/run/httpd

/etc/httpd/run/httpd.pidの設定と合わせると
/var/run/httpd/httpd.pidの意味になります

/etc/rc.d/init.d/httpdでは
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
に設定されているので pidfileの部分は変更しなくても良いかも

lockfileの方が問題で
httpd(apache)が起動していないのにlockfileが存在するとエラーになるので
/var/lock/subsys/httpdの存在を確認してください

selinuxをPermissiveまたはDisabledに設定して

ps ax等でhttpdが起動していないことを確認
/var/lock/subsys/httpd
が存在したら削除した後

# /etc/rc.d/init.d/httpd configtest
(configtest httpd.confの設定が間違っていないか確認できます)
で確認して
# /etc/rc.d/init.d/httpd start

あとは解かりません

追伸
updateをされていますか
fedora11を使い続ける予定なら、いまの内にupdateしておいた方が良い
すでにサポート切れなので、しばらくするとミラーサイトからファイルがなくなります
25-Jun-2010が最終updateの日付になっていて、それ以後updateされていません
 Re: httpdのサービスが機能しない ( No.11 )
日時: 2010/10/22 12:45
名前: フェニックス

fedora11は新規インストールです。
/var/lock/subsys/httpdはgeditの場所で開くを行ったところ何も出ず、
selinuxをDisabledに設定して/etc/rc.d/init.d/httpdの設定を変えても変えなくても
ps axやps aux | grep httpdで確認したところ、httpdは起動していないようです。
しかし、startしても、
(98)Address already in use: make_sock: could not bind to address [::]:80
と出ます。サービスの設定でもやはり「このサービスは機能しません」となります。
お手上げです。どうか助けてください。
 Re: httpdのサービスが機能しない ( No.12 )
日時: 2010/10/22 12:54
名前: 管理者

# cat /etc/rc.d/init.d/httpd | grep pidfile
# ls -l /var/lock/subsys/httpd
# ls -l /var/run/httpd*

上記3つの実行結果を開示ください。
 Re: httpdのサービスが機能しない ( No.13 )
日時: 2010/10/22 13:41
名前: フェニックス

cat /etc/rc.d/init.d/httpd | grep pidfile
# pidfile: /var/run/httpd/httpd.pid
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
killproc -p ${pidfile} -d 10 $httpd
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
killproc -p ${pidfile} $httpd -HUP
status -p ${pidfile} $httpd
if [ status -p ${pidfile} $httpd >&/dev/null ] ; then

ls -l /var/lock/subsys/httpd
-rw-r--r-- 1 root root 0 2010-10-22 12:29 /var/lock/subsys/httpd

ls -l /var/run/httpd*
合計 0

以上、よろしくお願い致します。
 Re: httpdのサービスが機能しない ( No.14 )
日時: 2010/10/22 13:48
名前: 管理者

1.「/etc/rc.d/init.d/httpd」ファイルの以下の部分を変更して下さい。

pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
上記の部分を下記に変更
pidfile=${PIDFILE-/var/run/httpd.pid}

2.以下を実行してファイルを削除して下さい。

# rm /var/lock/subsys/httpd

3.httpサービスが起動できるか確認して下さい。
 Re: httpdのサービスが機能しない ( No.15 )
日時: 2010/10/22 14:00
名前: フェニックス

やはり、
(98)Address already in use: make_sock: could not bind to address [::]:80
[ OK ]
となって、サービスは機能しません。
 Re: httpdのサービスが機能しない ( No.16 )
日時: 2010/10/23 09:13
名前: stranger
参照: http://ja.528p.com/

httpd.confでipv4のみ扱うようにしてみる
(192.168.1.2の部分は自分のサーバのローカルアドレス)
#Listen 80
Listen 0.0.0.0:80
Listen 192.168.1.2:80

説明
http://httpd.apache.org/docs/2.2/bind.html
 Re: httpdのサービスが機能しない ( No.17 )
日時: 2010/10/25 19:49
名前: フェニックス

httpd.confのlisten:を81にしたら、ポート81ではもちろん、80でもlocalhostにつながりました。また、その行を消してポートの設定を行わないと、80でのみつながりました。
どうやら、ポート80が、httpd.confとは別のところでhttpdサービスに対して設定されているようで、httpd.confで80を設定すると、かぶってしまうような気がします。その設定はどこで行われているのかも知りたいのですが、見当もつきません。なので、HP作成に取りかかりました。confのルートディレクトリは/var/www/htmlのままで、そこにhtmlを入れました。最初はlocalhostで見れたのですが、ページを増やしたら、テストページに飛ぶようになってしまいました。増やしたページを消してもなおりません。度々申し訳ございません。対処法を御教授お願いします。
 Re: httpdのサービスが機能しない ( No.18 )
日時: 2010/10/26 06:18
名前: stranger
参照: http://ja.528p.com/

/etc/httpd/conf.d/welcome.confを適当な場所にコピーして消す

httpd://localhosts/でアクセスした場合
httpd.confの
DirectoryIndexで設定されているファイルが、自動で読み込まれます
 Re: httpdのサービスが機能しない ( No.19 )
日時: 2010/10/28 14:47
名前: ペングイン
参照: http://blog.trippyboy.com

> httpd.confのlisten:を81にしたら、ポート81ではもちろん、80でもlocalhostにつながりました。また、その
> 行を消してポートの設定を行わないと、80でのみつながりました。
> どうやら、ポート80が、httpd.confとは別のところでhttpdサービスに対して設定されているようで、
> httpd.confで80を設定すると、かぶってしまうような気がします。その設定はどこで行われているのかも知り
> たいのですが、見当もつきません。


既に解決済みとなっているかもしれませんが、

Listen 0.0.0.0:80
Listen 192.168.1.2:80

0.0.0.0 の中に 192.168.1.2は含まれているのですが、必要な設定でしょうか。
上記の設定が原因と思われ、共存は出来ないものと思います。

私の場合

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 80

> なので、HP作成に取りかかりました。 confのルートディレクトリは
> /var/www/htmlのままで、そこにhtmlを入れました。最初はlocalhostで見れたのですが、ページを増やしたら
> 、テストページに飛ぶようになってしまいました。増やしたページを消してもなおりません。度々申し訳ござ
> いません。対処法を御教授お願いします。


アクセスログは出力されていますか?
「ページを増やしたら」との関係があるかは分りかねますが、まずは何処にアクセスが
行なわれているのかログのご確認をお勧めいたします。
 Re: httpdのサービスが機能しない ( No.20 )
日時: 2010/10/28 17:36
名前: stranger
参照: http://ja.528p.com/

httpd -V でコンパイルオプションが解かります
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
になっていれば ipv6は有効でしょうから

listen 80 でipv4とipv6を扱うと思います

apacheのマニュアルをみて返答しました
http://httpd.apache.org/docs/2.2/bind.html

Listen 0.0.0.0:80
Listen 192.168.1.2:80
に設定すれば、一応ipv4のみ扱われるということなので・・・

OS全体でipv6を無効にしておけば、問題にもなりません
私は、OS全体でipv6を無効にしています

fedora11を使うこと自体が、セキュリティホールをつくることに
なりかねないので、技量を推し量って、単純なほうから返答しようと思った次第

■ その他

ページ先頭へ


Copyright(©)2004-2018 First home server construction. All Right Reserved.