Django之Apache2部署

  虽然Django自带了wsgi,能进行简单部署,但是在实际部署时多采用Apache和Nginx。本文简单介绍了如何用apache2来部署一个django的项目。

  环境安装:

    安装apache2:

sudo apt-get install apache2

    安装mod-wsgi:  

sudo apt-get install libapache2-mod-wsgi-py3

      注意:此时无需安装python2的mod-wsgi,否则apache2将会自动关联python2,导致项目部署出现不能导入wsgi.py模块的问题。

  部署:

    1.创建简单项目:我们在桌面上临时创建一个test_apache的项目,用于部署  

cd Desktop/
sudo dajngo-admin startproject  test_apache

     2.创建项目的配置文件: 在apache2的配置文件夹下面创建一个与项目同名的配置文件即可。    

sudo vim /etc/apache2/sites-available/test_apache.conf

       注意:Ubntu与CentOS的apache配置文件夹路径有区别,该项目时在Ubuntu系统进行配置的。

    3.添加配置

<!-- PORT 8888 -->
<VirtualHost *:8888>

<!-- IP 12.82.166.83 -->
ServerName 12.82.166.83

<!-- 项目根目录 -->
DocumentRoot /home/proetest02/Desktop/test_apache

<!-- 通过wsgi连接django项目和apche2 -->
WSGIScriptAlias / /home/protest02/Desktop/test01/test_apache/wsgi.py

<!-- 文件授权 -->
<Directory /home/protest02/Desktop/test_apache/test_apache>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>
</VirtualHost>

    4.端口监听:

#编辑端口配置文件
sudo vi  /etc/apache2/ports.conf
#修改或者添加监听端口
Listen 8888

     5.添加项目所在地:

#编辑wsgi.conf
sudo vim /etc/apache2/mods-available/wsgi.conf
#添加项目路径
WSGIPythonPath /home/protest02/Desktop/test_apache

       6.修改项目wsgi.py:加入下面代码即可

from os.path import join,dirname,abspath 
import sys
        
PROJECT_DIR = dirname(dirname(abspath(__file__)))   
sys.path.insert(0,PROJECT_DIR)
    

    7.权限修改:

      由于apache2默认启用用户:www-data(相关配置文件见:/etc/apache2/envvars),所以在当前Linux登陆用户下需要给www-data相关的执行权限,当然你可以去配置文件中修改默认用户。

#权限修改,后期还有新增应用也需修改权限
sudo chmod -R 644 test_apache
sudo find test_apache -type d | xargs chmod 755
sudo chgrp www-data test_apache
sudo chmod g+w test_apache

     8.启动服务

sudo service apache2 reload 
sudo a2ensite test_apache.conf
sudo service apache2 restar

    9.测试项目:

      进入浏览器输入:12.166.80.83/admin,就可以看到django的后台管理登陆界面了。说明你项目配置成功。

   部署总结:

    1.apache查看版本命令:有可能需要加sudo

apachectl -v

    2.常见问题: 

      1.出现 Target WSGI script '/home/protest02/Desktop/test01/test01/wsgi.py' cannot be loaded as Python module.则有可能是安装了python2的mod-wsgi. 卸载即可。

      2.配置文件脚本单词选项拼写错误,可根据终端提示命令查看或者进入日志查看:cat /var/log/apache2/error.log

    3.配置文件可编写内容:

#端口配置
<VirtualHost *:80> 
# 填写自己服务器的域名或者ip
ServerName IP:80
# 其他域名(此处可以不填),多个域名指向同一个站点时可以使用,要多少个就加多少个,空格隔开   
ServerAlias otherdomain.com 
#邮箱
ServerAdmin xxx@Email.com
# 多媒体文件存放的路径,具体路径根据你自己的来,这里只是例子
Alias /media/ /home/user/项目名称/media/ 
# 静态文件文件( js, css, 图片,视频等文件)存放的路径,具体路径根据岁需求
Alias /static/ /home/user/项目名称/static/ 
# 文件授权
<Directory /home/user/项目名称/media>
     Require all granted 
</Directory> 

<Directory /home/user/项目名称/static> 
    Require all granted 
</Directory>

# 通过wsgi.py 连接apache2和你的Django项目
WSGIScriptAlias / /home/user/项目名称/项目名称/wsgi.py

<Directory /home/user/项目名称/项目名称>
    <Files wsgi.py> 
        Require all granted 
    </Files> 
</Directory> 
</VirtualHost> 

 

    

    

      

    

 

转载于:https://www.cnblogs.com/xcfzy/p/10095069.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值