Published On: 2023-10-26|Last Updated: 2023-10-26|Categories: code snippet, Hosting, PHP, Programming, Security, WordPress|

ある Webhook 対応機能を開発していたのだが、当然インターネット側から呼び出せないと絵に描いた餅から進まない。

  1. ngrok などのトンネルサービス
  2. テストサイトを作成し、何らかの同期ツールを用いる
  3. リバースプロキシ

以上のようにいくつか選択肢はあったと思うが、現在ある環境を流用しようとして 3 を Windows apache –> ssh port forward –> nginx proxy –> the Internet という構成になった。正直どれも複雑だと思うのだが、結果的に一番トリッキーだったかもしれない。

安全を重視するなら 2 番であるべきだろう。同期ミスに気付かずに延々と頭をひねることもあるかもしれないが似たようなことは他の選択肢でも起こりえる。

開発環境を外部に暴露するにあたって当然セキュリティは考慮しなければならないが、パスワードを強固にするとか、流出したら面倒なコンテンツは削除しておくとか、各々の環境でどのような措置が必要かは専門家であれば分かると思う。

しかし WordPress において面倒なのはインスタンスは通常、URL が固定されるということである。つまり 2 つ以上のルート URL を持てない。設定なしでは http を https に変えても面倒なことになる。

それすら面倒くさがる人は次のようなコードを wp-config.php などで実行する。要はクライアントの http request の scheme / host / port を推測して、定数などで強制してしまおうというものだ。正直結構適当で本番環境で使うのはためらわれるが、開発用環境や数日落ちても許容できる実験的なサイトであればまあ使えないでもないコードである。

GitHub でこの Gist を表示

関連