Home > memo > MAMPとVirtual Hostでローカル環境を作る

MAMPとVirtual Hostでローカル環境を作る

  • 2011-06-25 (土) 2:15
  • memo
Google Adsense

職場でwindowsXP+XAMPを使っていたので、家でも使いたいなとwindows時代にxamp導入してみたものの、プライベートで何か作ったりする余裕もなく月日が過ぎ、家にはすっかりmacが3台と台数逆転していた。
なのでmacには同じ要領でMAMPを導入すりゃいいでしょー、とやってみたらこれが案外苦戦したのでメモ書き。

目標

  • virtualhostきってlocal.(公開中のwebsiteURL)でローカルで表示確認出来る(このblogだとhttp://local.weblog.atl-r.net/)
  • localディレクトリとサーバをcodaに設定して簡単同期かけれる
  • VMwareのwindowsからも同様に参照可能

とりあえず調べてみる

mampを普通に導入すると、ローカルディレクトリに設定したフォルダが「http://localhost:8888」で参照出来る。
実はこれでも大して不都合はないんだけど、ドメインとってあるサイトの管理にはそのドメインぽいのを使いたい気がする。そこでvirtualhostを設定してみようかなと。

バーチャルホストを利用すると1つのサーバコンピュータで複数のドメインを運用することができ、サーバコンピュータの数を減らし運用のコストを下げることができる。

virtualhostをきる方法としては以下二つが見つかった。

接続portを増やす

メリット

設定が楽。

デメリット

ローカルで参照するurlに「http://localhost:8888」の8888とかport番号が必要になる。

設定方法

portを追加
/Application/MAMP/conf/apache/httpd.conf を「Listen 8888」で検索、この下に8001と8002…と追加したい分だけ追加


Listen 8888
Listen 8001
Listen 8002
virtualhostの設定
httpd.confの一番下にvirtualhostをきる設定を追加


<virtualhost *:8001>
DocumentRoot "ローカルのディレクトリのパス"
</virtualhost>
<virtualhost *:8002>
DocumentRoot "ローカルのディレクトリのパス"
</virtualhost>

MAMPでサーバ再起動して確認。

OSのhostsを編集して向き先を変える

メリット

urlをある程度好きに変更出来る

デメリット

設定がちょっと大変
MAMPの起動・終了時にパスワード入力が必要になる

設定方法

デフォルトport番号変更

MAMPの環境設定>ポートにあるApacheとMySQLの標準ポートに設定ボタンをクリッコ。
するとApacheのportが80に変わるはず。

これはApacheは元々port80がデフォルトで、デフォルトのportだと「:8888」みたいな記述を省略出来るから、80にすることでurlにport番号を書かなくてすむようになるらしい。
なんで最初から80じゃねーの?と言うと、macには元々Apacheが入ってるから、そっちにport80は譲っておいて、MAMPでは8888でも使いましょうかね、という事ぽい。
なのでmac側のApacheが動いてるとport80使いだして困っちゃうんで、macのweb共有は切っておきましょう、という話みたい!

virtualhostの設定
/Application/MAMP/conf/apache/httpd.conf の一番下に以下を追記。


NameVirtualHost *:80

<VirtualHost *:80>
	ServerName localhost
	DocumentRoot "ローカルのディレクトリのパス"
	ErrorLog "logs/localhost"
</VirtualHost>

<VirtualHost *:80>
	ServerName localhost.hogehoge.com
	DocumentRoot "ローカルのディレクトリのパス"
	ErrorLog "logs/localhost.hogehoge.com"
</VirtualHost>

さっきのとは違って今まで使えてたlocalhostも使えなくなるらしいんで、localhostを再定義するぽい。
見ての通り、下の記述によって localhost.hogehoge.com で参照したいYO!という事。

で、これだけだとまだ足りなくて、さらにmac側の設定も必要になる。
macにもwindowsにもhostsってファイルがあって、ブラウザとかでアクセスするときここに書いてあるアドレスは指定されたほうに向き先を変えてくれるようなものらしい。
ここにlocalhost.hogehoge.comを設定して、実際にブラウザでこのアドレス叩いた時にネットの海に探しにいかずローカルの中を向いてくれるようにする。

ファイルは /private/etc/hosts にあるが、これはfinderから見れなかった気がするん。
これを権限変えたりあれやったりこれやったり、みんな色々な方法でやってるんだけど、viがある程度使えるならTerminalでやっちゃうと楽。


sudo vi /private/etc/hosts

で開いてファイルの下に


127.0.0.1	local.hogehoge.com

って追記する。
いくつかのサイトを登録する場合、何行も追加していけばおk。

MAMPでサーバ再起動して確認。
ちなみにローカルのディレクトリパスにDropboxの中のフォルダを割り当てておくと、同じ環境にしているmacbookとかにもsyncして、持ち出して作業→家で作業がすぐ出来る^^

やってみた

とりあえず後者のほうにした、urlに8888とか8001とかあるのいやだったんで。
苦戦しながらなんとか動くようになったけど、MAMP起動のたび毎回パスワード入力はほんのり面倒なんで何か手がないか探してみたら、やっぱあるのね。

MAMPの起動時にパスワード入力しないでいいようにする

キーチェーンに登録して、Apache & MySQL – No Password appをDLし、MAMPじゃなくこっちから起動すればいいようだ。

詳しくはこちら
MAMPをパスワード無しで起動・終了する方法 | Suinasia
出所はこのへんぽい。
Run MAMP on port 80 without a password – the easy way | 46palermo
Start MAMP at login without password request – Mac OS X Hints

とりあえずいれてみてる、たしかに楽でいいんだけどtabでアプリ切り替え時にこの起動用スクリプトが表示されるのが少しだけ邪魔い。
また、起動のためだけにアプリ(小さいスクリプトだけど)を増やすのにもちょっと抵抗がある。
しばらく様子見。

VMwareのwindowsでも見る

さてとりあえずmacでは見れるようになったんで、windowsで見れるようにする設定。
windowsにもhostsがあるんで、それを編集するんだけど、VMwareとはいえwindowsはwindowsでlocalhostはあるわけで、また別にmacを向くようなのを作る必要があるぽい。
ちなみに以下はXPでの手順。

macのIPアドレスを調べるためwindowsのコマンドプロンプトでipconfigしてDefaultGateway調べて、C:\WINDOWS\system32\drivers\etc\hostsにそのipアドレス追記。
ただlocalhostは既に使われてるんで別の名前にしておく。


127.0.0.1	localhost
xxx.xxx.xxx.xxx	machost

みたいな感じ。
これでwindowsのブラウザとかで http://machost でmacの http://localhost が参照出来るようになる。

他の設定

SSIの設定

HTMLの中にWebサーバ側で実行するコマンドを埋め込んでおき、その実行結果をクライアントサーバに返す仕組みである。

/Application/MAMP/conf/apache/httpd.conf を「SSI」(大文字)で検索


#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

とあるので#を消してコメントアウトを外し、htmlでもSSIを使用出来るように以下のように書き換える。


AddType text/html .shtml .html .htm
AddOutputFilter INCLUDES .shtml .html .htm

外部アクセス不可にする

まず /Application/MAMP/conf/apache/httpd.conf から「DocumentRoot」で検索すると、以下のような行につく。

DocumentRoot "ローカルのディレクトリパス"

このパスをコピーし、検索すると以下のような箇所につく。


<Directory "ローカルのディレクトリパス">
	あれこれ
</Directory>

これを以下のように書き換える。


<Directory "ローカルのディレクトリパス">
	Order Deny,Allow
	Deny from all
	Allow from localhost 127.0.0.1
	Allow from 192.168
</Directory>

サーバの環境をローカルへ移す

ソースはいいとして、DBを移した時の四苦八苦。このblogを例に。

  1. phpmyadminでtableをまるごとsqlとしてエクスポート
  2. cotEditerでひらいてurl「http://weblog.atl-r.net > http://localhost.atl-r.net/weblog」とサーバパス「/home/sites/heteml/〜 > /Users/username/Dropbox/htdocs/〜」を置換
  3. さらに「weblog.atl-r.net > atl-r.net/weblog」に置換
  4. ローカルのphpmyadminでインポート
  5. データがでか過ぎて無理って言われた!
  6. 調べるの面倒でnavicatにクエリを放り込む
  7. 何故かUTF-8のクエリをUTF-16で解釈して文字化ける
  8. 新規クエリからコピペで移して実行
  9. ヤッター

ちょっとハマった所

chromeで表示確認してたんだけど、chromeの機能であるインスタント検索のせいか、port8888の時のurlを記憶しちゃって、いくらportなしのurlにアクセスしても自動でurlが8888ありに書き換えられて、ずっとうまくいってないと勘違いしてた。
全く同じ設定のMacBookAirで表示成功していたんで、キャッシュかなぁと思ってSafariで見たら表示出来てたので気づいた。
chromeの履歴とかもろもろを消したら解決。

出来なかった事

localhost.weblog.atl-r.netにしたかったけどなかなかうまくいかなくて、localhost.atl-r.net/weblogで妥協した。

参考サイト

多謝!

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://weblog.atl-r.net/memo/mamp/trackback/
Listed below are links to weblogs that reference
MAMPとVirtual Hostでローカル環境を作る from atl*weblog
pingback from MAMPに複数のドメイン「バーチャルホスト」を設定する方法 | ネットを便利に活用するTips ネットビジネスラボ 11-10-12 (水) 12:08

[...] 参考サイト MAMPとVirtual Hostでローカル環境を作る – atl*weblog [...]

Home > memo > MAMPとVirtual Hostでローカル環境を作る

Calendar
« 2012 年 2月 »
M T W T F S S
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29        
Search
ABM | AnotherBookmark™
heteml
heteml
amadana
amadana(アマダナ)
feed
Meta

Return to page top