問題タブ [mod-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
845 参照

python - mod_pythonでファイルシステム上のファイルを開いて転送するにはどうすればよいですか?

mod_python と Apache は初めてで、GET 要求の後でユーザーにファイルを返すのに問題があります。私は今非常に単純な設定をしており、単純にファイルを開いて応答に書き込むことを望んでいました:

ただし、open() を使用すると、ファイルが存在しないというエラーが表示されます (ファイルが存在することを何十回も確認したにもかかわらず)。これは、相対および絶対ファイルパスを使用している場合に発生します。

2 つの質問があります。

  • open() が正しいファイルを見つけられないのはなぜですか?
  • ファイルシステムからファイルを返す最良の方法は何ですか? (mod_python を使用してファイルを返すためのより良い方法を見逃していないことを確認してください。)

ありがとう

編集: このスレッドを見つけた後: http://www.programmingforums.org/thread12384.html ファイルを家の外の別のディレクトリに移動すると、open() が機能することがわかりました (/home/myname からエイリアスを作成していました)。 /httpdocs ですが、/data を使用すると機能します)。それが機能する理由はありますか?

編集 2: 要求に応じて、私のデバッグ エラーの一部:

0 投票する
2 に答える
3176 参照

python - mod_python/apache へのログイン

Pythonのロギングモジュールをapache/modpythonで動作させる標準的な方法は何ですか?

mylog.warn('whatever') を呼び出して、その結果を req.log_error() に呼び出したいと思います。req は modpython リクエストです。

これを設定する簡単な方法はありますか?

0 投票する
2 に答える
868 参照

python - mod_python パブリッシャーとプリティ URL

私は Python を初めて使用し (PHP がますます壊れているため、PHP から離れようとしています)、古いコードの移植を急いでいます。ひとこと:

関数 index() および bar() を含むファイル /foo.py があるので、パブリッシャーを使用して、ドキュメントが示唆するようにhttp://domain/foo/barおよびhttp://domain/fooにアクセスできます。

私ができるようにするにはどうすればよいですか:

http://domain/foo/bar/a1/a2/a3/an/ ...

パブリッシャーが bar() を起動すると、URL にアクセスして /a1/a2/ を取得できるようになります。取得できるのは Forbidden だけです :) (すべてに mod_rewrite を使用したくありません)

ああ、私は2.5.2にいます よろしくお願いします

更新: パブリッシャーにとって理想的な解決策は、URL で可能な限り右端の解像度を起動し、apache モジュールを介して a1/a2/a3.. にアクセスできるようにすることです。apache ディレクティブとパブリッシャーの組み合わせでしょうか。

解決済み(っぽい): 魔法のcall ()メソッドなどの答えがジューシー!パブリッシャーを変更するか、独自のものを作成して、最も右のマッチングを使用して同様の方法でオブジェクトを検査し、最も右にある人が apache モジュールを使用して URL にアクセスできるようにします。皆さんありがとう!

0 投票する
1 に答える
1373 参照

python - Apache HTTP Server 2.2 および Python 2.6 または 3.0 用の mod_python はありますか?

mod_python Web サイトを調べてみたところ、Apache HTTP Server 2.2 用の Python 2.5 以前のファイルしか見つかりませんでした。あまり運がなかったので、少しグーグルで検索しました。助言がありますか?

0 投票する
1 に答える
796 参照

python - パスによる Python モジュール

mod_python の publisher.py の最小限の置き換えを書いています。

基本的な前提は、URL スキームに基づいてモジュールをロードしていることです。

ここで、/foo/ はディレクトリで、'bar' は /foo/index.py の公開可能なクラスの ExposedBar メソッドです。同様に、/foo は /foo.py にマップされ、bar は公開されたクラスのメソッドです。これのセマンティクスはそれほど重要ではありません。私は行を持っています:

次に、適切なクラス/関数/メソッドについてモジュールが検査されます。プロセスが残りの URI データを可能な限り取得すると、/a/b/c がそのメソッドまたは関数に渡されます。

/var/www/html/foo/index.py と /var/www/html/bar/index.py ができるまで、これはうまく機能していました

最初の検索パスを「/var/www/html/foo」または「/var/www/html/bar」に設定しても、ブラウザーで表示すると、どの「index.py」が選択されるかはかなりランダムです。次に、__import__('index') をロードしました。一見ランダムな選択でどちらかを見つける理由がわかりません。これは次のように示されます。

