我正在嘗試在 Ubuntu 服務器上使用 Apache 部署 Django 應用程式,使用埠:80 時出現奇怪的錯誤(500 內部錯誤服務器錯誤)。
我使用埠:8000 運行命令進行了一些測驗:
python3 manage.py runserver 0.0.0.0:8000
并且該應用程式在那里運行沒有任何問題,但是當我嘗試使用埠 80 訪問該應用程式時,它確實可以作業。
我的 apache 組態檔如下所示:
<VirtualHost *:80>
Alias /static /home/ubuntu/gh_system/static
<Directory /home/ubuntu/gh_system/static>
Require all granted
</Directory>
<Directory /home/ubuntu/gh_system/HRSYSTEM>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess HRSYSTEM python-home=/home/ubuntu/gh_system/env python-path=/home/ubuntu/gh_system>
WSGIProcessGroup HRSYSTEM
WSGIScriptAlias / /home/ubuntu/gh_system/HRSYSTEM/wsgi.py
我查看了 apached2 錯誤日志,我得到一個:沒有名為 'django' 的模塊,我的 wsgi 檔案是:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HRSYSTEM.settings")
application = get_wsgi_application()
uj5u.com熱心網友回復:
經過一些研究、測驗和審查 apache 日志:
sudo tail -100 /var/log/apache2/error.log
我發現問題與這一行有關:
WSGIDaemonProcess HRSYSTEM ***python-home=/home/ubuntu/gh_system/env*** python-path=/home/ubuntu/gh_system>
基本上,apache 試圖讀取虛擬環境中的包,但我確實使用以下命令安裝了它們:
sudo pip3 install -r requirements.txt
顯然,使用“sudo”命令是在虛擬環境之外安裝包,太奇怪了;但是如果沒有“sudo”,控制臺會記錄錯誤權限被拒絕,所以我授予虛擬環境 chmod 700 權限并再次安裝沒有“sudo”的軟體包,然后它就可以作業了!
我從錯誤中了解到的一些事情:
Problem: Not module 'encodings' --> this problem occurs when apache can not access your packages, usually for a bad path specified in the config file.
Problem: Not module 'x module, could be django' means you need to install the package using pip3.
希望它可以幫助某人!需要指出的是,我最近學到的東西是:當你花太多時間試圖解決一個問題,而互聯網上沒有太多關于它的資訊時,這意味著一些非常非常基本的東西在你的專案; 例如,在虛擬環境之外安裝軟體包,甚至沒有意識到,就像我一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/425286.html
標籤:django 亚马逊网络服务 阿帕奇 http-status-code-500
下一篇:Apache意外關閉xampp
