システムオペレータの週末

運用おつ。開発しようよ!

【メモ】いち早くwebサーバの稼働を確認したい!

お久しぶりです。最近、でんぱ組.incにハマり始めて、とりあえずレンタルショップでCD借りてきました。

先日、ローカルネットワークでwebサーバたてようと思って、躓いたところのメモです。webサーバの設定とか以前のところです。
ちなみに、環境はWindows7にインストールしたVMWareFedoraをNAT接続で配置してます。

ホストOSであるWindows7からゲストOSのFedoraにたてたWebサーバのサンプルページが表示するだけです。webサーバの設定は全く触りません。

httpdのインストールと起動

まずはwebサーバのhttpdをインストールして起動します。 インストールはyumコマンドで行います。

(sudo) yum -y install httpd

インストールが終わったら、webサーバを起動します。

(sudo) systemctl start httpd.service
もしくは、(sudo) service httpd start

稼働はsystemctl status httpd.serviceまたは、systemctl is-active httpd.serviceservice httpd statusのどれかでActiveの状態がactiveで確認できます。

また、任意ですが起動時に自動起動するよう設定する場合は次の通りです。

(sudo) systemctl enable httpd.service
または、(sudo) chkconfig httpd on

ひとまず、これでwebサーバの導入は完了ということにします。外部に公開したり、アプリケーションの設定などする場合は、/etc/httpd/conf/httpd.configを編集し、サーバの詳細設定を行ってください。

現状では、ホストOSからブラウザにゲストOSのIPアドレスを入力し、テストページを表示しようとしても接続できません。

ping接続確認

まずは、ネットワークがちゃんとつながっているかを確認します。基本のping

ping -c 5 192.168.XXX.XXX

ホストOSからとゲストOSからの両方を確認します。VMWareであれば基本的につながっているとは思いますが一応。。。

firewalldでhttpの許可

ここが肝です。fedoraを起動すると自動でfirewalld、もしくはiptablesが上がっています。いわゆるファイアウォールですね。ここでhttp通信ができないようになっている可能性があります。

私の環境の場合iptablesではなく、firewalldが動いてたので、今回はfirewalldでのhttpの許可を残します。

まずは、今使っているネットワークが何なのかをifconfigで調べて、firewalldのどのゾーンに入っているのかを調べます。 下の例ではeth0のゾーンを調べてます。

firewall-cmd --list-all-zone | grep eth0 -1

eth0の記述がある前後1行ずつを取り出してます。 結果はこんな感じになると思われます。

public
interface: eth0
service: mdns dhcpv6-client ssh

eth0はpublicのゾーンに入っており、serviceにhttpが入っていないので、http通信は拒否されるよう設定されています。

なので、次のコマンドでpublicゾーンにhttp通信を許可してやります。

firewall-cmd --add-service=http --zone=public

httpが許可れされますので、publicゾーンのサービスを調べてやるとhttpが追加されていると思います。

ちなみに、デスクトップを入れてる場合、そちらからGUI環境で簡単に設定することができます☆

もしかしたら、これで再度ホストOSブラウザから表示させると表示されるかもしれません。表示されたらとりあえずオッケーですね。

SELinuxの無効化

それでも表示されない場合、SELinuxが悪さしてる可能性があるので、

(sudo) setenforce 0

SELinuxを一時的に無効にしてやります。


とりあえず、これで私の環境ではサンプルページの確認できました。

ということで、メモ。