お久しぶりです。最近、でんぱ組.incにハマり始めて、とりあえずレンタルショップでCD借りてきました。
先日、ローカルネットワークでwebサーバたてようと思って、躓いたところのメモです。webサーバの設定とか以前のところです。
ちなみに、環境はWindows7にインストールしたVMWareにFedoraを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.service
、service 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を一時的に無効にしてやります。
とりあえず、これで私の環境ではサンプルページの確認できました。
ということで、メモ。