

・環境  
Amazon Linux上で、以下のバージョンのモジュールをインストール

apache 2.2.34 (Unix)  
mysql Ver 14.14 Distrib 5.7.28  
python 3.6.10  
（pip 20.0.2）  
mod_wsgi 4.7.1  
django 3.0.5

・Python仮想環境の作成  
/home配下にvenvで仮想環境（/home/myenv）を作成(python3を使用)

・Djangoプロジェクト作成  
/home/myenv配下にDjangoプロジェクト（ここではoozumou_project2というプロジェクト）作成

・できていること  
Apacheからmod_wsgiを介してDjangoにリクエストを渡すところまではできていることを確認しています（ブラウザにテキストを表示するところまでは確認済み）

・できていないこと  
以下のエラーが出ています。

[code]

    sudo vi /etc/httpd/logs/error_log
    [Mon Apr 20 09:00:31 2020] [error] [client 210.138.73.119] mod_wsgi (pid=17407): Failed to exec Python script file '/var/www/oozumou/oozumou_project/oozumou_project/wsgi.py'.
    [Mon Apr 20 09:00:31 2020] [error] [client 210.138.73.119] mod_wsgi (pid=17407): Exception occurred processing WSGI script '/var/www/oozumou/oozumou_project/oozumou_project/wsgi.py'.
    [Mon Apr 20 09:00:31 2020] [error] [client 210.138.73.119] Traceback (most recent call last):
    [Mon Apr 20 09:00:31 2020] [error] [client 210.138.73.119]   File "/var/www/oozumou/oozumou_project/oozumou_project/wsgi.py", line 12, in <module>
    [Mon Apr 20 09:00:31 2020] [error] [client 210.138.73.119]     from django.core.wsgi import get_wsgi_application
    [Mon Apr 20 09:00:31 2020] [error] [client 210.138.73.119] ModuleNotFoundError: No module named 'django'
    
[/code]

最終行を読むとdjangoモジュールを読み込むことができていないことが予想されます。

・Apacheの設定ファイル  
/etc/httpd/conf.d 配下に django.conf という設定ファイルを作っています。

[code]

    LoadModule wsgi_module modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
    
    WSGIScriptAlias / /home/myenv/oozumou_project2/oozumou_project2/wsgi.py
    WSGIPythonPath /home/myenv/
    WSGIPythonHome /home/myenv/
    
    <Directory /home/myenv/oozumou_project2/oozumou_project2/>
    <Files wsgi.py>
    </Files>
    # Require all granted
    Order allow,deny
    Allow from all
    Satisfy Any
    </Directory>
    
[/code]

問題なのは、WSGIPythonPathかWSGIPythonHomeかと思われます。  
WSGIの公式サイトやDjangoチュートリアルを読んでもこれらの意味がイマイチ理解できません。

正しい設定とともに、意味を教えていただけると幸いです。


CC BY-SA 4.0
2020-04-22T05:20:57.387
65847
2020-04-22T05:20:57.387
39763
question
apache django
Amazon Linux + Django 3.0.5 + Apache 2.2.34 + mod_wsgi 4.7.1でModuleNotFoundError: No module named 'django'