PeaceJetのブログ

金融系の社内エンジニアをやりながら、マーケティングやプランナーなども

【Pythonista3】iPhoneをサーバーにする方法【StaSh】

最近は、あまり触っていなかったPythonista3ですが、ビルトインサーバーの件があって、色々考えているうちに、「そう言えば、Pythonista3ってサーバー立てられるの?」ってことになりまして…Stashを使ってサーバー立ててみました。

Stashをインストー

Stashとは、早い話がBashの機能制限版って感じに思います。この表現があっているか、否かは分かりません。自分が思いついた中で、以下のコマンドは出来ませんでした。

$ date
#出来ません。

インストールなどは、ひとりぶろぐ様の記事を参考にさせていただきました。
Pythonista 3にシェル、Dropbox同期・ダウンロード機能などAppleが許さない機能を追加する

このStashってのが、また、いい感じにバケモンで…ひとりぶろぐ様の言葉をお借りすると。

Pythonista 3は別に仕様をオープンしているわけでもAPIを公開しているわけでもありません。Pythonista 3をリバースエンジニアリングして作られています。

Pythonista 3には、Pythonista 3の合法ドラッグのような危険な魅力を嗅ぎ付けてきた、このような黒魔術を使うユーザーが集っていてなかなか楽しいのです。

StaShは、Pythonista 3のタブ内でターミナルエミュレータとして動作する部分と、その中で動作するコマンドから成る、一つのCUI作業環境です。Windows 10における「Windows Subsystem for Linux」のようなものというと言い過ぎかもしれませんが、StaShをPythonistaにインストールすると、pip、git、ls、rm、cd、pwdwgetcurltelnetssh、scpなどなど、普段我々がPC/Mac上で使っているおなじみのコマンドがPythonista 3上で使えるようになります。

引用元 : ひとりぶろぐ様
Pythonista 3にシェル、Dropbox同期・ダウンロード機能などAppleが許さない機能を追加する

ここら辺で、自分も「そう言えば、Pythonista3を買う時に、この記事読んだけど…あの時は、凄さがイマイチ分からなかった。てか、Siriまでいじれるの?!」…という独り言をいってました。

Stashからサーバーを立てる

お決まりのコマンドを叩いてみます。

$ python -m SimpleHTTPServer 8080

すると…。
無事、立ち上がりました!
ブラウザからローカル・ループバック・アドレス「127.0.0.1」とポート番号「:8080」を続けて入力して実行してみます。

127.0.0.1--[27/May/2017 07:23:39] "GET / HTTP/1.1"200 -」という、アクセスログがちゃんと出ています。


「index.html」などを置いておけば、普通にWebページが開いちゃいます。
ポートフォワーディングすれば、外部からのアクセスもいけると思います。

ただ、ひとつ注意なのですが・・・。
サーバーが起動している状態で終了してしまうと、プロセスが終了せず、次回以降エラーになる可能性があるので。

以下の様にプロセスをキルしておきましょう!

$ jobs
# 動いているプロセスを確認

$ kill [プロセス番号]