繁体   English   中英

在Apache服务器上设置Django项目

[英]Setting up a Django project on an Apache server

我已经开始一个项目,打算在运行Ubuntu的Apache2服务器上进行设置。 我已经在本地创建了Django项目的框架,并将其推送到bitbucket的仓库中。 提供服务器的朋友告诉我,Digital Ocean教程可能是一个好的开始,因此我一直在使用来设置wsgi。 我与本教程的措辞和步骤略有不同,因此我将逐一介绍其操作方法。

  1. 我在路径~/public_html/clupus.com创建了一个目录,并将其更改~/public_html/clupus.com目录。

  2. 我已经有了以前的骨架,所以将其克隆到当前目录中。 现在,路径看起来像~/public_html/clupus.com/clupus ,其中clupus是包含项目文件(manage.py等)的目录。

  3. 我在/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> 
  4. 然后,我在~/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() 
  5. 最后我做了sudo a2ensite clupus.com然后进行了sudo service apache2 reload 当我访问服务器所在的URL时,会看到默认的欢迎页面。 假设我必须停用默认页面,我做了sudo a2dissite 000-default然后重新加载,现在可以理解,这给了我500错误。

我的问题是我用来访问Django项目的URL是什么? 我觉得我已经正确设置了所有内容,只是没有指向正确的URL。

另外,在线路os.environ['DJANGO_SETTINGS_MODULE'] = 'clupus.clupus.settings'它应该是clupus.clupus.settings或只是clupus.settings给出的层次是~/public_html/clupus.com/clupus/clupus/settings.py

根据您发布的目录列表和评论:

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 路径'clupus.settings'应该改变后的sys.path工作(假设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'

您确定apache用户是否具有〜/ public_html / clupus.com的权限?

你能做

ls ~/public_html -la
ls ~/public_html/clupus.com -la

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM