【问题标题】:Django on Apache2 - Restart Server when making changes?Apache2上的Django - 进行更改时重新启动服务器?
【发布时间】:2021-02-26 03:09:55
【问题描述】:

现在我第一次尝试使用 mod_wsgi 在 Apache2 上部署 Django 应用程序,但它仍然没有按我希望的方式工作。无论如何,我正在与我的管理员争论,他说我不必在更改我的 python 代码后重新启动服务器,只有当 .conf 文件发生更改时。 在线教程对于这个特定问题也没有多大用处!有的说“A”,有的说“B”,有的根本不提这个话题。

    <VirtualHost *:80>
        ServerName webapp.company.local
        ServerAlias cmp-workbench.company.local
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/cmp-workbench
    #for django
        Alias /static /var/www/cmp-workbench/static
        <Directory /var/www/cmp-workbench/static>
            Require all granted
        </Directory>
        <Directory /var/www/cmp-workbench/cmp_workbench>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
        WSGIDaemonProcess cmp-workbench python-path=/var/www/cmp-workbench python-home=/var/www
        /cmp-workbench/cmp_workbench
        WSGIProcessGroup cmp-workbench
        WSGIScriptAlias / /var/www/cmp-workbench/cmp_workbench/wsgi.py

        ErrorLog ${APACHE_LOG_DIR}/error_cmp-workbench.log
        CustomLog ${APACHE_LOG_DIR}/access_cmp-workbench.log combined
    </VirtualHost>
    import os
    import time
    import traceback
    import signal
    import sys

    from django.core.wsgi import get_wsgi_application
  
    sys.path.append('/var/www/cmp-workbench-stage/cmp_workbench_stage')
    sys.path.append('/var/www/cmp-workbench- 
    stage/cmp_workbench_stage/env/lib/python3.7/site-packages')

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 
    'cmp_workbench_stage.settings')

    try:
        application = get_wsgi_application()
    except Exception:
        # Error loading applications
        if 'mod_wsgi' in sys.modules:
           traceback.print_exc()
            os.kill(os.getpid(), signal.SIGINT)
            time.sleep(2.5)

已经以这种方式部署的人可以回答我的问题吗? 谢谢,周末愉快!

【问题讨论】:

  • 您遇到了什么样的错误(apache 日志)?与我们分享您的 conf 和 wsgi.py 文件
  • 这是我的代码的更新。我实际上没有收到错误,该网站一直在加载!
  • 感谢您的链接,但它仍然没有回答是否每次在更改我的 python 代码后重新启动服务器的问题。

标签: python django apache2 mod-wsgi restart


【解决方案1】:

在大多数情况下,您不需要在每次更改 python 文件时重新启动apache。您的系统管理员绝对是正确的。 apache 作为 Web 服务器用于服务和处理 http 请求(除其他外),而不是处理脚本的执行(python、php ..)

正如this answer 所建议的那样,在您对python 文件进行一些更改后,只需运行touch wsgi.py 命令即可强制守护程序重新加载,因为文件的时间戳(wsgi.py)已更新.

参考https://man7.org/linux/man-pages/man1/touch.1.html

将每个FILE的访问和修改时间更新为当前时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2014-08-14
    • 2019-05-07
    • 1970-01-01
    • 2022-01-21
    • 2021-07-20
    • 1970-01-01
    相关资源
    最近更新 更多