はろー。 は、はろー。まとめノート書いてますよ。

【自宅サーバ作業第4回】CentOSでLAMP環境を構築する(Apacheのインストール)

CentOSにApacheインストール アイキャッチ画像

自宅サーバ作業第4回より、自宅サーバ作業第3回にてインストールしたCentOSへ各種ソフトウェアをインストールし、ホームページを制作するための開発環境を整えていきます。

開発環境を整えるためにインストールするソフトウェアはWebサーバソフト「Apache」、データベース「MariaDB」、プログラミング言語「PHP」です。
これらの各種ソフトウェアとLinuxOS(CentOSはLinuxOSのうちの一つ)を合わせて、通称「LAMP(ランプ)環境」と呼ばれています。

自宅サーバ作業第4回ではWebサーバソフト「Apache」のインストールと設定、ホームページを公開するための設定作業を行います。

Apache(アパッチ)について

ホームページを公開するために用意するインフラ設備の一つに「Webサーバ」があります。Webサーバはサーバ内に保存されている公開用ファイルをWeb上で表示できるようにしたものです。

Webサーバといっても、元のPCは特殊な装置を組み込んでいるわけでもプロバイダで特別な契約をしているわけでもなく家電量販店等で安売りしているような、いわゆる「普通のPC」です。

Apacheはこの普通のPCをWebサーバ化するためのソフトウェアの一つとして提供されているフリーソフトウェアな優れものです。

仮想マシンの起動

まずApacheをインストールするため仮想マシン(以下、ゲストOSで呼称)を起動します。しばらくして、下の白テキスト&黒画面が表示されます。ゲストOSインストールおよび起動方法は自宅サーバページ過去回を参照ください。

VirtualBox ツールバー 起動ボタン

ターミナルからゲストOSへSSH接続する

ゲストOSに直接コマンドを入力していっても良いのですが、ホストOSとゲストOSの操作切り替えの度に毎回commandキーを叩いたりゲストOS内の画面スクロールができなかったり日本語で表示されなかったりコピーペーストができなかったり…といろいろ面倒なので、mac付属のアプリケーション「ターミナル」を用いてゲストOSを操作していきたいと思います。

ターミナル起動

macのアプリケーションのユーティリティ内に「ターミナル.app」があるので起動します。デフォルト設定では以下のような白い画面が表示されるかと思います。

ターミナル初期画面

ゲストOSにSSH接続する

ターミナルに以下のコマンドを入力します。コマンド内の”ゲスト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: ~~”と表示されてパッケージ更新ができない場合

“Could not resolve host: ~~”と表示されてパッケージ更新ができない場合、ネットワーク環境が間違っていてインターネットに接続できていない可能性があります。その場合は、NetworkManagerより設定変更を行いサービスを再起動したのち、もう一度パッケージ更新を試みます。

NetworkManager画面の表示

次のコマンドを入力してNetworkManagerの設定画面を開きます。

nmtui
  1. NetworkManager画面で「接続の編集」を選択してEnter。
    NetworkManager設定画面1
  2. 「enp0s3」が選択された状態でキーボード矢印キー右で右項目に移動し、「編集」を選択してEnter。
    NetworkManager設定画面2
  3. 「接続の編集」画面が表示されるのでここでネットワーク環境を編集します。
    CentOSインストール時に「ネットワークとホスト名」にて設定したネットワーク環境が予め入力されているのでエラーの該当箇所を修正していきます。ネットワーク設定例については自宅サーバ作業第3回CentOSのインストールの手順6.を参照ください。
    なお、この設定画面ではネットマスクはアドレス項目後のスラッシュ以降に記載されていて、かつビット表記となっています。CentOSインストール時にネットマスクを「255.255.255.0」と設定した場合は「24」で表記されているので、変更するときもビット表記で入力する必要があります。
    編集が終わったら画面下部の「<OK>」を選択してEnter。
    NetworkManager設定画面3
  4. 先ほどの手順2.の画面に戻るので、画面下部の「<戻る>」を選択してEnter。
  5. 手順1.の画面に戻ったら、画面下部の「終了」を選択した状態でキーボード矢印キー右を押して「<OK>」を選択しEnter。
  6. 手順5.まで終えるとブルー画面から最初の白い画面に戻ります。

NetworkManagerの再起動

NetworkManagerの設定を更新するために、以下のコマンドを入力してサービスを再起動します。

systemctl restart NetworkManager

Apacheのインストールと設定

ソフトウェアのパッケージ更新が完了したので、Apacheをインストールします。

yum -y install httpd

Apacheのサービス起動

インストール直後はまだApacheは起動していませんので、サービス起動します。

systemctl start httpd

Apacheのサービス自動起動

ゲストOS起動時に自動でApacheを起動するよう設定しておきます。これでゲストOSの起動の度にApacheを起動する必要が無くなります。

systemctl enable httpd

なお、自動起動が設定されているかどうかを確認する場合には

systemctl is-enabled httpd

とコマンド入力します。自動起動に設定されていれば「enabled」、設定されていないときは「disabled」が返されます。

Firewallへのhttpアクセス許可追加

Apacheのインストールが完了したら、サーバ外部の端末からサーバへhttpアクセスできるようにFirewallにhttpアクセスの許可を追加します。これによって、ゲストOS以外の端末からゲストOSで作成されたホームページをFirewallでブロックされることなく表示できるようになります。

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:

httpサービスの追加

先で確認したFirewallの設定では、sshおよびdhcpv6-clientのサービスが永続して有効であり、使用中のzoneはpublicとなっていることがわかったので、これに新たにhttpのサービスを追加します。

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

dhcpv6-clientサービスの削除

ついでに、IPv6は無効にしているので不要なdhcpv6-clientのサービスを削除しておきます。

firewall-cmd --remove-service=dhcpv6-client --zone=public --permanent

Firewallの更新

設定が完了したら一旦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:

ホストOSのブラウザから表示する

Apacheのインストールと起動設定およびFirewallへのhttpサービス許可追加を終えたところで、ホストOSのブラウザから実際にゲストOSのサーバにアクセスしてみます。下のような画面がブラウザに表示されたらひとまず成功です。
アドレスは「http://”ゲストOSのIPアドレス”」を指定します。

Apacheインストール ブラウザ表示

公開用ディレクトリにファイルを作成して表示する

ホスト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サーバに変わりました。

Apacheインストール ブラウザ表示 htmlファイル作成

さいごに

自宅サーバ作業第4回では、CentOSにApacheをインストールしてWebサイトを表示するまでの作業を行いました。
htmlファイルを作成して表示する分にはこれで十分なのですが、WordPressをインストールして使う場合やWebアプリケーションを作成したりする場合には、データベースやプログラミング言語を用いる必要があります。

次回、自宅サーバ作業第5回にてデータベース「MariaDB」の設定を行います。

スポンサーリンク
back to top