1

私は、Pythonのweb.pyフレームワークでバックエンドが実装されている小さなWebダッシュボードプロジェクトに取り組んでいます。

ダッシュボードにはあらゆる種類のウィジェットがあり、そのうちの1つにはweb.pyを使用してバックエンドが実装されています。問題は、指定されたアプリケーションエントリポイントの1つだけが一度に機能しているように見えることです。ダッシュボードとウィジェットのapache構成の両方が同じファイルに配置されます。apache2 / conf.d /にある元の構成ファイル(実際にはしばらくの間機能していました)は次のようになります。

WSGIPythonPath /var/www/ProjectDASHBOARD/api
WSGIScriptAlias /ProjectDASHBOARD/api /var/www/ProjectDASHBOARD/api/api.py/

AddType text/html .py

<Directory /var/www/ProjectDASHBOARD/api/>
    Order deny,allow
    Allow from all
</Directory>


# Stuff for graphingwidget

WSGIPythonPath /var/www/ProjectDASHBOARD/widgets/graphingwidget/api
WSGIScriptAlias /ProjectDASHBOARD/widgets/graphingwidget/api /var/www/ProjectDASHBOARD/widgets/graphingwidget/api/api.py/

AddType text/html .py

<Directory /var/www/ProjectDASHBOARD/widgets/graphingwidget/api/>
    Order deny,allow
    Allow from all
</Directory>

これだけでは機能しません。両方のapi.pyファイルに必要な次のコードもあり、適切なパスを確認し、見つからない場合は追加します(ウィジェットのファイルからの抜粋)。

import web
import json
import sys

path = '/var/www/ProjectDASHBOARD/widgets/graphingwidget/api'
if path not in sys.path:
    sys.path.append(path)

ダッシュボードについても同様のチェックが行われます。

これらはすべて実際に1週間機能しましたが、最初からインストールしようとすると突然機能しなくなり、何が問題なのかがさらに混乱しました。WebページからAPIにアクセスしようとしたときに受信したエラーは、HTTPエラー500内部サーバーエラーです。次に、apache構成ファイルにいくつかの変更を加えた後、APIの1つが機能し始めました。

WSGIPythonPath /var/www/ProjectDASHBOARD/widgets/graphingwidget/api
WSGIPythonPath /var/www/ProjectDASHBOARD/api
WSGIScriptAlias /ProjectDASHBOARD/api /var/www/ProjectDASHBOARD/api/api.py/
WSGIScriptAlias /ProjectDASHBOARD/widgets/graphingwidget/api /var/www/ProjectDASHBOARD/widgets/graphingwidget/api/api.py/

AddType text/html .py

<Directory /var/www/ProjectDASHBOARD/api/>
    Order deny,allow
    Allow from all
</Directory>


# Stuff for graphingwidget

AddType text/html .py

<Directory /var/www/ProjectDASHBOARD/widgets/graphingwidget/api/>
    Order deny,allow
    Allow from all
</Directory>

基本的には、パスをファイルの先頭に移動し、順序を少し入れ替えると、突然、APIの1つが再び機能し始めます。順序を少し変更すると、他のAPIが機能し、他のAPIにブレーキがかかります。パスの正しい順序は覚えていませんが、ポイントは、以前は正常に機能していましたが、新しい同一の仮想マシンにインストールすると機能しなくなり、パスの順序に応じてAPIの1つだけが機能するということです。 。

当初、構成は異なるファイルにありましたが、そのようには機能しませんでした。「ターゲットWSGIスクリプトの「パス」をPythonモジュールとしてロードできません。」などのあらゆる種類のエラーがあり、同じファイルに移動したときにのみ機能し始めました。

ここで、パスの1つが他のパスによって上書きされている、またはこの間ずっと構成全体が根本的に間違っていて、運が良ければ(1週間、問題なく...)機能していると考えています。

何が悪いのかについての手がかりはありますか?

4

1 に答える 1

0

返品が遅れて申し訳ありませんが、基本的にはhttp://webpy.org/install#apachemodwsgiで慎重にRTFMを行い、.htaccessファイルを使用する必要がありました。

元の質問の解決策がうまくいった理由が本当にわかりません。

于 2012-08-30T20:29:27.277 に答える