カテゴリー
Linux

VirtualBoxにApache(アパッチ)をインストールする手順

VirtualBoxにwebサーバーを構築するためにApache(アパッチ)をインストールしました。
手順を忘れないようメモしておきます。

Apacheとは世界で最も使用されているWebサーバーソフトウェアのこと。
Webサーバーソフトウェアはウェブページを表示させるのに必要なHTTP通信が可能。Webサイトを構築するには必須のソフトウェア。

Apache(アパッチ)のインストール

root権限でないと作業できないものが多いので、一般ユーザでログインしている場合、rootアカウントに切り替えます。

一般ユーザーでログインしている場合、一時的にrootアカウントに切り替える

 $ su -

rootのパスワードを入力してrootに切り替える。コマンドの冒頭が「$」⇒「#」になる。
※sudoで作業する場合、これ以降コマンドの先頭にsudoを追加する

yumコマンドでApacheをインストールする

Apacheのインストールは パッケージを管理するコマンド 「yum」を使用します。

 # yum install httpd 

Is this ok [y/d/N]:y ときかれたら、すべて「y」を入力してenter。complete!が表示されたらインストール完了。
※y入力を省略したい場合「-y」オプションを追加する。

httpdを起動する

インストールが完了したらApacheを起動します。
一度起動したら停止することはあまりない、、、と思う。

 # systemctl start httpd.service 

エラーが表示されなければ起動成功。

Apacheの基本設定

httpdの自動起動

サーバーの設定変更などで再起動した際、Apacheも同時起動するように設定しておきます。

 # systemctl enable httpd

赤の点線で囲ったような表示が出れば成功です。

念の為、設定されたか確認するには次のコマンド

# systemctl list-unit-files -t service | grep httpd

httpd.service  enabled

httpd.serviceの隣に「enbabled」と表示されればOK。ちなみにenabledは英語で使用可能の意味。よく出てくるから覚えておくと良いかも。逆にdisabledは無効の意味。

enabled 有効
disabled 無効

ファイヤーウォールの設定

ファイアウォールという通信ポートを制御する仕組みがあるのですが、デフォルトでhttp(ポート番号80)は許可されていないので通過できるように設定します。

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

「success」と表示されたら、ファイアーウォールを再起動します。
これでサーバーに設定が反映されます。

ファイアーウォール再起動のコマンド

 # systemctl restart firewalld 

【余談】
もしファイアーウォールがインストールされていない場合は、次のコマンドでインストール&起動する。
httpdと同じように、自動起動の設定もしておきます。
最後のコマンドはファイアーウォールの起動確認です。「enabled」が表示されるか確認。

# yum -y install firewalld
# systemctl start firewalld
# systemctl enable httpd
# systemctl list-unit-files -t service | grep firewalld

Apacheが動作しているか確認

Apacheの動作確認をします。次のコマンドでVirtualBoxのIPアドレスを調べます。

$ ip addr
※またはip a

確認したアドレスをブラウザに入力します。
例)http://192.168.12.8/

こんな画面が出てくればApacheのインストールは成功しています。
次は自分で作成したファイルを公開ディレクトリに配置して表示を確認してみます。

公開ディレクトリのパーミッション(権限)を設定する

公開ディレクトリにhtmlファイルを配置すればウェブページを表示することができますが、まずは公開ディレクトリのパーミッションを確認します。

サーバーの動作は基本的にApacheが設定しているユーザーが実行するらしいです。その為、外部公開するディレクトリに対してApacheユーザーがr(読み)、w(書き)、x(実行)できるように設定していきます。

まず、Apacheの実行ユーザー、グループを設定ファイル「/etc/httpd/conf/httpd.conf」で確認します。

以下コマンドでファイルの中身を確認

# less /etc/httpd/conf/httpd.conf

httpd.confに記述されているUserとGroupを確認したところ、実行ユーザー&グループ共に「apache」でした。

このユーザーにr(読み)、w(書き)、x(実行)ができるように権限を設定します。
権限を設定するのは外部に公開するディレクトリです。初期設定だと「/var/www/html/」になっています。
htmlディレクトリの権限を調べたところ、実行ユーザーとグループがroot、パーテーションが「drwxr-xr-x」になっていました。

所有者rootにはr(読み)、w(書き)、x(実行)の権限がありますが、rootグループとその他ユーザーにはw(書き)権限がありません。

そこで、所有者とグループをroot ⇒ Apacheに変更します。

# chown apache:apache /var/www/html/

これでapacheに権限が付与されましたが、日頃作業するのはrootでもapacheでもない一般ユーザーがほとんどだと思います。

一般ユーザーがhtmlディレクトリにファイルの追加や削除ができないのは不便なので、一般ユーザーにもw(書き込み)権限を付与します。

今回、apacheグループに一般ユーザーを追加し、グループにw(書き込み)権限を付与することで、一般ユーザーでもhtmlディレクトリに書き込みができるようにします。

一般ユーザーをapacheグループに追加するコマンド

# usermod -g apache 【一般ユーザーアカウント】

apacheグループ権限をr(読み)、w(書き)、x(実行)に変更

# chmod 755 /var/www/html/

これで一般ユーザーでもhtmlディレクトリにファイルを追加できるようになりました。

公開するhtmlファイルを作成する

設定が終わったら、htmlファイルを作成します。
/var/www/html/(公開ディレクトリ)にindex.htmlを作成します。

エディタはvimを使用します。

# vim /var/www/html/index.html

内容はこんな感じにしました。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>test page</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>

先ほどApacheの動作確認をしたページにアクセスして、こんな風に表示されれば成功です!

最後に

本番環境では、セキュリティ対策として、SSHのパスワードでのログイン禁止や、ポート番号をデフォルトから変更する等、必要な作業があります。

これらは別記事でまとめたいと思います!