(Mac)ApacheのVirtual Hostによる開発環境構築手順
目次
ApacheのVirtual Hostで開発環境を構築する
Mac OSでWebサーバーソフト、Apache HTTP Server(以下Apache)を使用して開発環境を構築する方法をメモします。
(MacにはデフォルトでApacheがバンドルされています)
ひとつのWebサーバーで複数のWebサイトを管理する事が出来る、ApacheのVirtual Hostという機能を利用します。
環境 : Mac OS High Sierra 10.13.12, Apache 2.4.28
Apacheの起動と確認
ターミナルを開き、以下のコマンドを叩いてApacheのバージョンを確認出来ます。
httpd -v
$ httpd -version
Server version: Apache/2.4.28 (Unix)
Apacheを起動する
sudo apachectl start
ブラウザから以下URLへアクセス
http://localhost/
デフォルトで用意されている以下のページが表示されればOK
テストページを作成する
ホームディレクトリ配下にあるSitesディレクトリ内へテスト用の妥当なhtmlページを作成します。
~/Sites/apache-test/index.htmlを作成
Apacheの設定を変更する
作成したテスト用ページをApacheで実行するために以下の設定ファイルにそれぞれ変更を加えていきます。
/etc/apache2/extra/httpd-vhosts.conf
/etc/apache2/httpd.conf
/etc/apache2/extra/httpd-userdir.conf
/etc/apache2/users/(ユーザ名).conf
1. /etc/apache2/extra/httpd-vhosts.conf
管理者権限でファイルを開く
sudo vi /etc/apache2/extra/httpd-vhosts.conf
ファイル内、※VirtualHostタグで以下のように記述する
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/Users/username/Sites/apache-test"
ServerName apache-test
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
※ <VirtualHost *:80>タグは初期状態で2つありますが、下の方を変更すればOKです。
DocumentRoot
サイトの公開ディレクトリ(ドキュメントルート)を指定する
ServerName
ページにアクセスするためのホスト名を指定する
http://ホスト名/
開発環境を追加する場合はこちらのVirtualHostタグを丸ごとコピーして下に追記し、DocumentRoot と ServerName を開発するサイトごとに書き換えればOKです。
2. /etc/apache2/httpd.conf
管理者権限でファイルを開く
sudo vi /etc/apache2/httpd.conf
以下の箇所の行頭の#記号(コメントアウト)を削除して設定を有効化する
LoadModule userdir_module libexec/apache2/mod_userdir.so
Include /private/etc/apache2/extra/httpd-userdir.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
3. /etc/apache2/extra/httpd-userdir.conf
管理者権限でファイルを開く
sudo vi /etc/apache2/extra/httpd-userdir.conf
以下の箇所の行頭の#記号(コメントアウト)を削除して設定を有効化する
Include /private/etc/apache2/users/*.conf
※ こちらの記述により、後述の /etc/apache2/users/(ユーザ名).conf を読み込みます。
4. /etc/apache2/users/(ユーザ名).conf
管理者権限でファイルを開く
sudo vi /etc/apache2/users/(ユーザ名).conf
Directoryタグで指定されている値が、Sitesディレクトリのパスになっていることを確認します。
<Directory "/Users/username/Sites">
Options Indexes MultiViews
AllowOverride All
Require all granted
</Directory>
Apacheを再起動
Apacheを再起動して設定を反映します。
sudo apachectl restart
/etc/hosts ファイルの設定
Apacheの設定が完了したら /etc/hosts を編集して VirtualHostで指定した ServerName と ローカルホストのIPアドレスを紐づけます。
/etc/hosts ファイル(管理者権限で開く)
sudo vi /etc/hosts
IPアドレス 127.0.0.1の箇所、デフォルトで記載の「localhost」に続けてホスト名を追記
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost apache-test
255.255.255.255 broadcasthost
::1 localhost
テストページへアクセス
http://apache-test/
初回はホスト名の前にスキームhttp:// を付けてアクセスすると確実です。
テストページが表示されればOK
公開ディレクトリをSites以外にしたい場合
公開ディレクトリをSitesディレクトリ以外の場所に指定したい場合は以下のように設定します。
(例)/Users/(ユーザ名)/Documents配下のディレクトリを指定したい
Virtual Hostのドキュメントルート
/etc/apache2/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/Users/username/Documents/apache-test"
ServerName apache-test-document
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
/etc/apache2/users/(ユーザ名).confにDirectorytタグを追加して /Users/(ユーザ名)/Documentsで公開出来るようにする
<Directory "/Users/username/Documents">
Options Indexes MultiViews
AllowOverride All
Require all granted
</Directory>
設定が完了したら、Apacheを再起動します。
Webブラウザからのアクセスがエラーになる
Apacheの設定ファイルに記述ミスがある場合、「You don’t have permission to access / on this server.」や「このサイトにアクセスできません」等のエラーがブラウザに表示されます。
以下のコマンドを実行し、Apacheの設定ファイルの記述エラーをチェックします。
apachectl configtest
もしくは、
apache2ctl configtest
(エラーの存在するファイル名や、行番号が確認出来る)
修正後にApacheを再起動し、実行確認します。
“(Mac)ApacheのVirtual Hostによる開発環境構築手順” に対して2件のコメントがあります。
コメントは受け付けていません。