对不起,如果我似乎迷路了,但我几乎没有部署Web应用程序的经验,并且在线搜索也无济于事。如标题所示,我正在运行Ubuntu,Apache2,PostgreSQL和Django,并且我反复收到错误消息,其中大多数都不清晰和/或没有明确的解决方案。再加上我对特定交互的无知会流沙寻找解决方案的任何尝试,因此我将非常具体。
安装:
应用程序:
settings.py:
save()
000-default.conf
- DEBUG = True
- WSGI_APPLICATION = 'example.wsgi.application'
-DATABASES =
'default':
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'example',
'USER': 'example',
'PASSWORD': 'example',
'HOST': 'localhost',
'PORT': '',
每个日志错误
我暂时删除了所有写入error.txt文件的行,从而使另一个脚本可以工作。该文件同时存在于两个软件包中并生成语法错误。由于某些无法解释的原因,它再次因“ No module name django”失败而中断。另外,我将整个程序包从外部目录移动到了“ / var / www /”(并修改了000-default.conf文件)。这不会产生任何问题,因为虚拟环境随软件包一起旅行,并且数据库仍应从外部进行连接。但是我认为这是在写入不再具有写入权限的文件之前产生了500错误。我的数据库能否以某种方式(通过阻止连接)生成错误?如果用户稍后上传软件包,它将临时写入媒体文件夹。即使它还没有写,这能打破它吗?将软件包移至/ var / www目录时是否需要进行其他修改?我不知道是什么会产生这些错误。它必须是apache configuraton错误,因为它可与Django的Web服务器一起使用,并且只能与apache2一起中断...
很抱歉混乱和缺乏组织;我只是不知道我该搞砸了。 -但每次尝试修复都会再次破坏它。我将不胜感激。
答案 0 :(得分:0)
您可能会错过默认conf中正确提供WSGIDaemonProcess的机会。尝试为
WSGIDaemonProcess FireAnts python-path=/var/www/FireAnts/venv/path/to/bin/python:/var/www/FireAnts/FireAnts
将<path/to/>
替换为通向静脉的正确路径。您必须提供python可执行文件的完整路径。
编辑项目的wsgi.py文件
/var/www/FireAnts/FireAnts/wsgi.py:
import os
import sys
from django.core.wsgi import get_wsgi_application
path = '/var/www/FireAnts'
if path not in sys.path:
sys.path.insert(0, path)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "FireAnts.settings")
application = get_wsgi_application()
答案 1 :(得分:0)
好的,所以我想出了答案。 一切都以正确的方式配置,但是缺少安装,错误消息不明确。 我找到了生成“ populate()不可重入”消息的文件,找到了提供错误消息的行,并通过替换“ raise RuntimeError(“ populate()is not reentrant”)”来指示其继续进行操作“ self.app_configs = {}”。错误日志没有收到模糊的,不清楚的答案,而是报告了缺少的“ psycopg2”导入。我激活了venv目录并安装了psycopg2。在那之后,它起作用了。