さて、今回はお手軽テストサーバ構築のお助けngrok (エングロック)をご紹介します。どういうサービスかといいますと自分のローカル環境を外部アクセスで確認できるサービスになります。
本来は自分でローカル環境で確認したら他人にはテストサーバーなどにアップして確認してもらうのが一般的ですが、このローカルのまま確認してもらうというものになります。
はじめはアップせずにどうやって確認するの?という感じだったのですがいろいろかまってみて初めてわかりました。
開発環境で確認しているところを外部公開できるようにする仕組みなんです。あくまで一時的に確認するという使い方になるかと思います。マルチデバイスのテストなどに便利に使えます。
使い方や公開方法などをご紹介します。
ざっと流れを確認するために一応サイトに載っているものを掲載します。グーグル翻訳したものです。
簡単に見ていくと次の4項目で使えるようになります。
まず、ngrokクライアントをダウンロードします。これは、実行時の依存関係がない単一のバイナリです。
LinuxまたはOSXでは、次のコマンドで端末からngrokを解凍できます。 Windowsでは、ngrok.zipをダブルクリックしてください。$ unzip /path/to/ngrok.zip
で解凍します。 ほとんどの人は、ngrokを自分のプライマリユーザーフォルダに保存するか、コマンドラインから簡単にアクセスできるようにエイリアスを設定することを好みます。
このコマンドを実行すると、あなたの認証があなたのngrok.ymlファイルに追加されます。アカウントに接続すると、ダッシュボードに開いているトンネルが一覧表示され、トンネルのタイムアウトが長くなります。認証トークンを取得するには、ダッシュボードにアクセスしてください。
$ ./ngrok authtoken [YOUR_AUTH_TOKEN]
コマンドラインから実行して試してください。 $ ./ngrok help
でHTTPトンネルを開始するには、次にこれを実行します。
$./ngrok http 80
の使用方法に関するより多くのアイデアを得るためにドキュメントを読んでください。
実際に上記の流れ通りにやってみたいと思います。
ますは上記のngrok公式サイトからユーザ登録を行います。Github・Googleアカウントでも連携認証で登録可能ですし、登録しなくても使えますが状態を確認したり有効期限が8時間までだったりそのほか有料プランですがカスタムドメインやサブドメインを使うのにはあった方が良いかと思います。 対応環境はWindows、Mac、Linuxとなっておりマルチ対応ですね。
ダウンロードした場合は解凍した後/usr/local/binに移動させます。コマンドラインでは以下のようにすると良いです。
ダウンロードせずにHomebrewからだと楽かもしれません。npmからもインストール可能です。
これでインストールは完了しました。あとはアカウントと紐付けのため以下のように[YOUR_AUTH_TOKEN]
を入れると/Users/name/.ngrok2/ngrok.ymlが生成され、ユーザートンネル認証が登録されます。
[YOUR_AUTH_TOKEN]はngrokのログインページ内の3.Connect your accountかauthページ内に記載してあります。
さてこれで準備完了です。
あとは起動するだけです。開発環境内からターミナルで以下の通り起動させます。5000番ポートにしました。
すると以下のようになります。
これで状況を見るためにhttp://127.0.0.1:4040/にアクセスしてみます。
No requests to display yet(表示要求はまだありません)と表示されています。このurlをクリックしてみます。
トンネル接続を完了できませんでした
https://a48ec186.ap.ngrok.ioへの接続はngrokクライアントに正常にトンネリングされましたが、クライアントはローカルアドレスlocalhost:5000への接続を確立できませんでした。
Webサービスがlocalhost:5000で実行されていることと、それが有効なアドレスであることを確認してください。
発生したエラーは次のとおりです。dial tcp [:: 1]:5000:getsockopt:接続が拒否されました
とエラーになっていますがトンネリングはされているようです。
ここからちょっとわからなくなったのですが、ローカルサーバーを立ち上げていないとだめだということを気がつくまでしばらく時間がかかりました。npmのserveを使って立ち上げます。こちらはデフォルトで5000番なのでこれで確認できました。
phpの場合だとphp -S localhost:5000で立ち上がります。これで動作確認できます。
https://a48ec186.ap.ngrok.ioにアクセスします。表示されていますね。 接続できると上記のような状態になります。これでようやくローカルと外部アドレスが同じ状況になりました。
接続をやめるときはCtrl+Cで終了します。公開URLは発行するたびに変わります。要するに一度接続をやめて再度接続すると違うアドレスになります。サブドメインなどで同じアドレスにしたい場合は有料プランになります。
そのほか以下のことも出来ます。サブドメインやカスタムドメインを使うのには有料プランになります。因みにワードプレスの場合だとローカル開発環境簡単構築ツールlocalアプリを使った方が早いです。このアプリにngrokがついているので簡単に公開URLを共有できます。
フリー
クイックデモやその他の単純なトンネリングのニーズに。
ベーシック ($5/month 約550円/月)
基本は含まれています。
ユーザーごとの制限
プロ($8.25/month 約900円/月)
すべての基本機能に加えて…
ユーザーごとの制限
ビジネス($12/month 約1300円/月)
すべてのPro機能に加えて…
ユーザーごとの制限
参考になれば幸いです。
∞Tadashi Suyama∞
あまりcgiは使いたくないのですが使わざるを得ない時があります。仕方なく設置するのですがエラーが出ちゃうんです。なんか知らないけど。 ありがちなのがパーミッションとかパスが問題になるんのですけど...
19 Feb 2022
今回はワードプレス専用のアドレス変更方法をご紹介します。ワードプレスのアドレスはwordpress@~という形で送られてきますが変更可能です。 functions.phpに記載するのですがプラグ...
12 Feb 2022
Sassの遷移は多すぎる今日この頃 Ruby Sass→LibSass→DartSass(いまここ) Ruby SassはSassの最初の実装でしたが、2019年3月26日にサポートが終了しま...
22 Jan 2022
明けましておめでとうございます。 本年も何卒よろしくお願いいたします。 年末年始は雪でしたね、そこまで積もっていませんが。 {% include adsensearticle.html...
10 Jan 2022
最近はjQueryよりvueで書いた方が楽ではないかと思い学習中です。 そもそもVuejsはドキュメントが日本語対応なので試しやすいし情報も豊富なので学習しやすいです。 3大フレームワークと呼...
02 May 2021
ウェブエンジニアの須山のブログです。
WEBに関することや個人的に関心のあることについて書きます。主に技術系ブログです。