2012-03-18 10 views
0

CGIスクリプトで使用するときにMySQLdbに問題があります。私はOSxでローカルホストを実行しています。Python - CGIスクリプトのMySQLdbをブラウザで動作させないでインポートする

基本的には、端末からコードを実行するとうまく動作しますが、ブラウザから実行すると、インポートMySQLdb行までのすべてが実行されます。例えば

:ブラウザと端末において

#!/usr/bin/python 
print "Content-Type: text/html\n" 
print "abc" 

、これは、ABCをプリントアウト。

しかし、次の

#!/usr/bin/python 
print "Content-Type: text/html\n" 
print "abc" 
import MySQLdb 
print "123" 

の端末では、ABCと123を出力しますが、ブラウザではそれだけでABCを出力します。

インポートMySQLdb行に問題があるようですが、エラーは表示されません。

誰にでもアイデアはありますか?

答えて

1

問題を絞り込むには、2か所で調べます。最初はあなたのWebサーバーのエラーログです。私はそれがOS X上でどこにあるのかわからないが、例えばRed Hatは/var/log/httpd/error_logにあります。あなたはHTTPリクエストを送信するなどのエラーログを見てtail -fを使用します。

$ tail -f /var/log/httpd/error_log 

あなたに見ることができる他の事は、Pythonのcgicgitbモジュールです。前者は車輪を再構築する必要がなくなり、後者はあなたのブラウザにトレースバックを与えるでしょう。

+0

ブリリアント!エラーログを確認したところ、フォルダへのアクセス権がないと示唆していたので、sudo chmod 777/Library/Webserverを実行しました。ありがとう! – Ger

+0

うれしい私は助けることができました!警告の一言:あなたのローカルマシンでは 'chmod 777'を使うのはおそらくOKですが、プロダクションに入るときに、どのユーザーにどのような権限が必要かを正確に分けて、より制限的なアクセス許可を使用することをお勧めします。そうしないと、手にセキュリティ上の問題が発生する可能性があります。 – zigg

関連する問題