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! は表示される。
/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
ブラウザでアクセスして、ページが表示されるか確認する。
初期状態で有効になっていたが、念のため 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 でポートを開けてからブラウザからアクセスできるかをチェックする。