この質問は、なぜ __import__ がいずれかのインデックスをランダムに選択するのかということです。パスが「/var/www/html」である場合、これは理解できますが、そうではありません。第二に:

モジュールオブジェクトへの絶対パスでモジュールをロードできますか? sys.path の変更なし。これに関する __import__ または new.module() に関するドキュメントが見つかりません。

0 投票する
6 に答える
2966 参照

php - mod_php と mod_python

なぜ mod_python は oop であり、mod_php はそうではないのですか?

例: www.example.com/dir1/dir2 にアクセスします

mod_python を使用する場合、Apache は www/dir1.py を開き、dir2 メソッドを呼び出しますが、php モジュールを使用する場合、Apache は www/dir1/dir2/index.php を開きます。

0 投票する
3 に答える
902 参照

python - mod_python 使用時の python ロギング モジュールの動作の違い

サーバー上で mod_python を実行すると、Python ロギング モジュールの動作が異なるという厄介な問題があります。シェルで、または runserver コマンドまたは mod_wsgi を使用して django で同じコードを実行すると、動作は正しくなります。

次に、次のログを記録します。

2009-05-28 10:36:43,740,DEBUG,error_middleware.py:31,[logger={'name': 'site-errors', 'parent': <logging.RootLogger インスタンス at 0x85f8aac>, 'handlers': []、「レベル」: 0、「無効」: 0、「マネージャー」: <0x85f8aec の logging.Manager インスタンス>、「伝播」: 1、「フィルター」: []}]

2009-05-28 10:36:43,740,DEBUG,error_middleware.py:32,[logger.parent={'name': 'root', 'parent': None, 'handlers': [<logging.StreamHandler インスタンスで0x8ec612c>、<logging.handlers.RotatingFileHandler インスタンス 0x8ec616c>]、'レベル': 10、'無効': 0、'伝搬': 1、'フィルター': []}]

ご覧のとおり、子ロガー「site-errors」にはハンドラーまたはレベルが設定されていません。

ロギング構成は settings.py で行われます。

2 つ目の問題は、__init__.py にカスタム ハンドラーを追加することです。このハンドラーは、フォルダー内に error_middleware.py として存在します。

ログにカスタム ハンドラが表示されません。

誰かが問題の場所を知っている場合は、お知らせください。追加情報を求めることを躊躇しないでください。それは確かに問題を解決するのに役立ちます。

0 投票する
1 に答える
281 参照

python - mod_python エラーから回復するように Apache を構成する

mod_python を使用して、Apache で Django アプリをホストしています。ImportError時折、通常は同じモジュールを参照しているわけではありませんが、通常はさまざまな不可解な mod_python エラーが発生します。問題は、問題のプロセスでエラーが発生したモジュールを使用する必要がある動作を強制した場合でも、これらは単一のフォークされたサブプロセスに対して発生するように見えますが、他のサブプロセスは正常に動作することです。プロセスでエラーが発生すると、Apache がリクエストを処理するためにプロセスを選択するたびに、常に同じトレースバックが提供されます。(私のユーザーは必ずしも最初の発生時にエラーを報告するとは限らず、プロセスがエラーに遭遇すると、これも面倒です。)

私は Apache の設定よりも Django の設定についてよく知っていますが、リクエストが処理のために Django に到達することはないため、それではどうにもなりません。理想的には、根本的な問題を解決する必要があります。これには、コード、プロジェクト、またはマシンの構成が含まれる可能性がありますが、それまでは、問題を診断して軽減するための支援が必要です。

  1. サブプロセス ID を含めるように Apache ログを構成する方法はありますか?
  2. エラーが発生した場合にサブプロセスを強制的に再生成する方法はありますか?
  3. これに関して知っておくべき既知の問題はありますか?
0 投票する
3 に答える
12176 参照

django - Mod_pythonエラー:ImportError:設定をインポートできませんでした

DjangoをApacheで動作させようとすると、次のエラーが発生します。

ImportError:設定をインポートできませんでした'MyDjangoApp.settings'(sys.pathにありますか?構文エラーがありますか?):MyDjangoApp.settingsという名前のモジュールがありません

私のDjangoアプリは/home/ user / django /MyDjangoApp/にあります

私のhttpd.confロケーションセクションは次のようになります。

Djangoを機能させるためにロケーションセクションを修正する方法を教えてください。