WSL環境に apache2.4 を導入する
サーバーのインストール
- インストーラーを起動する
$ sudo apt install apache2
- 既存のバーチャルホストを削除する
$ sudo systemctl stop apache2 $ sudo a2dissite 000-default.conf Site 000-default disabled. To activate the new configuration, you need to run: systemctl reload apache2
- バーチャルホスト(dev80.conf)を作成して有効化する
$ cd /etc/apache2/sites-available/ $ sudo cp 000-default.conf dev80.conf $ sudo a2ensite dev80.conf Enabling site dev80. To activate the new configuration, you need to run: systemctl reload apache2 $ sudo systemctl start apache2
この時点で、http://localhost/ でデモページが表示されれば稼働OK
ドメイン名の設定
- WSL側のIPアドレスを調べる(eth0 > inet)
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:10:17:f9 brd ff:ff:ff:ff:ff:ff inet 172.28.249.132/20 brd 172.28.255.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::215:5dff:fe10:17f9/64 scope link valid_lft forever preferred_lft forever
- dev.ipadtaxi.jp のIPアドレスをDNSに登録する。
自身が管理しているDNSを更新する
- Windows側からWSLへの疎通確認
> ping dev.ipadtaxi.jp dev.ipadtaxi.jp [172.28.249.132]に ping を送信しています 32 バイトのデータ: 172.28.249.132 からの応答: バイト数 =32 時間 <1ms TTL=64 172.28.249.132 からの応答: バイト数 =32 時間 <1ms TTL=64
この時点で、http://dev.ipadtaxi.jp/ でデモページが表示されれば稼働OK
ドキュメントルートの変更
- 以下の設定ファイルを変更する
$ sudo vi /etc/apache2/apache2.conf
以下のエントリを追加
<Directory /mnt/c/htdocs/> Options Indexes FollowSymLinks AllowOverride ALL Require all granted </Directory>
AllowOverride は Deny -> ALL にしないと .htaccess が効かなくなる - 以下の設定ファイルを変更する
$ sudo vi /etc/apache2/sites-available/dev80.conf
以下のエントリを変更
DocumentRoot /mnt/c/htdocs
- ドキュメントルートに仮ページ(index.html)を設置
- Webサーバー再起動
$ sudo systemctl restart apache2
http://dev.ipadtaxi.jp で仮ページが表示されればOK
SSLの導入
- WebサーバーにSSLモジュールを追加する
$ sudo a2enmod ssl
- Webサーバーにrewriteモジュールを追加する
$ sudo a2enmod rewrite
.htaccess 内でRewrite機能を使用するためにこれをロードする必要がある。http->https へ自動的に移動させるために .htaccessで以下の設定を加えるために必要となる。RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
- バーチャルホスト(dev443.conf)を作成する
$ cd /etc/apache2/sites-available/ $ sudo cp default-ssl.conf dev443.conf $ sudo vi dev443.conf
以下のエントリを変更
DocumentRoot /mnt/c/htdocs SSLCertificateFile /etc/letsencrypt/live/dev.ipadtaxi.jp/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/dev.ipadtaxi.jp/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/dev.ipadtaxi.jp/chain.pem SSLCACertificateFile /etc/letsencrypt/live/dev.ipadtaxi.jp/fullchain.pem
既定では /etc/letsencrypt/live/ およびリンク先の /etc/letsencrypt/archive/ のパーミッションは apache起動アカウント(グループ)ではアクセスできないため、必要に応じて権限設定を変更する必要がある。本環境ではグループオーナーを www-data に変更した上で読取権限を追加して対応した。 - バーチャルホスト(dev443.conf)を有効化する
$ sudo a2ensite dev443.conf Enabling site dev443. To activate the new configuration, you need to run: systemctl reload apache2 $ sudo systemctl restart apache2
https://dev.ipadtaxi.jp で仮ページが表示されればOK
PHPの導入
引き続きこちらを参照