[英]Django on Apache2 - Restart Server when making changes?
现在,我正在尝试 - 第一次 - 使用 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)
已经以这种方式部署的人可以回答我的问题吗? 谢谢,周末愉快!
在大多数情况下,您不需要在每次更改 python 文件时重新启动apache
。 您的系统管理员绝对是正确的。 apache
作为 web 服务器旨在服务和处理 http 请求(除其他事项外)而不是处理脚本的执行(python,php ..)
正如这个答案所建议的那样,在您对 python 文件进行一些更改后,只需运行touch wsgi.py
命令就可以强制守护进程重新加载,因为文件 ( wsgi.py
) 的时间戳已更新。
参考https://man7.org/linux/man-pages/man1/touch.1.html
将每个 FILE 的访问和修改时间更新为当前时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.