python - Django 未配置 WSGI 守护进程

标签 python django apache

我有一个加载了 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>

注意:

  1. myproject 替换为 Django 项目的目录名称。
  2. myprojectenv 替换为 virtualenv 文件夹的名称,并确保 virtualenv 文件夹位于 Django 项目的根文件夹内。
  3. 运行 sudo chmod 664/home/user/myproject/db.sqlite3 以使 apache 能够读写您的数据库文件。
  4. 运行 sudo chown :www-data/home/user/myproject/db.sqlite3 以允许 apache 组拥有数据库文件。
  5. 运行 sudo chown :www-data/home/user/myproject 以使 apache 具有写入项目根目录的完全访问权限。 6 最后,运行sudo service apache2 restart重新启动apache。
  6. 尝试使用您的服务器 IP 地址或域名访问您的 Django 网站。

关于python - Django 未配置 WSGI 守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64445373/

相关文章:

python - Django 中的广义模型

macos - 在 OS X Yosemite 上设置 Apache 2.4.9 时遇到问题

php - 使用 PHP 的 mail() 可以从命令行运行,而不是从 Apache 运行,知道为什么吗?

python - django_bootstrap5 不格式化任何内容

python - 确定分配给作业的处理器数量

python - 查找所有列中包含 NaN 的 pandas Groupby

python - Numpy - 对矩阵中所有行的组合应用自定义函数以获得新矩阵?

python - 模块未找到错误 : No module named 'rest_framework' I already installed djangorestframework

python - Apache:在 ubuntu 14.04 服务器上运行的 Apache 上的 python 代码执行错误

python - Tkinter Canvas 设置为其容器的大小