とりあえずWEB環境でPythonを動かしてみたい。
今、借りているサーバ(Xserver)の状況を、
管理画面で調べてみると、
Pythonがインストールされていているようで、
バージョンとしては、
Python3.4.3
プログラムのパスは
/usr/bin/python3.4
となっている。
そこで、簡単なプログラム(test1-1.cgi)を作成してサーバにアップ、
#!/usr/bin/env python3.4
# -*- coding: utf-8 -*-
# ヘッダの出力
print("Content-type: text/html; charset=UTF-8")
print("")
print("abcdefg")
print("hijklmn")
この時の注意点としては、
①HTMLディレクトリ(public_html)の下にアップロード
②パーミッションは 0755 に設定
③拡張子は .cgi
④文字コードは utf-8
特に問題なく動いて、
ブラウザには、
abcdefg
hijklmn
と2行表示された。
ただ、記述を間違えた場合、
print("abcdefghij"): ← ※行末に「:」を入力
500
Internal Server Error
アクセスしようとしたページは表示できませんでした。
という画面が盛大に表示される。
実際どこが悪いのかさっぱりわからない、
一応エラーログ(サーバ管理画面からダウンロード)で確認すると、
End of script output before headers: test1-1.cgi
と出力されてはいるが、
これでも具体的にどこなのか手がかりも掴めない状況、
いろいろ調べるとプログラム中に下記2行を追加することにより、
エラー内容を表示することがわかった。
import cgitb
cgitb.enable()
んー状況は変わらず、
そこでエラーを仕込んだ行を下記に変えてみると、
prinet("hijklmn")
エラー画面が表示された。
根本的(致命的)なエラーだと、
500 を表示するのみ、
軽微なものならエラーを表示する、
という感じか。
500が出てしまうと原因究明にやたらと時間がかかりそうだし、
この辺り調査が必要だな。
ITやWEB関連でお悩みの会社を親切丁寧にサポートします、
なんとかならないかな、
と、思ったら、
相談は無料です。
miura@tirion.co.jp 担当:三浦
銘酒ネット(https://meisyu.net/)を運営しています。