質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

4回答

2699閲覧

CentOS で構築されたwebサイトが開きません

MuraMuradai

総合スコア13

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

1クリップ

投稿2016/01/06 09:32

編集2016/01/07 02:53

初めて投稿させて頂きます。

ある仮想環境(仮想環境Aとします)にて、以下の環境にてwebサイトを2つ運用しております。
OS:CentOS5.7 64bit Apache2.2.3
サイト1:言語PHP DB MySQL
サイト2:言語PHP DB postgresql

この環境を別の仮想環境(仮想環境Bとします)へコピーする為、仮想環境Aにてイメージバックアップを作成し、仮想環境Bにて復元を行いましたが、
仮想環境Bへにアクセスしサイト1、サイト2を開こうとすると httpエラー 404が表示されサイトが開きません。
ただし、Apache自体は起動しているようでApacheTESTの画面は開き、仮想環境Aでは問題なくサイト1、サイト2が開く状況です。

仮想環境B側の/etc/httpd/comfにあるhttpd.confファイル、ファイヤーウォールの設定を確認してみましたが仮想環境Aとまったく同じ状況です。

原因を確認する為、他にどのファイル・フォルダを確認すべきか、OSのどの設定を確認すべきか教えて頂けないでしょうか?

内容としてあいまいで申し訳ございませんが
宜しくお願い致します。

------------追記 2016/01/07 11:37 --------------------------------
皆様のご回答を参考に再度調べてみました。
ps aux | grep httpd にてそれぞれどのhttpdが動いているか確認してみました。
仮想環境A
root 3459 0.0 0.2 129996 5268 ? Ss 2015 0:00 /usr/local/apache2/bin/httpd
daemon 3463 0.0 0.1 73776 2256 ? S 2015 0:00 /usr/local/apache2/bin/httpd
daemon 3465 0.0 0.7 416316 14628 ? Sl 2015 0:00 /usr/local/apache2/bin/httpd
daemon 3467 0.0 0.6 415668 13928 ? Sl 2015 0:00 /usr/local/apache2/bin/httpd
daemon 3469 0.0 1.0 423448 21968 ? Sl 2015 0:00 /usr/local/apache2/bin/httpd
daemon 21801 0.0 1.0 422268 20852 ? Sl 2015 0:00 /usr/local/apache2/bin/httpd
root 26757 0.0 0.0 65448 864 pts/1 R+ 10:43 0:00 grep httpd
仮想環境B(サイトが開けない環境)
root 3826 0.0 0.1 176424 3296 ? Ss 08:34 0:00 /usr/sbin/httpd
apache 3827 0.0 0.1 176560 3016 ? S 08:34 0:00 /usr/sbin/httpd
apache 3828 0.0 0.1 176560 2972 ? S 08:34 0:00 /usr/sbin/httpd
apache 3830 0.0 0.1 176560 2956 ? S 08:34 0:00 /usr/sbin/httpd
apache 3831 0.0 0.1 176560 2448 ? S 08:34 0:00 /usr/sbin/httpd
apache 3832 0.0 0.1 176560 2448 ? S 08:34 0:00 /usr/sbin/httpd
apache 3833 0.0 0.1 176560 2448 ? S 08:34 0:00 /usr/sbin/httpd
apache 3834 0.0 0.1 176560 2448 ? S 08:34 0:00 /usr/sbin/httpd
apache 3835 0.0 0.1 176560 2448 ? S 08:34 0:00 /usr/sbin/httpd
root 5390 0.0 0.0 61236 808 pts/0 D+ 10:43 0:00 grep httpd
という結果となり、それぞれで動いているhttpdが異なっている事が判明しました。
仮想環境Bで、usr/local/apache2/bin/apachectl startを実行しましたが、既に80番ポートで別のプロセスが実行されているような内容のエラーとなりました。次に lsof -i:80 で80番ポート使用のプロセスを確認し killall で全てを削除しusr/local/apache2/bin/apachectl startを実行すると仮想環境Bでもサイトが開く事ができました。
しかし、OSを再起動すると元に戻ってしまいます。ps aux | grep httpdの結果より仮想環境Bでは deamonがうまく立ち上がっていないように思えますがどの辺りを確認すべきか教えていただけますか。お手数おかけますが宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

Apacheがどのようにサイト1サイト2の設定をしているかわからないのですが
まずは404が出ているということはhttpd.conf上のDocumentRootのPathを確認し、そこにソースが存在するかの確認が必要かと思います。

また、Apacheのaccess.logやerror.logを吐くように設定し、確認するところからだと思います。

投稿2016/01/06 09:48

deadcode

総合スコア216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MuraMuradai

2016/01/06 23:32 編集

ご回答有難うございます。httpd.confは/etc/httpd/comfと別にusr/local/apache2/conf/にもhttpd.confがあるようで、usr/local/apache2/conf/にある分は、サイトのソースを見に行くパスが設定してありました。logを吐き出すようにしてlogを確認した所、 仮想環境A(サイトが開ける環境):usr/local/apache2/conf/のhttpd.conf 仮想環境B(サイトが開けない環境):/etc/httpd/comfのhttpd.conf を見に行っている状況のようでした。 何らかの原因で変わってしまっていると思いますが、その辺をもう少し調査してみたいと思います。
guest

