[ConoHa]PythonでCGIを動かしてみる

ConoHa

ConoHa WINGのサーバではすぐにCGIを動かせるようになっています。
この記事では実際にPythonでCGIを動かす所までを説明しています。

URL確認

CGIの動作確認をするために事前にURLを確認します。

ConoHa Wingの管理画面にログイン後「サーバー管理」を選択します。

ドメイン画面からサーバーの「ドメイン名」を確認します。

公開URLは以下となります。

http://infomisc.conohawing.com/

この時点ではフロントページが存在しませんので、アクセスしてもエラーになります。以下でフロントページ(index.html)を作成します。

フロントページ作成

公開URLにアクセスすると、デフォルトではindex.htmlが読み込まれます。
この動きはHTTPサーバの設定によって変更できます。
index.htmlを読み込まないようにもできますので、あくまでConoHa Wingでのデフォルトとご理解ください。

sshでサーバーにログインすると、public_htmlディレクトリが存在しており、
さらに該当するドメインのディレクトリが存在します。
このディレクトリ配下が、http://infomisc.conohawing.com/ にマッピングされます。

$ ls
__pycache__  logs  perl5  public_html  py.env  src  work
$ cd public_html/
$ ls
infomisc.blog  infomisc.conohawing.com
$ cd infomisc.conohawing.com/
$

次にinfomisc.conohawing.comディレクトリ配下にindex.htmlファイルを作成し、簡単なHTMLを記述して保存します。

<html>
<body>
Front Page
</body>
</html>

CGIファイル作成

フロントページは作成できたので、今度はPythonでCGIを作成してみましょう。
とはいえ難しいことはありません。

まずは、Pythonコマンドのパスを確認しておきます。
CGIではファイルの1行目に書かれたプログラムを呼び出して実行しますので、正確にパスを書く必要があります。

$ which python
/usr/local/bin/python

パスを確認できたら、infomisc.conohawing.comディレクトリ配下にtest.cgiファイルを作成します。
test.cgiには以下のように書きます。これだけでCGIとして動作します。

#!/usr/local/bin/python

print("Content-Type: text/html")
print()
print('<html><body>python cgi</body></html')

ファイルの実行権限がないとtest.cgi単体では実行できませんのでパーミッションを変更します。
パーミッション変更後、実際に実行できることを確認します。

$ chmod 755 test.cgi
$ ls -l test.cgi
-rwxr-xr-x 1 cXXXXXXX cXXXXXXX 111 Feb 12 18:04 test.cgi
$ ./test.cgi
Content-Type: text/html

<html><body>python cgi</body></html
$

最後にフロントページからtest.cgiを呼び出すようにしてみましょう。
index.htmlを以下のように変更して http://infomisc.conohawing.com/ にアクセスしてみてください。
test.cgiリンクが表示され、リンクをクリックすると「python cgi」というメッセージが表示されたら成功です。

<html>
<body>
Front Page
<ul><li><a href="./test.cgi">test.cgi</a></li></ul>
</body>
</html>

まとめ

うまく動作しましたでしょうか。
うまく表示されない場合は、パスば間違っていないかや、ファイルの実行権限の付け忘れがないかなど、
確認してみてください。

プログラミングスクールをまとめました。
Pythonなどのプログラミングを学ぶことで実現できることの幅が広がりますので、
参考にしていただければと思います。

コメント

タイトルとURLをコピーしました