0

Apache2を使用してDjangoアプリを提供しています。Djangoアプリは、NumpyでIntelライブラリを使用します。ただし、ApacheがPythonスクリプトをロードする場合、Intelライブラリは使用されません。

os.environApacheがスクリプトを実行するときにスクリプト内にあるものは次のとおりです。

{'LANG': 'C', 'APACHE_LOCK_DIR': '/var/lock/apache2', 'TZ': 'America/Chicago', 'DJANGO_SETTINGS_MODULE': 'mysite.settings', 'APACHE_RUN_USER': 'my_user', 'PWD': '/', 'APACHE_PID_FILE': '/var/run/apache2.pid', 'APACHE_RUN_DIR': '/var/run/apache2', 'APACHE_LOG_DIR': '/var/log/apache2', 'APACHE_RUN_GROUP': 'my_group', 'PATH': '/usr/local/bin:/usr/bin:/bin'}

したがって、Apacheはの権限で実行されますmy_userが、my_user通常.bashrc、必要なすべての環境変数を追加する起動時にロードされますが、Apacheはそれを行いません。

LD_LIBRARY_PATHが存在しないため、インポートエラーが発生します。通常のユーザーおよびrootとして実行すると機能します。

以下を追加してみました/etc/apache2/envvars

export LD_LIBRARY_PATH="/opt/intel/composer_xe_2013.2.146/compiler/lib/intel64:/opt/intel/mic/coi/host-linux-release/lib:/opt/intel/mic/myo/lib:/opt/intel/composer_xe_2013.2.146/mpirt/lib/intel64:/opt/intel/composer_xe_2013.2.146/ipp/../compiler/lib/intel64:/opt/intel/composer_xe_2013.2.146/ipp/lib/intel64:/opt/intel/composer_xe_2013.2.146/compiler/lib/intel64:/opt/intel/composer_xe_2013.2.146/mkl/lib/intel64:/opt/intel/composer_xe_2013.2.146/tbb/lib/intel64"

しかし、それは明らかに機能しません。

だから私の質問は:Djangoを実行するときに使用するApache用のサードパーティライブラリを追加するにはどうすればよいですか?

4

0 に答える 0