MAMPのインストールが完了したのでローカルサーバ環境を構築できるようになりました。
実際にサーバを起動してサンプルを用い表示確認をしてみたいと思いますが、その前にドキュメントルートについて説明しておきます。
ドキュメントルート(Document Root)について
標準でHTMLやPHPファイルを入れる場所は /Applications/MAMP/htdocs となり、このフォルダを ドキュメントルート(Document Root)と呼びます。
レンタルサーバによって異なりますが “example.com/public_html/” や “www/htdocs/”に当たる部分と考えて頂ければいいと思います。
ドキュメントルートに保存したファイルへのアクセスはブラウザから http://localhost/ または http://127.0.0.1/ となります。
現在のドキュメントルートの場所は MAMPコントロールパネル > 環境設定 > Apacheタブ から確認できます。
では実際に表示を確認したいと思います。
以下のソースを /Applications/MAMP/htdocs/ に保存し、http://localhost/sample.php にアクセスすると “Hello WordPress” の表示が確認できると思います。
[sample.php]
<?php echo "Hello WordPress";
ブラウザのリクエストURL | http://localhost/sample.php |
コンテンツの保存先 | /Applications/MAMP/htdocs/sample.php |
実習では /Applications/MAMP/htdocs/ 以下にフォルダを作成してそのフォルダを1つのウェブサイトとしてWordPressを構築していきます。
ただ、このままでは以下の様にサブディレクトリ形式となり、独自ドメインでの運用を想定した時に違和感を感じてしまいます。
ウェブサイトhoge | http://localhost/hoge/ |
ウェブサイトhuga | http://localhost/huga/ |
そこでバーチャルホストの設定をして以下の様に独自ドメインでの運用と同様のURLでアクセスできるようにしたいと思います。
ウェブサイトhoge | http://hoge/ |
ウェブサイトhuga | http://huga/ |
バーチャルホストの設定
バーチャルホストという用語は、1 台のマシン上で (www.company1.com and www.company2.com のような) 二つ以上のウェブサイトを扱う運用方法のことを指します。 バーチャルホストには、各ウェブサイトに違う IP アドレスがある 「IP ベース」と、それぞれの IP アドレスに 複数の名前がある「名前ベース」とがあります。 複数のサイトが物理的に同じサーバで扱われている、ということはエンドユーザには 明らかではありません。
Apache バーチャルホスト説明書
上記引用の通りバーチャルホストは1台のマシン上で複数のウェブサイトを扱う運用方法です。今回は「名前ベース」の手法を用い、127.0.0.1(ループバックアドレス:ネットワーク上における自分自身の仮想的なアドレス)に複数のホスト名を設定したいと思います。
編集が必要なファイルは以下2つ、hosts ファイル(IPアドレスとホスト名の対応を記述したテキストファイル)と httpd.conf(Apacheの設定ファイル)です。
- /private/etc/hosts
- /Applications/MAMP/conf/apache/httpd.conf
また、前提として /Applications/MAMP/htdocs/ に wbkagawa フォルダを作成、先ほどの sample.php を index.php にリネームし wbkagawa フォルダに移動、http://wbkagawa/ でこれが閲覧できるように設定します。
hosts ファイル
“メニューバーの移動 > フォルダへ移動…”、 /etc/ と入力して「移動」をクリック。
etc フォルダ内に hosts ファイルがあるのでテキストエディタで開きます。
“127.0.0.1 wbkagawa”を追加して上書き保存で hosts ファイル編集完了です。
[hosts]
127.0.0.1 localhost 127.0.0.1 wbkagawa 255.255.255.255 broadcasthost ::1 localhost fe80::1%1o0 localhost
httpd.conf
テキストエディタで httpd.conf を開き一番下に以下ソースを追加します。
[httpd.conf]
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/" ServerName localhost </VirtualHost> <VirtualHost *:80> DocumentRoot "/Applications/MAMP/htdocs/wbkagawa/" ServerName wbkagawa </VirtualHost>
1行目の NameVirtualHost ディレクティブは名前ベースのバーチャルホストを用いる時に必要で、バーチャルホストのためのIPアドレスを指定しています。
今回はすべてのIPアドレスを受け入れ80ポートを指定しています。
NameVirtualHost ディレクティブ
3-6,8-11行目で、扱うホスト名に対して VirtualHost を作成しています。 VirtualHost ディレクティブの引数は NameVirtualHost ディレクティブで指定した引数 *:80 に正確に合っている必要があ ります。
そして VirtualHost の中に各ホスト名に関しての設定を記述しています。
設定項目は最低限必要な、どのホスト名が扱われるかを示す ServerName ディレクティブ(hosts ファイルで設定したホスト名)、そのホスト名のドキュメントルートの場所を示す DocumentRoot ディレクティブとなります。
また、既存サーバにバーチャルホストを設定するとメインホストがなくなるため、1つ目の VirtualHost で再定義しています。
名前ベースのバーチャルホスト
MAMPコントロールパネルからサーバを再起動して、ブラウザで http://wbkagawa/ へアクセスすると “Hello WordPress” の表示が確認できると思います。
以上でサーバ環境は整いましたがデフォルトのMAMPの設定では外部からアクセス可能のままですので次はMAMPの環境設定(外部からのアクセス制限設定)を行なっていきます。
はじめまして。
Hello WordPress を入力することができなく立ち往生しております。。
テキストエディットを起動させて上のサンプルコードを書き、htdocsに保存したのですが、ウェブページ反映させることができません。
保存形式が間違っているのかと思い何パターンか試してみました(リッチテキストフォーマットや.htmlなど)
結果、どれもサンプルコードが画面に表示されるままで、上記のようにHello WordPressの文字が出ませんでした。
どこかで設定を間違っているからだと思うのですが、どこが間違っているのでしょうか?
説明不足な点もあるかと思いますが教えていただきたです。
よろしくお願い致します。
※ご返信いただけるとすれば、上記のメールアドレスまでいただけますと幸いです。