Webに公開されていないXAMPPの超便利な使い方 ~2/2~
XAMPPを開発で利用するとき、実際のURLで本番⇔開発環境を手軽に切り替え可能な方法について、具体的な設定方法を公開します。
この方法を導入すると、開発フェーズによってはURLが同じだけに、ブラジングしている環境(本番 or 開発)を間違える可能性が高くなります。
ご注意ください。
ちなみに、WordPress用プラグインのNichePatchでは次回v.0.70リリースでこのあたりを、ちょっぴり気持ちよく(と思っているのは本人だけかもしれない)解決しています。お楽しみに。
この方法の概要やメリット・デメリットはWebに公開されていないXAMPPの超便利な使い方 ~1/2~を参照。
0.前提事項
すでにXAMPPがインストール済みで、問題なく動作していること。
※XAMPPのインストール方法はhttp://phpspot.net/php/pgXAMPP.htmlが良いと思います。
XAMPPおよびアクセスするクライアント(ブラウザ)は、自PCのみか、イントラ内の場合は、XAMPPを立てるPCが固定IPであることとします。
(XAMPPを立てるPCのIPアドレスがDHCP割り当てだと、当然ですがクライアント側はProxy設定を都度変更する必要があります。)
また、XAMPPはWindows版のv.1.7.0とします。
[2009.08.26追記]
v.1.7.2でも確認済みですが、php.iniのデフォルト変更があったようなので、もし既存スクリプトでPHPエラーが発生する場合、XAMPP 1.7.2のデフォルト値変更で気をつける点を確認してみてください。
ちなみに、このサイトで公開しているNiche Patchでは、デフォルト値変更で不具合が出るので、設定変更が必要です。
なお、以下についても、v.1.7.2ベースで多少リライトしています
1.Apache Proxy
httpd.confでApache Proxyを立てる設定を追加します。
ここでは、例としてこのサイト(http://typista.xii.jp/)をC:\xampp\htdocs\typista\で動作させるものとして記述しますので、適宜読み替えてください。
また、ダブルクォート等がWordPressの機能で勝手に全角に変換されてしまっているので、充分注意してください。
(1)Proxy関連モジュールのLoadModuleをコメント化解除(デフォルトの112~116行目付近)
※Apacheは詳しくないので必要そうなもの(かつv.1.6.0ではProxy系モジュールすべてをL0adしても問題なかったがv.1.7.0ではこれ以外のものをLoadするとApacheがコケるので最低限・・・XAMPPがVistaだったからかもしれませんが)
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
(2)DocumentRootを確認(同180行目)
DocumentRoot “C:/xampp/htdocs/”
(3)Proxyを立てるおまじない(v.1.7.2ではextra配下にhttpd-proxy.confがあるので、そこが適当でしょうか。)
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
(3)’ Proxyを立てるおまじない②
Listenポートの追加(httpd.conf)
Listen 8080
リバースプロキシ用VirtualHostディレクティブの追加(httpd-vhosts.conf)
<VirtualHost *:80>
ServerName typista.xii.jp
ProxyPass / http://localhost:8080/
ProxyPassReverse /typista/ http://localhost:8080/
</VirtualHost>
(4)バーチャルホストの追加(httpd-vhosts.conf)
<VirtualHost *:8080>
ServerAdmin webmaster@typista.xii.jp
DocumentRoot “C:/xampp/htdocs/typista”
DirectoryIndex index.php index.html
</VirtualHost>
(5)XAMPPのコンパネからApacheを再起動
WordPressフォーラムに(やや見当違いな)質問をしましたが、上記(3)’ と(4)のように設定しないと、サーバ環境変数のREQUEST_URIが、http://typista.xii.jp/hoge.php(本来は/hoge.phpを期待)となり、WordPressのインストール途中から(スタイルシートのリンクパスが不正になり)体裁が崩れるだけでなく、インストール完了後も、ほとんど正しく機能しません。
蛇足ながら、XAMPPでWordPressをインストールする際に、最後のadminパスワード発行でブラウザが無応答(永久ループ)になってしまう&adminパスワードがわからなくなる不具合がありますが、これはsmtpサーバを正しく設定することで回避可能でした。
2.クライアントブラウザ設定
(1)FoxyProxy(FireFoxのアドオン)
ダウンロード
https://addons.mozilla.org/ja/firefox/addon/2464
上記をインストール。インストール時に「torが~」というのは無視してもよさそうです。
以下、FoxyProxyの設定手順。
①FireFoxのウィンドウ右下に追加される「FoxyProxy」をクリック
②「FoxyProxyオプション」ウィンドウの「プロキシ」タブで「新しくプロキシを追加」をクリック
③「全般」タブの「有効」をチェック、プロキシ名は任意(ここではtypista開発用Proxy)
④同「プロキシ詳細」タブで「手動プロキシ設定」をON、ホスト名/ポートはそれぞれ「localhost」/「80」を入力
※イントラネット内で他PCからもアクセス可能とするためにはホスト名にXAMPPを立ち上げるPCのIPアドレスを入力します。
⑤同「URL Patterns」では「新規パターンを追加」をクリック
⑥「パターンの追加・編集」ウィンドウでパターン名/URLパターンをそれぞれ「typista」/「http://typista.xii.jp*」(ワイルドカード指定の「*」アスタリスクは重要です!)と入力し、OKボタンをクリック
※その他のオプションはデフォルトの「ホワイトリスト」「ワイルドカード」で問題ないです。
⑦「FoxyProxyオプション」ウィンドウに戻り、モード選択を「定義済みのパターンと優先度を基にプロキシを使用する」を選択して「閉じる」
これでhttp://typista.xii.jp/へのアクセスはXAMPP環境へアクセス可能です。
本番環境へアクセスする場合は、モード選択を「FoxyProxyを完全に無効にする」です。
(2)IEProxyOn/Offツール(IE用)
http://www.vector.co.jp/soft/dl/winnt/net/se343745.html
※On状態のとき、現状はIEでは他サイトの閲覧不可
※On/Offを切り替えたときはIE再起動が必要なので注意
※IE系ブラウザ(SleipnirやLunascape)にはすべて適用されてしまうので注意
インストール不要の実行ファイルなので、簡単です。
あとはIEの「ツール」→「インターネットオプション」→「接続」→「LANの設定」→「LANにプロキシサーバーを使用する」をチェックし、アドレス/ポートにそれぞれ「localhost」/「80」を設定しておくこともお忘れなく。
※イントラネット内で他PCからもアクセス可能とするためにはホスト名にXAMPPを立ち上げるPCのIPアドレスを入力します。
参考までに私は、「ProxyOF.exe」のショートカットを作成→IEツールバーにドラッグして切り替えしやすいようにしています。
[...] すでに私はその恩恵に授かっている、その具体的な方法はWebに公開されていないXAMPPの超便利な使い方 ~2/2~に書きましたので、ここではメリットとデメリットをまとめておきます [...]
[...] 記赤字箇所のようなServerAliasを追加します。この前提となる設定はWebに公開されていないXAMPPの超便利な使い方 ~2/2~を参照してください。 <VirtualHost *:80> ServerName typista.xii.jp Ser [...]
[...] 社内 LAN 内などで wiki などを構築して情報の共有化をしたい場合、XAMPP が便利です。XAMPP は開発環境としてのものではありますが、社内 LAN の中限定であれば利用しても問題ないでしょう。 今回は以下のページを参考にしました。 LAN内の他のPCからxamppを操作したい Webに公開されていないXAMPPの超便利な使い方 ~2/2~ | typista [...]
[...] これまで紹介してきた本番ドメインで動くローカル環境をXAMMPで構築していくのとは反対に、同一サーバ上で別ドメイン(サブドメインとか)で、WordPressでテストサイトを構築する方法が、 [...]