虽然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 sysPROJECT_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

Django之Apache2部署相关推荐

  1. apache2.4 + django + windows10 自动化部署

    apache2.4 + django + windows10 自动化部署 在django项目中建立一个webhooks url 路由, 在该路由下异步执行自动化部署脚本 在未部署的时候, 访问该路由 ...

  2. Mac下Django通过WSGI部署到Apache

    Python菜鸟一枚  为了部署这个项目忙活了半天 晕头转向的最终终于成功了  特此记录 Mac将Django通过uwsgi部署到apache详细介绍 我的Mac OSX是10.9的 Mac下自带了a ...

  3. 解决django配合nginx部署后admin样式丢失

    解决django配合nginx部署后admin样式丢失 1.  在项目的settings.py文件里添加以下内容: STATIC_URL = '/static/' STATICFILES_DIRS = ...

  4. Ubuntu系统Apache2部署SSL证书

    Ubuntu系统Apache2部署SSL证书 前提条件 已从SSL证书控制台下载Apache服务器证书 步骤 在apache2目录下创建SSL目录 mkdir /etc/apache2/ssl 使用命 ...

  5. Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)

    1.Docker离线安装配置 rpm版本安装 # 系统版本 rpm -qi centos-release Name : centos-release Version : 8.1 Release : 1 ...

  6. Apache2 部署flask项目

    Apache2 部署flask项目 需要安装的插件: apt-get install apache2 apt-get install libapache2-mod-wsgi 在  /etc/apach ...

  7. django+uwsgi+nginx部署

    最近线上部署运维工单系统,使用django+uwsgi+nginx部署,发现这篇文章,很详细,觉得不错,转载一下: 写了那么长时间的django,一直没跟nginx结合一下,访问的时候老是得加端口号, ...

  8. django进阶04部署上线(nginx,uwsgi,supervisor)

    原创博文地址:django进阶04部署上线(nginx,uwsgi,supervisor) django自身服务ok python manage.py runserver,验证可正常访问 uwsgi安 ...

  9. 如何将 Django 服务器单独部署到 heroku 上

    文章目录 Django server 单独部署 heroku 视频资源 部署步骤的 checklist 准备工作 创建账号 使用 pipenv / anaconda 创建python 和 Django ...

最新文章

  1. 百度高层巨震!陆奇卸任COO,王海峰晋升高级副总裁
  2. 2021年度中国计算机大会的技术论坛,值得一谈
  3. Zipkin之外的选择:Skywalking vs Pinpoint
  4. hdu3724 字典树(商品条形码)
  5. python 点滴记录1:python没有Tkinter模块
  6. 按压缩格式整理打包(解包)和压缩(解压)命令
  7. 逻辑回归模型_联邦学习体系下——逻辑回归模型
  8. JavaScript强化教程 —— Cocos2d-JS极速调试技巧
  9. VIM快捷键(转载)
  10. 阿里云存储:做深基础,助力新基建 | 凌云时刻
  11. XP系统安装python
  12. 无偿加班竟然被开除,程序员坐不住了
  13. PAT甲级英文单词整理
  14. 使用WICleanup清理Windows Installer 冗余文件
  15. C#学习 - 关于协变(co-varianct)和抗变(contra-variant)
  16. PyGmae:有限状态机实践(十三)
  17. ubuntu/linux 安装用户软件添加到命令行或者app 各个目录作用
  18. 矩阵的初等变换和等价
  19. 单容水箱液位pid控制实验报告_实验二(单容水箱液位pid控制实验)实验报告电子版.doc...
  20. 加入阿里15年,口碑仍在“流浪”

热门文章

  1. ht1621b和单片机电平匹配_基于HT1621B段式液晶模块的驱动应用
  2. matlab 上穿,Matlab混入模式(Mixin)
  3. java九九乘法表右上三角_输出九九乘法表
  4. 3.9 神经网络的梯度下降法
  5. Pandas 文本数据方法 join( )
  6. Centos7配置IP地址和DNS
  7. 在虚拟宿主环境中承载 Active Directory 域控制器时需要考虑的事项
  8. Kubernetes学习总结(16)—— Kubernetes 实战之部署 Redis 集群
  9. 腾讯研发总监王辉:十亿级视频播放技术优化揭秘
  10. Mysql学习总结(7)——MySql索引原理与使用大全