連載第182回
2023年1月8日
MAMP PRO & NAMO2 外部デバイスからローカルホストのサイトに接続する

前回、iPadからローカルホストに立ち上げたバックアップ用サイトに接続出来ず、その原因や対処方法などを探し回ったのですが、全く解決方法が見つかりませんでした。意外にMAMP PRO & NAMO2の組み合わせで導入、使ってみた記事という類が少なく「欲しい情報が全然見つからない…このままだと9千円が水泡に」と絶望して、テスト用ホストを作っては設定を変え、iPadの「設定」から入ってはDNSの構成を変え…とか色々試して全て撃沈。しかし道は全くの偶然に開けました。

午前中から作業を開始し、およそ6時間ほど経ってアチコチ設定を変えては再起動、リロードetc.etc.をiPad ProやiPod touchで繰り返していた時…

いきなり来た。
一体どこをどう弄ったのか全く状況を把握していません。とりあえず、急いで各種アプリケーションの設定画面をキャプチャして保存し、自分がこれまでに正しいと考えていた手順とは異なる箇所を探してみました。自分が考えもしなかったところに鍵があるはずです。

謎解きの鍵は「MAMP Viewer」と「.local」

ほどなくしてその鍵は見つかりました。「MAMP Viewer」「.local」です。
大きく罠にハマった要因としては、NAMO2が.localを全く受け付けずに拒否する仕様であることに気付かなかった事と、自分が最初に接続しようとしたホスト名がたまたま「○○○.local」だっだせいで、知らぬうちに事態を余計に混乱させてしまったことです。どうやら食べ合わせが悪かったらしい。

以下、MAMP PRO & NAMO2を使って外部デバイスからローカルホストのサイトに接続する場合の注意点についてザックリとまとめてみます。

外部デバイスからローカルホストのサイトに接続する場合の注意点

「.local」を使う場合は「MAMP Viewer」にチェックを入れる

まず何より、不具合の原因は自分が「ドメイン名でアクセスするためにはNAMO2を使う」と固く信じ込んでいたことです。この思いこみが大きな仇となりました。無印MAMPを使っていた以前から僕は特に深く考えることなくローカルサイトの末尾を「.local」としていたのですが、.localサイトに外部から接続する場合はNAMO2を使うのではなく、必ず「MAMP Viewer」にチェックを入れていなければなりません。上図左上のように「flipflipflip.local」と名付けたホストには、右下のようにMAMP Viewerにチェックを入れます。そして「NAMO Viewer」のチェックは外しておきます。これで、.localのホストはiPod touchやiPad ProのSafariから接続出来るようになります。

ところでMAMP Viewerってなんぞや?と思い調べてみると、MAMP PROで作成したホストを拾って簡単にブラウジングできるiOS、iPadOS用のアプリのようです。MAMP.infoに掲載されているドキュメントの該当箇所を読んでみると、「.local使え」と書いてある…、記載が地味すぎて気付かなかった。

ちなみに、作成したホスト.localは、必ずしもMAMP Viewerアプリを経由する必要はありません(ただのランチャーみたいな役割)。今回の例だと、Safariから直接、http://flipflipflip.localで開けます。

.localではないサイト名の場合はどうか?

例えば上図のように、ABC.defの設定画面でMAMP Viewerにチェックを入れようとすると「末尾に.localを追加するよ?」と警告されます。ABC.defで検証する必要があると言う場合は、ようやくそこでNAMO2の出番となります。

そこで!「.local」以外を使う場合はNAMO2を使う

では「ABC.def」をMac mini以外のデバイスからブラウズしたい場合はどうするのか?上図のように、まずはABC.defの設定画面で「NAMO Viewer」にチェックを入れ、「MAMP Viewer」のチェックは外しておきます。

続けてNAMO2を起動し、左下の+ボタンを押してNAMO HOSTとして「ABC.def」を作成します。特に他の設定はいじらずにデフォルトのまま、右上のスタートボタンを押すと、ローカルのDNSとして作動開始します。

NAMO2で立てたホストへの接続は、そのローカルIPアドレスをデバイスに予め指定しておく必要アリ

ただ、このままではMac mini以外の他のデバイスから接続出来ません。こちらの記事を参考に→「How to use custom DNS with MAMP」、各デバイスが参照しに行くDNSのIPアドレスを予め指定しておきます。自分の環境の場合だと、サーバを立てているMac mini(192.168.1.2)のIPアドレスを設定します。

下図にiPadの場合の設定画面を載せます。

設定>Wi-Fiに入って、接続しているネットワークの「i」ボタンをクリックします。

下の方にさがって行って、「DNSを構成」をクリック。

デフォルトでは自動だったものを「手動」に切り替えます。「サーバを追加」を押して、Mac miniに割り振られているIPアドレス(自分の環境では192.168.1.2)を追加。これまで参照していた「192.168.1.1(レンタルしているルーターのIPアドレス)」は削除して「保存」を押します。

ちなみに、NAMO2を起動しているマシンのIPアドレスはNAMO2の設定画面で分かります(↑)。

iPadと同じようにiPod touchにも設定を行い、Safariを起動して「http://ABC.def」を入力すると、上図のように無事、サンプルページが開きました。

このように、NAMO2を使用して「.local」以外のサイト名で動作確認を行うことができますが、事前に各デバイスにDNSを手動で指定しなければならず(この設定を忘れると、サーバが見つかりません等とエラーになる)、それが面倒と言えば面倒です。テスト専用のデバイスがあればさほど問題ではないと思いますが。

もしかしてNAMO2は不要だったのでは?

以上のようにして無事、MAMP PRO & NAMO2でやりたかったことは実現出来たのですが、自分の場合は以前から「.local」でローカルサイトを作成していたので、ちょっと冷静になってみると、この仕様を知った後では、NAMO2は不要だったような気がしないでもありません。幸いなのは、バンドル割引きでNAMO2単品2000円のところ1000円ちょい、それがブラックフライデーで600円ちょいになっていたところで買った、と言うわけで、今後何か別件で必要になった場合の保険だと、無理矢理納得しておくことにします。