部署环境:
本地为win10+python3+Mysql+Django自带服务器
云端为阿里云Ubuntu+python2.7+Mysql+Apache

①首先遇到的问题:浏览器直接访问,没有回应,浏览器无限菊花,很明显,这是云服务器没有配置好安全组的原因,阿里云默认的安全组为:




里面并没有我们熟悉的80、8080等端口,所以我们手动加上自己想要的端口(Django默认端口8000)


②然后继续使用浏览器访问,提示500,终端连接服务器查看error
log得知Apache无法识别Django,不用多说,肯定是配置文件的锅了,结合网上的教程(比如这个http://code.ziqiangxuetang.com/django/django-deploy.html),修改版本项目目录下的wsgi.py。
import os from django.core.wsgi import get_wsgi_applicationPROJECT_DIR =
dirname(dirname(abspath(__file__))) import sys sys.path.insert(0,PROJECT_DIR)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "helloworld.settings")
application = get_wsgi_application()成功修复。
③再次访问仍然提示500,error显示了一个很奇怪的错误,“django cannot be loaded as Python
module”,想了想应该是django模块的问题,但是使用pip重新安装提示已经是最新版。。。尝试直接使用python shell输入import
django,报了一样的错,之后查看python版本,真叫人头大,Ubuntu自带python是2.7版本,而我安装了py3版本的mod_wsgi。。。重装,修复。
④还是500,“RuntimeError: populate() isn’t reentrant”查阅Stack
Overflow,开启了两个Django???    reboot修复。
⑤最后遇到的问题,在开启的Django的debug模式下,浏览器访问提示“DisallowedHost at / Invalid HTTP_HOST
header:”,这个简单,在setting.py中修改为ALLOWED_HOSTS = [‘*’],修复。
ps:linux下Apache日志路径在Apache安装目录下的envvars(一般是/etc/apache2/下)文件中有定义,可以找到一行export
APACHE_LOG_DIR=/var/log/apache2$SUFFIX