Python「SimpleHTTPServer」を使用して Web サーバーを作成したりファイルを即座に提供したりする方法
SimpleHTTPServer は、Web サーバーを即座に作成したり、ファイルを瞬時に提供したりできる Python モジュールです。 Python の SimpleHTTPServer の主な利点は、Python インタープリターがインストールされているため、何もインストールする必要がないことです。ほとんどすべての Linux ディストリビューションには、Python インタープリターがデフォルトで用意されているため、Python インタープリターについて心配する必要はありません。
SimpleHTTPServer をファイル共有方法として使用することもできます。共有可能なファイルが配置されている場所でモジュールを有効にするだけです。この記事では、さまざまなオプションを使用したいくつかのデモンストレーションを示します。
ステップ 1: Python のインストールを確認する
1. 以下のコマンドを実行して、サーバーに Python がインストールされているかどうかを確認します。
# python –V
OR
python --version
入手した Python インタープリターのバージョンが表示され、インストールされていない場合はエラー メッセージが表示されます。
2. それがデフォルトで存在していれば幸運です。実際には仕事は減ります。万が一インストールされていない場合は、以下のコマンドに従ってインストールしてください。
SUSE ディストリビューションをお持ちの場合は、ターミナルに yast
と入力します –> ソフトウェア管理に移動します –> 「<」と入力しますcode>'python' 引用符なし –> Python インタープリターを選択 –> スペースキーを押して選択し、 –> してインストールしますそれ。
とてもシンプルです。そのためには、SUSE ISO をマウントし、YaST によってリポジトリとして設定するか、Web から Python を簡単にインストールする必要があります。
RHEL、CentOS、Debian、Ubuntu、その他の Linux オペレーティング システムなどの別のオペレーティング システムを使用している場合は、yum または apt を使用して Python をインストールするだけです。
私の場合はSLES 11 SP3 OSを使用しており、Python インタープリターがデフォルトでインストールされています。ほとんどの場合、サーバーへの Python インタープリターのインストールについて心配する必要はありません。
ステップ 2: テスト ディレクトリを作成し、SimpleHTTPServer を有効にする
3. システム ファイルをいじらない場所にテスト ディレクトリを作成します。私の場合、/x01
というパーティションがあり、そこに tecmint
というディレクトリを作成し、テスト用のテスト ファイルをいくつか追加しました。
4. これで前提条件の準備が整いました。テスト ディレクトリ (私の場合は /x01//) 内で以下のコマンドを発行して、Python の SimpleHTTPServer モジュールを試すだけです。
# python –m SimpleHTTPServer
5. SimpleHTTPServer を有効にすると、ポート番号 8000 を介してファイルの提供が開始されます。 Web ブラウザを開いてip_address:port_number と入力するだけです ( 私の場合は192.168.5.67:8000)。
6. 次に、リンク 'tecmint'
をクリックして、tecmint ディレクトリのファイルとディレクトリを参照します。以下の画面を参照してください。
7. SimpleHTTPServer はファイルを正常に提供します。 Web ブラウザを通じてサーバーにアクセスした後、コマンドを実行した場所を確認することで、ターミナルで何が起こったかを確認できます。
ステップ 3: SimpleHTTPServer ポートの変更
8. デフォルトでは、Python の SimpleHTTPServer はポート 8000 を介してファイルとディレクトリを提供しますが、別のポート番号を定義することもできます (ここではポート 9999 を使用しています) ) 以下に示すように、Python コマンドを使用して必要に応じて設定します。
# python –m SimpleHTTPServer 9999
ステップ 4: 別の場所からファイルを提供する
9. 試してみると、実際にパスにアクセスせずに、特定の場所でファイルを提供したい場合があります。
たとえば、ホーム ディレクトリにいて、cd を使用せずに /x01/tecmint/ ディレクトリにあるファイルを /x01/tecmint にサーバー配信したいとします。どうやってやるか見てみましょう。
# pushd /x01/tecmint/; python –m SimpleHTTPServer 9999; popd;
ステップ 5: HTML ファイルを提供する
10. 提供場所に index.html
ファイルがある場合、Python インタープリターは自動的にそれを検出し、ファイルを提供する代わりに HTML ファイルを提供します。
見てみましょう。私の場合、index.html
という名前のファイルに単純な HTML スクリプトを含め、それを /x01/tecmint/ に配置します。
<html>
<header><title>TECMINT</title></header>
<body text="blue"><H1>
Hi all. SimpleHTTPServer works fine.
</H1>
<p><a href="https://linux-console.net">Visit TECMINT</a></p>
</body>
</html>
次に、それを保存し、/x01/tecmint で SimpleHTTPServer を実行し、Web ブラウザからその場所に移動します。
# pushd /x01/tecmint/; python –m SimpleHTTPServer 9999; popd;
とてもシンプルで便利です。ファイルまたは独自の HTML コードをすぐに提供できます。最も良いのは、何もインストールすることについて心配する必要がないことです。ファイルを誰かと共有するようなシナリオでは、ファイルを共有場所にコピーしたり、ディレクトリを共有可能にしたりする必要はありません。
その上でSimpleHTTPServer を実行するだけで完了です。この Python モジュールを使用する際には、留意しなければならないことがいくつかあります。ファイルを提供するときにターミナル上で実行され、そこで何が起こったかを出力します。ブラウザからアクセスしたりファイルをダウンロードしたりすると、アクセスしたIPアドレスやダウンロードしたファイルなどが表示されるのでとても便利ですよね。
配信を停止したい場合は、ctrl+c を押して実行中のモジュールを停止する必要があります。これで、ファイルを提供するための簡単なソリューションとして Python の SimpleHTTPServer モジュールを使用する方法がわかりました。提案や新しい発見について以下にコメントしていただければ、今後の記事を強化し、新しいことを学ぶことができます。
参考リンク
SimpleHTTPServer ドキュメント