Apache2を使用してDjangoアプリを提供しています。Djangoアプリは、NumpyでIntelライブラリを使用します。ただし、ApacheがPythonスクリプトをロードする場合、Intelライブラリは使用されません。
os.environ
Apacheがスクリプトを実行するときにスクリプト内にあるものは次のとおりです。
{'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用のサードパーティライブラリを追加するにはどうすればよいですか?