Pythonの'SimpleHTTPServer'を使用してWebサーバーを作成したり、ファイルを即座に提供する方法
SimpleHTTPServerは、瞬時にウェブサーバーを作成したり、ファイルをすぐに提供したりすることができるPythonモジュールです。PythonのSimpleHTTPServerの主な利点は、Pythonインタープリタがインストールされているので、特に何もインストールする必要がないことです。ほとんどすべてのLinuxディストリビューションには、Pythonインタープリタがデフォルトで用意されているため、Pythonインタープリタについて心配する必要はありません。
あなたはまた、ファイル共有の方法としてSimpleHTTPServerを使用することもできます。共有可能なファイルが置かれている場所でモジュールを有効にする必要があります。この文章では、さまざまなオプションを用いていくつかのデモンストレーションをお見せします。
ステップ1:Pythonのインストールを確認する
1. サーバーにPythonがインストールされているかどうか、以下のコマンドを発行して確認してください。
# python –V
OR
python --version
インストールされていない場合は、Pythonインタプリタのバージョンを表示し、エラーメッセージが表示されます。
2. デフォルトでそこにあったらラッキーです。実際、作業が少なくなります。もし偶然にもインストールされていなかった場合は、以下のコマンドに従ってインストールしてください。
もし SUSE ディストリビューションを使用している場合は、ターミナルに yast と入力し、–> ソフトウェア管理に移動し、–> 引用符なしで ‘python’ と入力し、–> Python インタープリターを選択し、–> スペースキーを押してそれを選択し、–> その後インストールします。
それだけです。そのためには、SUSEのISOをマウントし、YaSTでリポジトリとして設定する必要があります。または、ウェブからPythonを簡単にインストールすることもできます。
RHEL、CentOS、Debian、Ubuntuなどの異なるオペレーティングシステムを使用している場合、yumやaptを使ってPythonをインストールすればよいです。
私の場合、SLES 11 SP3 OSを使用しており、Pythonインタープリタは標準でインストールされています。ほとんどの場合、サーバーにPythonインタープリタをインストールする心配はありません。
ステップ2: テストディレクトリを作成し、SimpleHTTPServerを有効にする
3. システムファイルを変更しないテストディレクトリを作成します。私のケースでは、/x01というパーティションがあり、その中にtecmintというディレクトリを作成し、テストのためにいくつかのテストファイルも追加しました。
4. あなたの前提条件は整いました。今やるべきことは、テストディレクトリ内で以下のコマンドを発行して、PythonのSimpleHTTPServerモジュールを試すことです(私の場合は、/x01/です)。
# python –m SimpleHTTPServer
5. SimpleHTTPServerを正常に有効にすると、ポート番号8000を通じてファイルを提供し始めます。ウェブブラウザを開いてip_address:port_number(私のケースでは192.168.5.67:8000)を入力するだけです。
6. 今、リンク 'tecmint' をクリックして、tecmint ディレクトリのファイルとディレクトリをブラウズします。参考のため、以下の画面を見てください。
7. SimpleHTTPServer はあなたのファイルを正常に提供します。ウェブブラウザを通じてサーバーにアクセスした後、コマンドを実行した場所を確認することで、ターミナルで何が起こったかを見ることができます。
ステップ3:SimpleHTTPServerのポートを変更する
8. デフォルトでは、pythonのSimpleHTTPServerはポート8000を通じてファイルとディレクトリを提供しますが、下記のpythonコマンドのように、希望する別のポート番号(ここではポート9999を使用しています)を定義することができます。
# python –m SimpleHTTPServer 9999
ステップ4:異なる場所からファイルを提供する
9. 今これを試したので、実際にパスに行かずに特定の場所にファイルを提供したいかもしれません。
例えば、ホームディレクトリにいるときに、/x01/tecmint/ディレクトリのファイルをcdを使わずにサーバーしたい場合、どのようにこれを行うか見てみましょう。
# 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 を実行し、ウェブブラウザからその場所にアクセスしてください。
# pushd /x01/tecmint/; python –m SimpleHTTPServer 9999; popd;
とても簡単で便利です。ファイルや自分のHTMLコードをすぐに提供できます。最も良い点は、何もインストールする必要がないことです。例えば、誰かとファイルを共有したい場合、ファイルを共有の場所にコピーしたり、ディレクトリを共有可能にしたりする必要はありません。
単にSimpleHTTPServerを実行すれば、それで完了です。このPythonモジュールを使用する際に覚えておくべきいくつかのことがあります。ファイルを提供すると、ターミナルで実行され、そこで起こることが表示されます。ブラウザからアクセスしたり、ファイルをダウンロードしたりすると、アクセスしたIPアドレスやダウンロードされたファイルなどが表示されます。とても便利ですよね?
サービスを停止したい場合は、ctrl+cを押して実行中のモジュールを停止する必要があります。これで、PythonのSimpleHTTPServerモジュールを使用してファイルを簡単に提供する方法を理解しました。今後の記事を向上させ、新しいことを学ぶための提案や新しい発見についてコメントしていただけると大変ありがたいです。
参照リンク
SimpleHTTPServerのドキュメント












