Django 项目部署(apache)

    xiaoxiao2021-03-26  32

    Django 项目部署(apache)


    终于完结,本机浏览器访问外网的(Django)网站连接问题,下面是总结最近一次部署Django基于ubuntu操作系统上的Apache服务器的成功案例。部署这个项目我走了很多的弯路,这是我之前的文章我现在想要把他重新记录,发布到这里。

    一、配置环境

    1.操作系统的环境

    ubuntu@VM-120-230-ubuntu:~$ apachectl -v Server version: Apache/2.4.7 (Ubuntu)

    2. Apache服务器

    ubuntu@VM-120-230-ubuntu:~$ apachectl -v Server version: Apache/2.4.7 (Ubuntu)

    3.注意

    Django项目是用python3.4(或理解python3.x)编译,Django1.8.6版本的框架 为了减少兼容可能带来的错误和失败,下面的安装过程各个安装都是优先考虑相同版本。


    二、ubuntu下安装Apache、mod_wsgi、django

    1.安装pip

    Sudo apt-get install python-pip //安装python2.x对应的pip Sudo apt-get install python3-pip //安装python3.x对应的pip

    2.安装Django1.8.6

    (sudo) pip install Django //(针对python2.x 不加“==版本号” 便安装最新版本的Django) sudo pip3 install django==1.8.6 //安装的Django使用python3.x编译环境)

    3.查看Django是否安装成功

    import django django.VERSION (1, 7, 6, 'final', 0) django.get_version()

    另外针对python3.x环境下的版本的验证

    import django print(django.get_version())

    5.安装Apache2

    sudo apt-get install apache2

    6.安装wsgi模块

    sudo apt-get install libapache2-mod-wsgi //针对python2.x版 sudo apt-get install libapache2-mod-wsgi-py3 //这个针对python3.x的wsgi安装,会覆盖上一行命令安装的wsgi

    7.配置Apache加载mod_wsgi

    如果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服务 去没有这种提示。

    8.创建站点mysite.conf

    首先将Django web项目mysite导入到ubuntu中,rz,再unzip,mv 到/var/www/路径下。

    创建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:端口号访问。

    转载请注明原文地址: https://ju.6miu.com/read-660798.html

    最新回复(0)