终于完结,本机浏览器访问外网的(Django)网站连接问题,下面是总结最近一次部署Django基于ubuntu操作系统上的Apache服务器的成功案例。部署这个项目我走了很多的弯路,这是我之前的文章我现在想要把他重新记录,发布到这里。
Django项目是用python3.4(或理解python3.x)编译,Django1.8.6版本的框架 为了减少兼容可能带来的错误和失败,下面的安装过程各个安装都是优先考虑相同版本。
另外针对python3.x环境下的版本的验证
import django print(django.get_version())如果Apache处在运行状态,先要停止 sudo service apache2 stop
然后配置Apache, 在 /etc/apache2/apache2.conf 最后行 加入LoadModule wsgi_module/usr/lib/apache2/modules/mod_wsgi.so-3.4 加入的这行加载模块的代码 的路径其实是mod_wsgi.so 所在路径即安装路径)sudo service apache2 start 如果找不到这个mod_wsgi.so,Apache服务就会启动失败, 但是会提示 这个mod_wsgi.so模块早已加载,所以跳过了加载的程序(总之没有什么影响),但开机第一次启动Apache服务 去没有这种提示。创建django.wsgi文件,sudo mkdir /var/www/mysite/apache 下sudo vim django.wsgi做如下的编辑:
import os from os.path import join,dirname,abspath PROJECT_DIR = dirname(dirname(abspath(__file__))) #3 import sys # 4 sys.path.insert(0, PROJECT_DIR) os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" #7 from django.core.wsgi import get_wsgi_application application = get_wsgi_application() 第 3,4,5 行为新加的内容,作用是让脚本找到django项目的位置,也可以在sitename.conf中做,用WSGIPythonPath,想了解的自行搜索, 第 7 行如果一台服务器有多个django project时一定要修改成上面那样,否则访问的时候会发生网站互相串的情况,即访问A网站到了B网站,一会儿正常,一会儿又不正常(当然也可以使用 mod_wsgi daemon 模式,点击这里查看)创建站点mysite.conf 新建一个网站配置文件sudo vim /etc/apache2/sites-available/mysiste.cong
<VirtualHost *:8000> ServerName mysite.com DocumentRoot /var/www/mysite <Directory /var/www/mysite> Order allow,deny Allow from all </Directory> WSGIScriptAlias / /var/www/mysite/apache/django.wsgi SetEnv DJANGO_SETTINGS_MODULE mysite.settings </VirtualHost>激活网站 sudo a2ensite mysite 或者 sudo a2ensite mysite.conf
在浏览器上输入网站ip:端口号访问。
