2016-11-16 34 views
0

WindowsでApache 2.4プロセスのPATH環境変数を変更するにはどうすればよいですか? 私は、アプリケーションインストーラにバンドルされたカスタムPythonディストリビューションでmod_wsgiをロードできるようにします。 Pythonが個別にインストールされていて、python dllが既にWindows/system32フォルダにある場合にのみ、ロードされます。Apache 2.4 - WindowsでPATH環境変数を設定する方法

私はシステムPATH変数を変更したくありません。

このドキュメントによると:

するSetEnvは、Apache 2.4でPATHを設定することが許されるべきであるが、私のために動作するようには思えません。 Windowsのイベントビューアに「モジュール/ mod_wsgi.soをサーバーにロードできません:指定されたモジュールが見つかりませんでした」と表示されます。 python27.dllがすでにWindows/system32に存在する場合のみ動作します。

+1

'' SetEnv''指示文は、CGIスクリプトのプロセス環境変数を設定するためのものです。 mod_wsgiでは、この要求により、要求ごとにWSGIアプリケーションに渡されるWSGIの '' environ''辞書に要求ごとの変数が設定されます。 mod_wsgiの下でWSGIアプリケーションの環境変数を処理するために何もしません。 –

+0

@GrahamDumpletonクライアントのマシンでグローバルなPATH変数を変更したくないというのは悪いニュースです。起動時にApacheプロセスの場合のみ、または1つのWindowsサービスに対してのみ設定する方法の場合、この値の設定方法は知っていますか? – matf

+1

Apacheの '' LoadFile''ディレクティブを試して、 '' python27.dll''を起動時にフルパスで強制的にロードしてください。おそらく '' WSGIPythonHome''を使ってPythonのインストール先であるmod_wsgiを試してみる必要があります。このディレクティブがWindows上でどのくらいうまく動作するかは不明です。 –

答えて

2

PythonのDLLがPATHにないし、そこに追加することができない場合は、Apacheの設定ファイルに追加することができます。

LoadFile C:/Python27/libs/python27.lib 

これは、wsgi_moduleためLoadModuleラインの前でなければなりません。

また、設定する必要があります。

WSGIPythonHome C:/Python27 

を引数はPythonのインストールのsys.prefixの値です。

mod_wsgiから初期化されているPythonがPythonインストールの場所を見つけることができない場合は、後で必要です。

+0

これはApache 2.2で動作することを確認でき、Windows/system32フォルダにある他のpython27.dllを完全に無視し、正常に読み込まれます。 また、 "LoadFile"はlibでないdllファイルへのパスを取得する必要があります。 – matf

関連する問題