2011-01-05 21 views
3

実行したいPythonスクリプトと、以下の設定があります。 Ubuntu 10.04、Apache2、Python 2.6、mod_python、mod_wsgiがインストールされています。CGIがpython - 500内部サーバーエラーを実行していません

http://bytes.com/topic/python/answers/474462-apache-python-ubuntu

http://apache.active-venture.com/cgi-configure.html

http://modpython.org/live/current/doc-html/inst-testing.html

http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide

http://wiki.apache.org/httpd/DistrosDefaultLayout

は、私は以下のサイト上の指示に従ってきました

サイト-利用可能で、デフォルトのファイル:

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    DocumentRoot /var/www 
    <Directory /> 
      Options FollowSymLinks 
      AllowOverride None 
    </Directory> 

    <Directory /var/www/> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride None 
      Order allow,deny 
      allow from all 
    </Directory> 

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
      AddHandler mod_python .py 
      AddHandler cgi-script .cgi py 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Order allow,deny 
      Allow from all 
    </Directory> 

私は500内部サーバーエラーを取得しています。 また、ファイルのアクセス権を755に変更しました

pyファイルは、ページに表示されるテキストを単に出力します。 どうすればよいですか? おかげ

[編集]:更新し、それは以下のようPYファイル エラーログのバグに関連しています。

Traceback (most recent call last): 
    File "/usr/lib/cgi-bin/amissa2.py", line 80, in <module> 
    zoom_factor = int(parms.getfirst('zoom')) * int(parms.getfirst('zsize')) 
TypeError: int() argument must be a string or a number, not 'NoneType' 

こっち、intになしから変換する際にエラーと表示されます。

zoom_factor = int(parms.getfirst('zoom')) * int(parms.getfirst('zsize')) 

どれヒントこれは、このような変換を行うことができますどのように?

+2

さらに多くのシステム管理者の質問があります。ログを確認してください。彼らがあなたに十分な説明をしていない場合は、冗長を増やしてください。 – wds

+2

Apacheエラーログからさらに情報を提供できますか? 'LogLevel debug'を設定してみてください。 – scoffey

答えて

1

parms.getfirst( 'zoom')またはparms.getfirst( 'zsize')がNoneを返す場合は、URLにこれらのパラメータを指定していない可能性があります(これらのパラメータは何であるか推測するだけです)。これらが欠落している場合の動作を定義します(「0」のズームを意味するか、または乗算しているので「1」が理にかなっています)。

次に、Noneをintに変換する方法を知っている独自の変換関数を作成し、int()の代わりにそれを呼び出します。

def convert(value): 
    if value is None: 
     return 0 # or 1, or whatever 
    else: 
     return int(value) 
1

あなたはwsgiモジュールをロードしていません。

LoadModule wsgi_module modules/mod_wsgi.so 

また、mod_wsgiまたはmod_pythonのみをインストールする必要があります。特定の必要がある場合を除いて、両方ではありません。

関連する問題