仮想環境のLinux上のhttpdにPCやスマホのブラウザからアクセスする

レンタルサーバーのLAMP環境へデプロイする際の練習で、Windowsのローカル環境の仮想環境にLinuxのインストールをおこない動作確認をおこないました。

今回は仮想環境のLinux上にhttpd(Apache HTTP Server)のインストールをおこない、同じLAN内のPCやスマートフォンのブラウザから、Linuxのhttpdにアクセスするところまでの手順の説明をしたいと思います。

動作確認環境

OS:Windows10(64bit)
仮想環境:VirtualBox + CentOS7(64bit)

公式サイト

VirtualBox
https://www.virtualbox.org/

CentOS
https://www.centos.org/

VirtualBoxのインストール

上記のVirtualBox公式サイトから VirtualBox のインストーラーのダウンロードをおこない、画面の指示に従ってインストールをおこないます。

VirtualBoxへのCentOS7(64bit)のインストール

こちらも基本的に画面の指示に従ってインストールをすすめていけばOKですが、インストールの際の設定で注意が必要な点がありますので、以下に記載します。

・CentOS7(64bit)のインストール前の仮想マシン作成時にOSのタイプとバーションを選択する必要があります。
タイプは「Linux」、バージョンは「RedHat(64bit)」を選択してください。
名前は自由に決めてOKです。

・CentOS7のインストール前の仮想マシンの「設定」にて「ネットワーク」の「割り当て」を「ブリッジアダプター」に変更します。
※初期値では「NAT」になっています。「NAT」の場合、ホストOSがルーターのような挙動(ホストOSに割り当てられているIPがルーターでいうところのグローバルIP、ゲストOSには新しいセグメントのローカルIPを割り当てるような挙動)でネットワークに接続します。
この部分を「ブリッジアダプター」に変更することによりゲストOSにもホストOSと同じセグメント上のIPを割り当てることが可能になるため、同一LAN内で自由に通信ができるようになります。
今回の検証では同一LAN内のPCやスマホから、仮想環境のLinux上のhttpdにアクセスすることを目的としているため、「ブリッジアダプター」に変更しています。

・仮想OSをはじめて起動すると、「起動ハードディスクを選択」ダイアログボックスが表示されます。
ここでは上記のCentOS公式サイトからダウンロードしたインストール用DVD-ROMのISOイメージファイルを選択します。

・インストール途中に「ソフトウェアの選択」画面が表示されます。
「サーバー(GUI使用)」にチェックをいれてください。

・インストール途中に「ネットワークとホスト名」の画面が表示されます。
「Ethernet(enp0s3)」を「オン」に設定してください。
またこの画面に表示されている「IPアドレス」は同一LAN内のPCや
スマートフォンからLinuxのhttpdにアクセスする際に必要ですので
メモ(※1)をとっておいてください。今回の例の場合、IPアドレスは
下図の通り「192.168.0.155」となります。

CentOS7へのhttpdのインストール

CentOS7のインストールが完了したら、起動をおこない、root権限で「端末」を開きます。
httpd(Apache HTTP Server)のインストールをおこなうには以下のコマンドを入力します。

yum install httpd

httpdのインストールが完了したら以下のコマンドでhttpdの起動をおこないます。

systemctl start httpd.service

PCやスマートフォンからの接続確認

httpdが起動したら、(※1)でメモをとったIPアドレス(今回の例の場合「192.168.0.155」)をブラウザに入力をおこない、アクセスが可能か確かめてみます。

まずはCentOSにプリインストールされているブラウザ「Firefox」を起動して
アクセスが可能か確認をおこないます。

無事アクセスができました。

次に別のPCやスマートフォンからのアクセスを確認してみたいと思います。

別のPCからだとアクセスできませんでした。
原因は、CentOS7ではデフォルトでfirewalld(ファイアウォールのサービス)が有効になっており、アクセスするために必要なポートが塞がれていたからです。
以下のコマンドにてhttp通信に必要なポート80番を開放します。

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

上図のように「success」と表示されれば、80番のポート開放が完了です。
あらためて別のPCやスマートフォンからのアクセスを確認してみたいと思います。

PC(Windows10):

スマートフォン(Android9)

無事にアクセスをおこなうことができました。

IPアドレスを固定する方法

上記の方法ではDHCPにより自動的に割り当てられたIPアドレスを使用しましたが、IPアドレスを固定させることも可能です。

まずは、現状のホストOSのネットワーク設定がどのようになっているか確認(※2)をしておきます。(後述するLinuxでの設定の際に必要になります。)

LinuxでIPアドレスを固定するには以下の設定ファイル(XXXXの部分は環境により異なります)をテキストエディタで開いて編集をおこないます。

・編集する設定ファイル
/etc/sysconfig/network-scripts/ifcfg-XXXX

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=XXXX
UUID=XXXX-XXXX-XXXX-XXXX
DEVICE=XXXX
ONBOOT=no

以上の設定ファイルを以下のように書き換えます。

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=XXXX
UUID=XXXX-XXXX-XXXX-XXXX
DEVICE=XXXX
ONBOOT=yes
IPV6_PRIVACY=no
DNS1=192.168.0.2
DNS2=192.168.0.1
IPADDR=192.168.0.XXX(任意の値に設定する)
NETMASK=255.255.255.0
GATEWAY=192.168.0.2

変更箇所は以下の通りです:
・「BOOTPROTO」を「dhcp」から「static」に変更する。
・「ONBOOT」を「no」から「yes」に変更する。
・「DNS1」を新規追加する。値は(※2)で確認をおこなったホストOSのネットワーク設定の「優先DNSサーバー」と同じ値にする。
・「DNS2」を新規追加する。値は(※2)で確認をおこなったホストOSのネットワーク設定の「代替DNSサーバー」と同じ値にする。
・「IPADDR」を新規追加する。XXX部分を任意の値に設定してください。
・「NETMASK」を新規追加する。値は(※2)で確認をおこなったホストOSのネットワーク設定の「サブネットマスク」と同じ値にする。
・「GATEWAY」を新規追加する。値は(※2)で確認をおこなったホストOSのネットワーク設定の「デフォルトゲートウェイ」と同じ値にする。

以上、設定は完了です。
以下のコマンドを実行することで、固定IPの設定が反映されます。

systemctl restart network

木曜日担当:nishida



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム