MAMP を使ってローカル環境にマルチサイトの WordPress を構築した際に気づいたことのメモ。WordPress のローカル環境へのインストール、MAMP のインストールや基本的な設定は色々なところで書かれているので省略。
MAMP のインストールや基本的な設定等に関する参考サイト
Apache と MySQL のポート設定を MAMP の起動画面の環境設定から Apache と MySQL の標準ポートに設定(Apache:80, MySQL:3306)。
MAMP の http のドキュメントルートはデフォルトでは /Applications/MAMP/htdocs になっているのでこれを自分の「書類」の下に変更。以下の例では「/Users/ユーザー名/web(フォルダ名)/xxxx(フォルダ名)」にファイルを配置。
/Applications/MAMP/conf/apache/httpd.conf を必要があれば修正。40行目あたりが以下のようになっていることを確認。
# Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses. # #Listen 12.34.56.78:80 Listen 80
524行目あたりの # Virtual Hosts の Include がコメントアウトされていないことを確認。
# Virtual hosts Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
続いて好きなフォルダをドキュメントルートにするために /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf を編集。「httpd-vhosts.conf」を開くと以下のようになっている。
# # Virtual Hosts # # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.2/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ServerName or ServerAlias in any <VirtualHost> block. # <VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "logs/dummy-host.example.com-error_log" CustomLog "logs/dummy-host.example.com-access_log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common </VirtualHost>
ServerAdmin、ErrorLog、CustomLog は指定しなくても問題無さそうなので以下のような内容を「httpd-vhosts.conf」の最後に追記。
<VirtualHost *:80> DocumentRoot "/Users/ユーザー名/documents/web/xxxx" ServerName local-xxxx.com </VirtualHost> <Directory "/Users/ユーザー名/documents/web/xxxx"> Options FollowSymLinks Includes AllowOverride All Order deny,allow Allow from all </Directory>
これで「http://local-xxxx.com」にアクセスすると「/Users/ユーザー名/documents/web/xxxx」がドキュメントルートとして認識されサイトが表示されるようになる(但し、次項の hosts ファイルの編集が必要)。「http://local-xxxx.com」の「local-」は単に区別しやすくするためのものでなんでも構わない。複数のサイトがある場合はその分だけ増やす。
<Directory>~</Directory>を記述しないとマルチサイトの場合、404 エラーで表示されなかった。
hosts ファイルは「/private/etc/hosts」にあるので、それを開いて最後の行に「127.0.0.1 local-xxxx.com」を追加。
## # 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 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost 127.0.0.1 local-xxxx.com
Finderからシステムファイルにアクセス
必要であれば、.htaccess を編集する。但し、Mac ではデフォルトの状態だとドットから始まるファイルは非表示になっているので、ターミナルを起動して以下のコマンドを入力。
defaults write com.apple.finder AppleShowAllFiles true
Finder をリフレッシュするために、以下のコマンドを入力。
killall Finder
ファイルを再度非表示にしたい場合は同様にターミナルに以下のコマンドを入力。
defaults write com.apple.finder AppleShowAllFiles false killall Finder