インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Webサーバーを立てずにPHPだけでカジュアルにWeb開発を行う + ポートフォワードを使ってリモートlocalhostをクライアントで見る

PHPはWebサーバーになる。

PHPはWEBRickのようにWebサーバーとして動かすことができます。

$ php -S addr:port

実行例

root@gealach:~# php -S localhost:8081
PHP 5.6.9-0+deb8u1 Development Server started at Fri Jul 24 05:24:42 2015
Listening on http://localhost:8081
Document root is /root
Press Ctrl-C to quit.

ApacheだかNginxだかの面倒くさい設定をせずにカジュアルにPHPを動かせますね!

PHP + 黒魔術

ApacheやNginxの入っていないリモートサーバーでPHPをイントラ向けのWebサーバーとして動かし、SSHのポートフォワードでクライアントPCからブラウズするということをやったのでメモ。

こんなイメージ

サーバー側の設定

phpをWebサーバーとして動かすだけ。

root@gealach:~# php -S localhost:8081
PHP 5.6.9-0+deb8u1 Development Server started at Fri Jul 24 05:24:42 2015
Listening on http://localhost:8081
Document root is /root
Press Ctrl-C to quit.

クライアント側の設定

2つの踏み台サーバー越しに8081番をポートフォワードします。

クライアントはMacで踏み台、リモートサーバーはLinux。

$ ssh -A -t -L 8081:localhost:8081 user1@humidai1.example.jp ssh -i .ssh/id_rsa -p 22022 -A -t -L 8081:localhost:8081 bacchi@humidai2.example.jp ssh -i .ssh/id_rsa -p 20022 -A -N -L 8081:localhost:8081 root@tergethost.example.jp

なかなかの黒魔術っぷりだと思います。

とりあえず、トンネル部分は-A -t -Lのオプションで、目的のサーバーは-A -N -Lでつなげばよいです。

ポートフォワードについてはいずれまとめようと思います。

これで、クライアントのlocalhost:8081につなぐとはるか遠くのサーバーのlocalhost:8081を見ることができます。

試しにphpinfoでも見てみる。

ログもこんな感じで出る。

root@gealach:~# php -S localhost:8081
PHP 5.6.9-0+deb8u1 Development Server started at Thu Fri 24 05:33:15 2015
Listening on http://localhost:8081
Document root is /root
Press Ctrl-C to quit.
[Fri Jul 24 05:34:20 2015] ::1:38452 [200]: /info.php
[Fri Jul 24 05:34:20 2015] ::1:38453 [404]: /favicon.ico - No such file or directory
[Fri Jul 24 05:34:20 2015] ::1:38454 [404]: /apple-touch-icon-precomposed.png - No such file or directory
[Fri Jul 24 05:34:21 2015] ::1:38455 [404]: /apple-touch-icon.png - No such file or directory
  • B!