自宅サーバ作業第4回より、自宅サーバ作業第3回にてインストールしたCentOSへ各種ソフトウェアをインストールし、ホームページを制作するための開発環境を整えていきます。
開発環境を整えるためにインストールするソフトウェアはWebサーバソフト「Apache」、データベース「MariaDB」、プログラミング言語「PHP」です。
これらの各種ソフトウェアとLinuxOS(CentOSはLinuxOSのうちの一つ)を合わせて、通称「LAMP(ランプ)環境」と呼ばれています。
自宅サーバ作業第4回ではWebサーバソフト「Apache」のインストールと設定、ホームページを公開するための設定作業を行います。
目次
ホームページを公開するために用意するインフラ設備の一つに「Webサーバ」があります。Webサーバはサーバ内に保存されている公開用ファイルをWeb上で表示できるようにしたものです。
Webサーバといっても、元のPCは特殊な装置を組み込んでいるわけでもプロバイダで特別な契約をしているわけでもなく家電量販店等で安売りしているような、いわゆる「普通のPC」です。
Apacheはこの普通のPCをWebサーバ化するためのソフトウェアの一つとして提供されているフリーソフトウェアな優れものです。
まずApacheをインストールするため仮想マシン(以下、ゲストOSで呼称)を起動します。しばらくして、下の白テキスト&黒画面が表示されます。ゲストOSインストールおよび起動方法は自宅サーバページ過去回を参照ください。
ゲストOSに直接コマンドを入力していっても良いのですが、ホストOSとゲストOSの操作切り替えの度に毎回commandキーを叩いたりゲストOS内の画面スクロールができなかったり日本語で表示されなかったりコピーペーストができなかったり…といろいろ面倒なので、mac付属のアプリケーション「ターミナル」を用いてゲストOSを操作していきたいと思います。
macのアプリケーションのユーティリティ内に「ターミナル.app」があるので起動します。デフォルト設定では以下のような白い画面が表示されるかと思います。
ターミナルに以下のコマンドを入力します。コマンド内の”ゲストOSのIPアドレス”は自宅サーバ作業第3回CentOSのインストールの手順6.で設定した「アドレス」を入力します。
ssh root@"ゲストOSのIPアドレス"
コマンドを打ち終わってEnterキーを押すと、ROOTパスワードを聞かれるので入力します。パスワードは自宅サーバ作業第3回CentOSのインストールの手順10.で設定したROOTパスワードです。
パスワード入力時、キー入力しても画面に表示されないので打ち間違いのないよう入力していきます。また、初回ログイン時のみ、「Are you sure you want to continue connecting (yes/no)?」などと聞かれますが、yesとだけ入力しEnterキーを押して作業を続行します。
ログインに成功すると、
[root@localhost ~]#
というテキストが左側に表示されるようになります。ユーザ作成するまではこのROOT権限のまま作業していきます。
Apacheをインストールする前に、OSに既にインストールされているパッケージの更新をしたいと思います。これには、パッケージ管理システムのyumコマンドを用います。
yum -y update
“Could not resolve host: ~~”と表示されてパッケージ更新ができない場合、ネットワーク環境が間違っていてインターネットに接続できていない可能性があります。その場合は、NetworkManagerより設定変更を行いサービスを再起動したのち、もう一度パッケージ更新を試みます。
次のコマンドを入力してNetworkManagerの設定画面を開きます。
nmtui
NetworkManagerの設定を更新するために、以下のコマンドを入力してサービスを再起動します。
systemctl restart NetworkManager
ソフトウェアのパッケージ更新が完了したので、Apacheをインストールします。
yum -y install httpd
インストール直後はまだApacheは起動していませんので、サービス起動します。
systemctl start httpd
ゲストOS起動時に自動でApacheを起動するよう設定しておきます。これでゲストOSの起動の度にApacheを起動する必要が無くなります。
systemctl enable httpd
なお、自動起動が設定されているかどうかを確認する場合には
systemctl is-enabled httpd
とコマンド入力します。自動起動に設定されていれば「enabled」、設定されていないときは「disabled」が返されます。
Apacheのインストールが完了したら、サーバ外部の端末からサーバへhttpアクセスできるようにFirewallにhttpアクセスの許可を追加します。これによって、ゲストOS以外の端末からゲストOSで作成されたホームページをFirewallでブロックされることなく表示できるようになります。
Firewallの設定を変更する前に、現状の設定を確認します。
firewall-cmd --list-all --permanent
現状の設定は以下のようになっていました。
public target: default icmp-block-inversion: no interfaces: sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
先で確認したFirewallの設定では、sshおよびdhcpv6-clientのサービスが永続して有効であり、使用中のzoneはpublicとなっていることがわかったので、これに新たにhttpのサービスを追加します。
firewall-cmd --add-service=http --zone=public --permanent
ついでに、IPv6は無効にしているので不要なdhcpv6-clientのサービスを削除しておきます。
firewall-cmd --remove-service=dhcpv6-client --zone=public --permanent
設定が完了したら一旦Firewallを更新します。
firewall-cmd --reload
再度Firewallの設定確認して変更が適用されているかチェックします。
firewall-cmd --list-all --permanent
以下のように変更されました。
public target: default icmp-block-inversion: no interfaces: sources: services: ssh http ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Apacheのインストールと起動設定およびFirewallへのhttpサービス許可追加を終えたところで、ホストOSのブラウザから実際にゲストOSのサーバにアクセスしてみます。下のような画面がブラウザに表示されたらひとまず成功です。
アドレスは「http://”ゲストOSのIPアドレス”」を指定します。
ホストOSブラウザでの表示確認が終わったので、今度は公開用ディレクトリにファイルを作成しての表示確認を行います。
公開用ディレクトリの初期設定は「/var/www/html」ですので、htmlディレクトリ内にファイルを作成します。とりあえず、ファイル名は「test.html」とします。
次のコマンドを入力して、
cd /var/www/html vi test.html
test.htmlファイルに以下のHTMLを入力して保存します。
ホームページのアドレスは「http://”ゲストOSのIPアドレス”/test.html」です。
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>表示テスト</title> <style> body{ background-color:#ffc; } </style> </head> <body> <h1>表示テスト</h1> <p>hello, world.</p> </body> </html>
ブラウザが下のように表示されたら成功です。これで普通のPCがWebサーバに変わりました。
自宅サーバ作業第4回では、CentOSにApacheをインストールしてWebサイトを表示するまでの作業を行いました。
htmlファイルを作成して表示する分にはこれで十分なのですが、WordPressをインストールして使う場合やWebアプリケーションを作成したりする場合には、データベースやプログラミング言語を用いる必要があります。
次回、自宅サーバ作業第5回にてデータベース「MariaDB」の設定を行います。