Ipad

iPadやiPhoneでシンプルなWebサーバーを実行する方法

iPadやiPhoneでシンプルなWebサーバーを実行する方法

iPad または iPhone で動作するシンプルな Web サーバー

iPadやiPhoneでシンプルなWebサーバーを動かしたいですか?iOSでiSH Linux Shellを起動していれば、iPhoneやiPadから直接シンプルなWebサーバーを起動・実行できます。iSHを起動し、Python 3でWebサーバーを起動すれば、HTMLファイルやディレクトリリストをlocalhost経由で同じデバイスに、あるいはiOSデバイスのIPアドレスを持つ同じネットワーク上の誰にでも提供できます。もちろん、Apacheやnginxを実行するほど機能や機能が充実しているわけではありませんが、シンプルなローカルHTML開発環境で作業したり、iPhoneやiPadからhttp経由で何かを提供したりしたい場合は、これで十分でしょう。しかも、とにかくクールです。

iSHとPythonを使ってiOS上でWebサーバーを実行する方法

  1. まだインストールしていない場合は、こちらの指示に従ってiPhoneまたはiPadにiSHをインストールしてください。そうでない場合はiSHを起動してください。
  2. iOS の iSH コマンドラインで、次の構文を入力して Enter キーを押します。
  3. python3 -m http.server

  4. 「0.0.0.0 ポート 8000 で HTTP を提供しています」というメッセージが表示されたら、同じデバイスまたは別のデバイスから Web サーバーに接続する準備が整いました。
  5. Python simple web server running on iOS

    • 同じデバイス (localhost) から iOS Web サーバーに接続するには、任意の Web ブラウザーで次のアドレスを指定します。
    • http://127.0.0.1:8000
      Loading web server from localhost on iPad

    • 同じネットワーク上の別のデバイスから iOS Web サーバーに接続するには、任意の Web ブラウザーで次のアドレスを指定します。
    • http://DEVICE-IP-ADDRESS:8000
      「DEVICE-IP-ADDRESS」をiSHとPythonウェブサーバーを実行しているデバイスのIPアドレスに置き換えると、必要に応じてネットワーク設定でiOSデバイスのIPアドレスを確認できます。(スクリーンショットの例は、iOSデバイスのIPアドレスが192.168.1.10であることを示しています)
      Loading the iOS web server from another iOS device on the same network

かなりクールですよね?

Pythonサーバーを実行している現在の作業ディレクトリに、基本的なindex.htmlファイルを置くことをお勧めします。Pythonコマンドを実行しているiOSデバイスの現在の作業ディレクトリに、シンプルなindex.htmlファイルがない場合、代わりにシンプルなディレクトリリストが表示されます。

シンプルな Web サーバーの実行中は、アクセス時間、日付、IP アドレス、GET および PUSH リクエスト、404 エラー、その他の一般的なアクセス ログ情報を示す標準ログ情報が iSH ターミナル ウィンドウに表示されます。

Simple web server on iOS showing access logs

ここでは明らかに python3 Web サーバー コマンドを使用しますが、iSH では python2 と python3 の両方が利用できるので、必要に応じて Python 2 インスタント Web サーバーを使用することもできます。

いずれにせよ、これはウェブホスティングやウェブ開発にとって特に実用的なソリューションではなく、本格的な用途にはおそらく使用しないでしょうが、私たちのようなオタクにとっては概念実証として楽しく興味深いものです。いつかiOSの世界でも、Mac版MAMPのような簡単なウェブサーバー設定ができるようになるかもしれません。しかし、それまではソリューションはかなり限られており、当面はほとんどのウェブワーカーや開発者はsshを使ってウェブサーバーに接続し続けるでしょう。

iOS デバイスでネイティブに Web サーバーを設定したり、Web 共有を行ったりするための他の興味深いソリューションやマニアックなソリューションをご存知の場合は、コメント欄で共有してください。