2013-08-25 15 views
7

私はmod_wsgiをubuntuのapache2にインストールしようとしています。 libapache2-mod-wsgiパッケージをインストールすると、私は彼をa2enmodで起動します。apache2とmod wsgi:ターゲットWSGIスクリプトをPythonモジュールとしてロードすることができません

mod_wsgiで使用しようとしているWebサイト(languageAnalyz)があります。私はローカルホスト/ languageAnalyzを呼び出すと 、私はapache2のログでエラー500

を持って、私はこれを見ることができます:私はこのエラーをGoogleで検索し、私は(時間のほとんどを解決をたくさん見つける

[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): Target WSGI script '/var/www/languageAnalyz/test-wsgi.py' cannot be loaded as Python module. 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] mod_wsgi (pid=4993): SystemExit exception raised by WSGI script '/var/www/languageAnalyz/test-wsgi.py' ignored. 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/var/www/languageAnalyz/test-wsgi.py", line 10, in <module> 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]  WSGIServer(app).run() 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi.py", line 112, in run 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]  sock = self._setupSocket() 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 997, in _setupSocket 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]  req.run() 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 572, in run 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]  self._end(appStatus, protocolStatus) 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 601, in _end 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1]  sys.exit(appStatus) 
[Sun Aug 25 11:28:21 2013] [error] [client 127.0.0.1] SystemExit: 0 

Djangoプロジェクト用)。 私はundsertand、私は __init__.pyファイルを作成する必要があります。 __all__一覧で

__all__ = ['app','get_size_dir','get_nbrf_dir','getStats'] #name of my functions 
import index # my three python files 
import analyz 
import test-wsgi 

は、この3つのファイル内の関数の名前です: 私がやったこと、ここに私の__init__.pyファイルです。だから何が間違っている

import os,sys 
sys.path.append(os.path.dirname(__file__)) 
from cgi import escape,parse_qs 
from flup.server.fcgi import WSGIServer 
def app(environ, start_response): 
    start_response('200 OK',[('Content-Type','text/plain; charset=utf-8')]) 
    yield "hello world!" 
WSGIServer(app).run() 

:私はちょうどtest-wsgi.py起動し、ここで同じエラーに500

を取得しようとしています は私test-wsgi.pyファイルのですか? は、

編集ありがとう:ここ を私のapache2 confにある:

WSGIPythonPath /var/www/languageAnalyz 
<VirtualHost *:80> 
    ... 
    <Directory /var/www/languageAnalyz/> 
    Options +Indexes ExecCGI FollowSymLinks MultiViews 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    DirectoryIndex index.py 
    SetHandler wsgi-script 
    </Directory> 
    ... 
</VirtualHost> 

Edit_bis: だから私は、私はDjangoのドキュメントに読み込むようにしてくださいしてみてください。 私は私のapache2のconfのを変更します。私はapache2の再起動、と私は同じエラーを得、そして1より前

WSGIPythonPath /var/www/languageAnalyz 
<VirtualHost *:80> 
    ... 
    WSGIScriptAlias /IPA /var/www/languageAnalyz/testwsgi.py 
    <Directory /var/www/languageAnalyz/> 
      Options +Indexes FollowSymLinks MultiViews 
      AllowOverride None 
      Order allow,deny 
      Allow from all 
      DirectoryIndex testwsgi.py 
    </Directory> 

    ... 
</VirtualHost> 

