我有一个加载了 Lightsail 的 Django 项目。我想让它与 Apache 一起运行。我已按照此处的教程进行操作,但由于某种原因,当尝试仅通过 IP 连接到服务器时,它会抛出以下站点错误和 apache 错误。
访问我的网站时出现以下错误:
500 Internal Server Error
查看我的 Apache 日志时
No WSGI daemon process called 'smp_api' has been configured: /home/ubuntu/test/smp_api/wsgi.py,
WSGI.py 文件
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smp_api.settings")
application = get_wsgi_application()
Apache session
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/ubuntu/test/static
<Directory /home/ubuntu/test/static>
Require all granted
</Directory>
<Directory /home/ubuntu/test/smp_api>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
<Directory /test>
Require all granted
</Directory>
WSGIDaemonProcess python-path=/home/ubuntu/test
WSGIProcessGroup smp_api
WSGIScriptAlias / /home/ubuntu/test/smp_api/wsgi.py
</VirtualHost>
最佳答案
使用以下命令编辑您的 Apache 配置:
sudo nano /etc/apache2/sites-available/000-default.conf
然后设置您的 VirtualHost 配置,如下所示:
<VirtualHost *:80>
. . .
Alias /static /home/user/myproject/static
<Directory /home/user/myproject/static>
Require all granted
</Directory>
<Directory /home/user/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/home/user/myproject python-home=/home/user/myproject/myprojectenv
WSGIProcessGroup myproject
WSGIScriptAlias / /home/user/myproject/myproject/wsgi.py
</VirtualHost>
注意:
- 将
myproject
替换为 Django 项目的目录名称。 - 将
myprojectenv
替换为 virtualenv 文件夹的名称,并确保 virtualenv 文件夹位于 Django 项目的根文件夹内。 - 运行
sudo chmod 664/home/user/myproject/db.sqlite3
以使 apache 能够读写您的数据库文件。 - 运行
sudo chown :www-data/home/user/myproject/db.sqlite3
以允许 apache 组拥有数据库文件。 - 运行
sudo chown :www-data/home/user/myproject
以使 apache 具有写入项目根目录的完全访问权限。 6 最后,运行sudo service apache2 restart
重新启动apache。 - 尝试使用您的服务器 IP 地址或域名访问您的 Django 网站。
关于python - Django 未配置 WSGI 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64445373/