前回のサイトルートパスで書かれたhtmlをローカル環境で確認するという記事の続編。・・・的な記事。
WordPressなどでサイトを構築する際、やっぱりローカル環境で動いてくれるとありがたい。
公開前なら直接サーバー上で変更もできるが、はっきり言ってすごく面倒。
ただ、ローカルで環境を作ったはいいが、そのままでは使えない機能も存在したりする。
・・・というわけで、ローカル環境のWordpressで、マルチサイト機能を利用する方法。
Wordpressのインストール方法は割愛する(説明欲しい人、いる?)。
前回記事では、複数プロジェクトに利用するため、バーチャルホストの設定をした。
そのためhttp://localhost:8001/とかいう、ポート番号付きのURLになる。
Wordpressのマルチサイト機能を使わなければ、この設定のままでOKだが、機能を使う場合、ポート番号が付いてるとエラーが出るorz….
今回は、ポート番号8002でローカル上のWordpressにアクセスできるようにしていたので、ポート番号が付かないURLにする必要がある。
そこで、MAMPの設定情報の書き換えだ。
アプリケーション/MAMP/conf/apache/httpd.confを開き、
219行付近
[cc lang=”php”]
Listen 8888
[/cc]
を
[cc lang=”php”]
Listen 80
[/cc]
に、
351行目付近
[cc lang=”php”]
ServerName localhost:8888
[/cc]
を
[cc lang=”php”]
ServerName localhost:80
[/cc]
に変更する。
こうすると、http://localhost:8888/
でアクセスしていた
URLがhttp://localhost/
でアクセスできるようになる。
ただし、デフォルトの
/アプリケーション/MAMP/htdocs
内を参照しているわけではないので、どこのフォルダを参照しているのかというのを設定しなければならない。
今回はユーザー直下に「testSite」というフォルダを作成して指定してみる。
そこで、1138行付近
# NameVirtualHost *を探して、
[cc lang=”php”]
# NameVirtualHost *
DocumentRoot “/Users/ユーザー名/testSite”
[/cc]
という設定を追加する。
今回の例では、ポート8001でアクセスできるようにしていたので、
[cc lang=”php”]
# NameVirtualHost *
DocumentRoot “/Users/ユーザー名/testSite”
[/cc]
を
[cc lang=”php”]
# NameVirtualHost *
DocumentRoot “/Users/ユーザー名/testSite”
[/cc]
と設定すれば良い。
これらの設定を変更した後、MAMPを再起動して
http://localhost/
でアクセスしてみよう。正常に表示されれば、最初の設定は完了。
その後の設定としては、ひとまずプラグインを全て無効化し、特権管理者メニュー>サイト>新規追加を選択すると、新たなサイトを作る事ができる。
WordPress内でのマルチサイト設定に付いては、また今度。
-追記-
ローカル環境の場合、上記の作業だけではうまく行かないらしい。上記のままの設定で行くと、
404 Not Found
となって、追加された側がうまく表示されない。
・・もし、うまく行かない場合は、下記データーを修正する。
/MAMP/conf/apache/httpd.conf
383行付近
[cc lang=”php”]
Options Indexes FollowSymLinks
AllowOverride None
[/cc]
326行付近
[cc lang=”php”]
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
[/cc]
635行付近
[cc lang=”php”]
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
[/cc]
644行付近
[cc lang=”php”]
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
[/cc]
653行付近
[cc lang=”php”]
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
[/cc]
667行付近
[cc lang=”php”]
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
SetHandler type-map
SetEnvIf Request_URI ^/manual/de/ prefer-language=de
SetEnvIf Request_URI ^/manual/en/ prefer-language=en
SetEnvIf Request_URI ^/manual/es/ prefer-language=es
SetEnvIf Request_URI ^/manual/fr/ prefer-language=fr
SetEnvIf Request_URI ^/manual/ja/ prefer-language=ja
SetEnvIf Request_URI ^/manual/ko/ prefer-language=ko
SetEnvIf Request_URI ^/manual/ru/ prefer-language=ru
RedirectMatch 301 ^/manual(?:/(de|en|es|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
[/cc]
709行付近
[cc lang=”php”]
AllowOverride None
Options None
Order allow,deny
Allow from all
[/cc]
以上の
AllowOverride None
を
AllowOverride All
に変更する。
このマルチサイト化、まだまだ敷居が高いのかもしれません。
「マルチサイト化がうまくいかない」という記事がかなり見受けられます。
・・かなり煮詰まってしまったなあ。
煮詰まりすぎて、httpd.confを書き換えたのに、MAMPを再起動し忘れて「えー。なんもかわらん( ̄▽ ̄;)」と小一時間考えてしまったorz….
こういう設定は、煮詰まってしまったら一服するとうまくいきやすいんだよね・・。
僕も同様の悩みを抱えていて、なかなか解決しなかったので非常に助かりました!
ありがとうございました!