[Sun Aug 25 12:47:18 2013] [notice] caught SIGTERM, shutting down 
[Sun Aug 25 12:47:19 2013] [notice] FastCGI: wrapper mechanism enabled (wrapper: /usr/lib/apache2/suexec) 
[Sun Aug 25 12:47:19 2013] [notice] FastCGI: process manager initialized (pid 7879) 
[Sun Aug 25 12:47:19 2013] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads. 
[Sun Aug 25 12:47:19 2013] [notice] mod_python: using mutex_directory /tmp 
[Sun Aug 25 12:47:19 2013] [warn] mod_wsgi: Compiled for Python/2.7.3. 
[Sun Aug 25 12:47:19 2013] [warn] mod_wsgi: Runtime using Python/2.7.4. 
[Sun Aug 25 12:47:19 2013] [notice] Apache/2.2.22 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 PHP/5.4.9-4ubuntu2.2 mod_python/3.3.1 Python/2.7.4 mod_ruby/1.2.6 Ruby/1.8.7(2012-02-08) mod_wsgi/3.4 configured$ 
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param REQUEST_METHOD required by WSGI! 
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_NAME required by WSGI! 
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_PORT required by WSGI! 
[Sun Aug 25 12:47:19 2013] [error] WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI! 
[Sun Aug 25 12:47:19 2013] [error] Status: 200 OK\r 
[Sun Aug 25 12:47:19 2013] [error] Content-Type: text/plain; charset=utf-8\r 
[Sun Aug 25 12:47:19 2013] [error] \r 
[Sun Aug 25 12:47:19 2013] [error] hello world! 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7884): Target WSGI script '/var/www/languageAnalyz/testwsgi.py' cannot be loaded as Python module. 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] mod_wsgi (pid=7884): SystemExit exception raised by WSGI script '/var/www/languageAnalyz/testwsgi.py' ignored. 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/var/www/languageAnalyz/testwsgi.py", line 10, in <module> 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]  WSGIServer(app).run() 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi.py", line 112, in run 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]  sock = self._setupSocket() 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 997, in _setupSocket 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]  req.run() 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 572, in run 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]  self._end(appStatus, protocolStatus) 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] File "/usr/local/lib/python2.7/dist-packages/flup/server/fcgi_base.py", line 601, in _end 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1]  sys.exit(appStatus) 
[Sun Aug 25 12:47:19 2013] [error] [client 127.0.0.1] SystemExit: 0 

Edit_ter:

[OK]を、私は成功した起動testwsgi.py。私は、アプリケーションの中に私のアプリの機能を変更し、私は最後に、いくつかの行を追加します。

if __name__ == '__main__': 
    from wsgiref.simple_server import make_server 
    server = make_server('localhost', 8080, application) 
    server.serve_forever() 

Iイベントは知りません、それは以前に働いていなかった理由、それは、働いている理由。 ...そして今、私は彼らのパスで、ファイルを開くには、いくつかの問題だ(設定ファイルを、またはファイルをテンプレート...)

[Sun Aug 25 13:10:51 2013] [error] [client 127.0.0.1] File "/var/www/languageAnalyz/analyz.py", line 22, in getStats 
[Sun Aug 25 13:10:51 2013] [error] [client 127.0.0.1]  flangs=open('config/languages.yml') 

私は絶対パスでみてください、それはあまりにも動作しませんでした...

+0

あなたはまた、これらの質問を見てみたいことがあります。http://stackoverflow.com/questions/17766595/403-forbidden-error-with-django-and-mod- wsgi/28394998#28394998とhttp://stackoverflow.com/questions/3749331/django-with-mod-wsgi-returns-403-error – jknappen

答えて

0

初心者のために間違った文書に従っているようです。 mod_wsgiを使用する場合:

あなたはFASTCGIの展開のドキュメントを使用しているように見えます。

また、あなたが行うことはできません。

import test-wsgi 

A Pythonモジュール名が持つことができません ' - ' それで。

要約すると、展開時にDjangoのドキュメントを読み直してください(または読んでください)。

+0

以前よりもエラーが増えました。私は同じエラーを受け取りました。もう1つはこのエラーの前です。 私の投稿を編集します。 – vekah

+0

さて、私は正常にtestwsgi.pyを起動します。 私のアプリケーション関数をアプリケーションに変更し、最後にいくつかの行を追加します: 'if __name__ == '__main__': wsgiref.simple_server import make_server server = make_server( 'localhost'、8080、application) サーバ。 serve_forever() ' イベントは分かりません、なぜ動作しているのですか。 ... そして、パス(設定ファイル、テンプレートファイルなど)を使ってファイルを開くときに問題が発生しました。 – vekah

+0

絶対パス名を使用する必要があります。現在の作業ディレクトリは、期待するところにはありません。 http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Application_Working_Directory –

0

私はdifferntファイルと同じ問題を抱えていて、ファイルの実行可能ファイルを私のために修正しました。もちろん、あなたがあなたの問題としてこれを絞り込んした後に必要なユーザーにそれをロックダウンするとよいでしょう:

chmod a+x test-wsgi.py 
0

は、私にとっての問題は、WSGI Pythonのバージョンの不一致でした。私は、Pythonの3を使用していました:

$ sudo apt-get remove libapache2-mod-python libapache2-mod-wsgi 
$ sudo apt-get install libapache2-mod-wsgi-py3 
関連する問題