我已经启动了一个项目,我打算在运行Ubuntu的Apache2服务器上进行设置。我在本地创建了Django项目的骨架并将其推送到bitbucket上的repo。提供服务器的朋友告诉我,数字海洋教程可能是一个好的开始,所以我一直在使用this来设置wsgi。我略微偏离了本教程的措辞和步骤,所以我将完成我的工作方式。
我在路径~/public_html/clupus.com
创建了一个目录并更改为该目录。
我已经有了一个先前的骨架,所以我将它克隆到当前目录中。该路径现在看起来像~/public_html/clupus.com/clupus
,其中clupus是包含项目文件的目录(manage.py等)。
我在/etc/apache2/sites-available/clupus.com
创建了一个新的虚拟主机文件,其中包含以下定义:
<VirtualHost *:80>
ServerName clupus.com
ServerAlias www.clupus.com
WSGIScriptAlias / /home/ubuntu/public_html/clupus.com/clupus.wsgi
</VirtualHost>
然后我在~/public_html/clupus.com/clupus.wsgi
创建了实际的wsgi文件,其中包含以下配置:
import os
import sys
sys.path.append('~/public_html/clupus.com')
os.environ['DJANGO_SETTINGS_MODULE'] = 'clupus.clupus.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
最后我做了sudo a2ensite clupus.com
,然后是sudo service apache2 reload
。当我去访问服务器所在的URL时,我遇到了默认的欢迎页面。假设我不得不取消激活默认页面,我做了sudo a2dissite 000-default
,然后重新加载,现在可以理解,这给了我一个500错误。
我的问题是我用来访问Django项目的URL是什么?我觉得我已经正确设置了一切,而且我没有指向正确的网址。
此外,在os.environ['DJANGO_SETTINGS_MODULE'] = 'clupus.clupus.settings'
行clupus.clupus.settings
或clupus.settings
,如果层次结构为~/public_html/clupus.com/clupus/clupus/settings.py
答案 0 :(得分:1)
根据您发布的目录列表和您的评论:
ubuntu@ip-10-137-27-87:~/public_html/clupus.com$ ls ~/public_html/clupus.com/ -la
total 16
drwxrwxr-x 3 ubuntu ubuntu 4096 Jan 14 11:13 .
drwxrwxr-x 3 ubuntu ubuntu 4096 Jan 14 10:38 ..
drwxr-xr-x 7 ubuntu ubuntu 4096 Jan 14 10:43 clupus
-rw-rw-r-- 1 ubuntu ubuntu 219 Jan 14 14:09 clupus.wsgi
ubuntu@ip-10-137-27-87:~/public_html/clupus.com$
您应该在此处更改完整路径(您可以使用os.path.expanduser
将~
(代字号)转换为主路径):
#sys.path.append('~/public_html/clupus.com'
sys.path.append('/home/ubuntu/public_html/clupus.com/clupus')
修复此ImportError: Could not import settings 'clupus.settings'
检查var DJANGO_SETTINGS_MODULE
。更改sys.path后,路径'clupus.settings'
应该有效(假设位于settings.py
目录中的/home/ubuntu/public_html/clupus.com/clupus/clupus
):
#os.environ['DJANGO_SETTINGS_MODULE'] = 'clupus.clupus.settings'
os.environ['DJANGO_SETTINGS_MODULE'] = 'clupus.settings'
答案 1 :(得分:0)
你确定apache用户有权使用〜/ public_html / clupus.com吗?
你可以吗
ls ~/public_html -la
ls ~/public_html/clupus.com -la