あなたの使っている HTTP サーバのドキュメントを読んでください。そして ローカルシステムの管理者と一緒にどのディレクトリに CGI スクリプト をインストールすべきかを調べてください; 通常これはサーバのファイル システムツリー内の cgi-bin ディレクトリです。
あなたのスクリプトが ``others'' によって読み取り可能および実行可能
であることを確認してください; Unix ファイルモードは 8 進表記で
0755
です ("chmod 0755 filename" を使ってください)。
スクリプトの最初の行の 1 カラム目が、 #!
で開始し、その後に
Python インタプリタへのパス名が続いていることを確認してください。
例えば:
#!/usr/local/bin/python
Python インタプリタが存在し、``others'' によって実行可能であることを 確かめてください。
あなたのスクリプトが読み書きしなければならないファイルが全て
``others'' によって読み出しや書き込み可能である
ことを確かめてください -- 読み出し可能のファイルモードは
0644
で、書き込み可能のファイルモードは 0666
になるはずです。これは、セキュリティ上の理由から、 HTTP サーバが
あなたのスクリプトを特権を全く持たないユーザ ``nobody'' の権限で
実行するからです。この権限下では、誰でもが読める (書ける、実行できる)
ファイルしか読み出し (書き込み、実行) できません。
スクリプト実行時のディレクトリや環境変数のセットもあなたがログイン
したときの設定と異なります。特に、実行ファイルに対するシェルの
検索パス (PATH) や Python のモジュール検索パス
(PYTHONPATH)が何らかの値に設定されていると期待しては
いけません。
モジュールを Python の標準設定におけるモジュール検索パス上にない ディレクトリからロードする必要がある場合、他のモジュールを取り込む 前にスクリプト内で検索パスを変更できます。例えば:
import sys sys.path.insert(0, "/usr/home/joe/lib/python") sys.path.insert(0, "/usr/local/lib/python")
(この方法では、最後に挿入されたディレクトリが最初に検索されます!)
非 Unix システムにおける説明は変わるでしょう; あなたの使っている HTTP サーバのドキュメントを調べてください (普通は CGI スクリプトに 関する節があります)。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。