0

コピーしたまま無変更で、同一ネットにつないで、全く同じ環境であれば、同じ結果になるはずです。
結果が違うと言うことは、コピー後に何か修正した(もしくは違う環境で動かしているか)のだと思いますが、その変更のうちのどれかが間違っているか、あるいは、その変更に関連して変えるべき他の所を変えていないかのどちらかです。

何をどう変えたのですか?

投稿2016/01/06 15:31

otn

総合スコア84533

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MuraMuradai

2016/01/06 23:28

ご回答有難うございます。ファイルの変換等は特に行っていませんが、OS等のソフト的な部分は同じですが、同一ネット上ではないのでIPアドレスのみを変更しております。
otn

2016/01/07 12:55

結果が違うからには、 1.何かを変更して忘れている 2.apacheが2つ入っているようなので、それぞれ別のapacheを起動しているだけとか のどちらかでしょう。 2つのOSで違う手順でapacheを起動しているのですか?手順が違えば全く同じ環境でも違う結果になって当然です。
MuraMuradai

2016/01/08 01:50

変更は何もしていないので、2.apacheが2つ入っているようなので、それぞれ別のapacheを起動しているだけとか の方に該当すると思います。環境を再作成してもう一度調べ直してみたいと思います。
guest

0

ベストアンサー

それぞれで動いているhttpdが異なっている事が判明しました

killall で全てを削除しusr/local/apache2/bin/apachectl startを実行すると仮想環境Bでもサイトが開く事ができました

とのことですので、/etc/init.d/httpd を修正して「/usr/sbin/httpd」ではなく「/usr/local/apache2/bin/httpd」が起動するようにすればよいのではないでしょうか。

投稿2016/01/07 05:15

hyper-drums-ko

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MuraMuradai

2016/01/08 01:37

返事が遅くなり申し訳ありません。 ご回答有難うございます。 >とのことですので、/etc/init.d/httpd を修正して「/usr/sbin/httpd」ではなく >「/usr/local/apache2/bin/httpd」が起動するようにすればよいのではないでしょうか。 こちらを試してみましたが、修正方法が間違っていたのかApacheが自動で起動しなくなってしまいましたので、もう一度イメージバックアップファイルより仮想環境を再作成して確認してみます。
MuraMuradai

2016/01/08 06:32

/etc/init.d/httpd を修正しOS再起動時、OS起動時でもサイトが見れるようになりました。 有難うございました。 ご回答くださった他の皆様もご協力有難うございました。
guest

0

仮想環境Aと仮想環境Bには同じURLでアクセスしていますか?

もし違うURL(例えばそれぞれhttp://IPアドレスやテスト用ドメイン)でアクセスしているのであれば、
同じURLでアクセスする様にすれば解決すると思います。
違うURLでアクセスしたいのであれば、それぞれのvirtualhostを設定する必要があります。

virtualhostの設定は

bash

1apachectl -S

で確認可能です。

  • この結果に差異が無いか、
  • /etc/httpd/conf.d/ 以下のファイルに差異が無いか、
  • どの様なURLでそれぞれの環境にアクセスしているか、したいのかを出来るだけ具体的に
  • 同じURLでアクセスしようとしている場合は、どのような仕組みで名前を解決しているか

を追記してみて下さい。

投稿2016/01/06 20:19

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MuraMuradai

2016/01/06 23:31

ご回答有難うございます。 確認後、追記させて頂きます。
MuraMuradai

2016/01/07 01:50

確認しましたので結果を記載させて頂きます。 この結果に差異が無いか  差異はありませんでした。 /etc/httpd/conf.d/ 以下のファイルに差異が無いか、  差異はありませんでした。 どの様なURLでそれぞれの環境にアクセスしているか、したいのかを出来るだけ具体的に  仮想環境A、Bともにhttp://IPアドレス/(フォルダ名)/ でアクセスしようとしており、IP直打ちでアクセスできれば十分です。 同じURLでアクセスしようとしている場合は、どのような仕組みで名前を解決しているか  同じURLでのアクセスは特に考えておりません。 宜しくお願いします。
tanat

2016/01/07 03:53

Apachectl -S の結果を記載できますか? 恐らく、仮想環境AのIPアドレスかドメインがvirtualhostとして設定されとぃるのだと思います。 その部分はAとBで環境が異なるので設定を変更する必要があります。
MuraMuradai

2016/01/07 05:44

>Apachectl -S >の結果を記載できますか? 以下に記載します。(両環境共に以下の表示となりました) httpd: apr_sockaddr_info_get() failed for (サーバー名) httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName VirtualHost configuration: Syntax OK また、動いているhttpdが異なっている事がわかりましたのでこのケースも含めて もう一度調査していきたいと思います。
tanat

2016/01/07 13:02

状況を見ると、 イメージバックアップ後に何か手を加えているが忘れている という状況に見えます。 であれば、今発生している問題以外の問題も発生してそうなので、再度イメージから仮想環境Bを作りなおすことをお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問