【问题标题】:Django No WSGI daemon process has been configuredDjango 没有配置 WSGI 守护进程
【发布时间】:2021-02-03 07:03:30
【问题描述】:

我有一个加载了 Lightsail 的 Django 项目。我希望让它与 Apache 一起运行。我已按照此处的教程进行操作,但由于某种原因,当尝试仅通过其 IP 连接到服务器时,它会引发以下站点错误和 apache 错误。

访问我的网站时出现以下错误:

500 内部服务器错误

查看我的 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 Conf

<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>

【问题讨论】:

    标签: python django apache


    【解决方案1】:

    使用以下命令编辑您的 Apache conf:

    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 网站。

    【讨论】:

      猜你喜欢
      • 2023-02-05
      • 2016-10-14
      • 2016-02-07
      • 2018-10-16
      • 2017-01-13
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多