目次

Apache2 でWebサーバ

Apache2 で Web サーバを構築する。セキュリティを考慮してとりあえず、SSL を使用して 443 “以外” のポートで通信を行うようにする。

環境

インストール前の環境

パッケージ名 バージョン
apache2 2.4.7-1ubuntu4.1
mysql-server 5.5.40-0ubuntu0.14.04.1
libapache2-mod-php5 5.5.9+dfsg-1ubuntu4.5

Apache2、MySQL、PHP は Ubuntu をインストールした際に、ついでにインストール済み。

インストールするパッケージ等

インストール

インストールしていない場合は apt-get でインストール。

$ sudo apt-get install apache2

ufw で 80 ポートへのアクセスを許可する。

$ sudo ufw allow 80/tcp

インストールしてサーバにブラウザでアクセスすると、とりあえず It works! は表示される。

apache2 ディレクトリ内のファイル

/etc/apache2 ディレクトリ内のファイル

サイトの設定

インストール時点でデフォルトのサイトが有効かされている。

このサイトの設定ファイルをコピーして新しいサイトの設定ファイルを作成する。

$ cd /etc/apache2/sites-available/
$ sudo cp ./000-default.conf ./mynewsite.conf
$ sudo vi ./mynewsite.conf

以下のディレクティブを <VirtualHost> 〜 </VirtualHost> の間に追記する。

your.domain.com に対する要求に応答するように設定。また、www.your.domain.com 等の頭に他のホスト名が付加されても応答するようにする。

デフォルトで有効になっていたサイトを無効化し、新規に作成したサイトを有効化する。

$ sudo a2dissite 000-default
$ sudo a2ensite mynewsite

設定ファイルの構文に間違いがないかをチェック

$ sudo apache2ctl configtest

Apache2 を再起動して設定を反映する。

$ sudo service apache2 restart

ブラウザでアクセスして、ページが表示されるか確認する。

apacheのSSLを有効にする

初期状態で有効になっていたが、念のため SSL モジュールの有効化する。

$ sudo a2enmod ssl

/etc/apache2/sites-available/ に default-ssl が生成あるので、コピーして編集する。

$ cd /etc/apache2/sites-available/
$ sudo cp ./default-ssl.conf ./mynewsite-ssl.conf
$ sudo vi ./mynewsite-ssl.conf

SSL接続を使用するサーバの設定を行う。

応答するアドレスの設定を追加する。

鍵のパスを実際のパスに変える。

アクセスするポートを変更した場合は、/etc/apache2/ports.conf でポート番号を変更する。

$ sudo vi /etc/apache2/ports.conf

コマンドで default-ssl を有効にする。

$ sudo a2ensite mynewsite-ssl

設定に間違いがないかをチェック。

$ sudo apache2ctl configtest

Apache2 を再起動して設定を反映する。

$ sudo service apache2 restart

ufw でポートを開けてからブラウザからアクセスできるかをチェックする。

参考

Ubuntu公式マニュアル