2

Flask マイクロフレームワークで開発された非常に単純な Python Web アプリケーションを実行しようとしています。Ubuntu 10.04 LTS で VPS を使用しています。私はこの指示に従って「Hello world!」という慰めを得ましたが、これは成功体験でした。しかし今、もう少し複雑な構成をセットアップしていて、これを正しく機能させることができません。

私のアプリケーションの Apache 仮想ホスト構成は次のとおりです。

<VirtualHost *:80>
    ServerAdmin    user@example.org
    ServerName    domain.com
    ServerAlias    www.domain.com

    DocumentRoot    /srv/www/domain.com/public_html/

    LogLevel    info    # I've put this for debugging purposes.
    ErrorLog    /srv/www/domain.com/logs/error.log
    CustomLog    /srv/www/domain.com/logs/access.log combined

    WSGIDaemonProcess   username   user=username    group=username   threads=5   processes=5
    WSGIScriptAlias /myapplication/     /srv/www/domain.com/myapplication/myapplication.wsgi

    <Directory /srv/www/domain.com/myapplication/myapplication>
        WSGIProcessGroup    username
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>

    Alias /css    /srv/www/domain.com/public_html/css
    Alias /js    /srv/www/domain.com/public_html/js
    Alias /images    /srv/www/domain.com/public_html/images
</VirtualHost>

そして、私のWSGI構成ファイルは次のとおりです。

# -*- coding: utf-8 -*-
from myapplication import app as application

これは上記の構成で何か問題がありますか?

最後に、Apache から 500 エラー ページが表示されます。だから私はログをチェックします:

[info] mod_wsgi (pid=3132, process='', application='domain.com|/myapplication/'): Loading WSGI script '/srv/www/domain.com/myapplication/myapplication.wsgi'.
[error] mod_wsgi (pid=3132): Target WSGI script '/srv/www/domain.com/myapplication/myapplication.wsgi' cannot be loaded as Python module.
[error] mod_wsgi (pid=3132): Exception occurred processing WSGI script '/srv/www/domain.com/myapplication/myapplication.wsgi'.
[error] Traceback (most recent call last):
[error] File "/srv/www/domain.com/myapplication/myapplication.wsgi", line 3, in <module>
[error] from myapplication import app as application
[error] ImportError: No module named myapplication

ツリー構造は次のようになります。

/myapplication
    myapplication.wsgi
    myapplication (python package)

どうやら、Python は でmyapplicationモジュールを見つけることができませんでしたsys.path。しかし、印刷物で確認したところ、そこにありました。この問題を解決するのは簡単かもしれませんが、少し混乱しています。これを解決するにはどうすれば正しい方向に進むことができますか?

4

1 に答える 1

3

@larsks は、一時的ではあるが有効な解決策を教えてくれました。今、myapplication.wsgi次のようになります。

import os
import sys

sys.path.append('/srv/www/domain.com/myapplication/')
os.environ['PYTHON_EGG_CACHE'] = '/srv/www/domain.com/myapplication/.python-egg'

from myapplication import app as application

ありがとう!

于 2012-04-24T15:03:53.497 に答える