xampp+WordPressでマルチサイト化する時にポート番号で引っかかった時の対処法
2011.01.17
はい、タイトルのまんまです。
「xamppをVirtualHostで複数サイトを管理してて、特に問題なかったけどWP3.xを導入してマルチサイト化もしてみたら、なんと!ポート番号80以外のサイトはネットワークの作成が出来ないじゃないか~!」
という、恐ろしくニッチな悩みに対する解決法です。
そもそも、これはWordPressに
「WordPress のアドレス(URL)」に「:80」「:443」以外のポート番号が付いているときはダメよ
という制約があるからです。(Codex参照)
VirtualHostでポート番号を分けてサイト管理している時はURLが
http://localhost:80/
http://localhost:8080/
とかになってると思いますが、この状態では下のURLで運営しているサイトでは「ネットワークの作成」を実行できません。
そこで、URLからポート番号をはずす設定をご紹介。
前提として
- xamppのインストールは完了している
- インストール先はDドライブ直下
- VirtualHostの設定は完了している
とします。
この段階ですでに対象が相当しぼられますね。
D:xamppapacheconfhttpd.conf
このファイルをエディタで開き、VirtualHostの設定をしている行をみてください。
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs2" </VirtualHost> <VirtualHost *:8080> DocumentRoot "C:/xampp/htdocs3" </VirtualHost>
こんな感じですかね。
この「DocumentRoot」の指定の下に「ServerName」の指定を入れてやります。
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs2" ServerName site02.project </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs3" ServerName site03.project </VirtualHost>
こんな感じですね。
ポート番号は同じにします。そしてServerNameというやつがミソです。
私はTopLevelDomainを「project」という名前にしていますので、「.project」としています。
(プロジェクト!何だか壮大なイメージしません?まぁ一人で制作してるんですが)
まぁ何でもいいです。
次にhostsファイルを変更します。
hostsファイルとは、サイト名などをIPに変換するためのWindowsのシステムファイルです。
(ちなみに、このファイルを開いて覚えのない指定がされていればマルウェアによってファイル改ざんされている恐れがありますよ)
エディタで開き、一番下に
127.0.0.1 project 127.0.0.1 site01.project 127.0.0.1 site02.project
と記述し、保存します。
これで、今まで
http://localhost:8080/でアクセスしていたローカルサイトが
http://site03.projectというURLでアクセスできるようになります。
が、今回はすでにテストサイトを運営している前提ですので、データベースをいじる必要があります。
xamppを(すでに開いている場合は、一旦Stopさせてから)Startさせます。
phpMyAdminにログイン(http://project/xampp/)し、変更するデータベースを選択し
「」の中にある
- site_url
- home
の値を「http://localhost:8080/」→「http://site03.project」に書き換えます。
いざ、http://site03.projectにアクセス!
続けてネットワークの設定をしていけば、URLにポート番号がありませんので
無事にマルチサイト化作業が完了すると思います。