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 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部署相关推荐
- apache2.4 + django + windows10 自动化部署
apache2.4 + django + windows10 自动化部署 在django项目中建立一个webhooks url 路由, 在该路由下异步执行自动化部署脚本 在未部署的时候, 访问该路由 ...
- Mac下Django通过WSGI部署到Apache
Python菜鸟一枚 为了部署这个项目忙活了半天 晕头转向的最终终于成功了 特此记录 Mac将Django通过uwsgi部署到apache详细介绍 我的Mac OSX是10.9的 Mac下自带了a ...
- 解决django配合nginx部署后admin样式丢失
解决django配合nginx部署后admin样式丢失 1. 在项目的settings.py文件里添加以下内容: STATIC_URL = '/static/' STATICFILES_DIRS = ...
- Ubuntu系统Apache2部署SSL证书
Ubuntu系统Apache2部署SSL证书 前提条件 已从SSL证书控制台下载Apache服务器证书 步骤 在apache2目录下创建SSL目录 mkdir /etc/apache2/ssl 使用命 ...
- Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)
1.Docker离线安装配置 rpm版本安装 # 系统版本 rpm -qi centos-release Name : centos-release Version : 8.1 Release : 1 ...
- Apache2 部署flask项目
Apache2 部署flask项目 需要安装的插件: apt-get install apache2 apt-get install libapache2-mod-wsgi 在 /etc/apach ...
- django+uwsgi+nginx部署
最近线上部署运维工单系统,使用django+uwsgi+nginx部署,发现这篇文章,很详细,觉得不错,转载一下: 写了那么长时间的django,一直没跟nginx结合一下,访问的时候老是得加端口号, ...
- django进阶04部署上线(nginx,uwsgi,supervisor)
原创博文地址:django进阶04部署上线(nginx,uwsgi,supervisor) django自身服务ok python manage.py runserver,验证可正常访问 uwsgi安 ...
- 如何将 Django 服务器单独部署到 heroku 上
文章目录 Django server 单独部署 heroku 视频资源 部署步骤的 checklist 准备工作 创建账号 使用 pipenv / anaconda 创建python 和 Django ...
最新文章
- 百度高层巨震!陆奇卸任COO,王海峰晋升高级副总裁
- 2021年度中国计算机大会的技术论坛,值得一谈
- Zipkin之外的选择:Skywalking vs Pinpoint
- hdu3724 字典树(商品条形码)
- python 点滴记录1:python没有Tkinter模块
- 按压缩格式整理打包(解包)和压缩(解压)命令
- 逻辑回归模型_联邦学习体系下——逻辑回归模型
- JavaScript强化教程 —— Cocos2d-JS极速调试技巧
- VIM快捷键(转载)
- 阿里云存储:做深基础,助力新基建 | 凌云时刻
- XP系统安装python
- 无偿加班竟然被开除,程序员坐不住了
- PAT甲级英文单词整理
- 使用WICleanup清理Windows Installer 冗余文件
- C#学习 - 关于协变(co-varianct)和抗变(contra-variant)
- PyGmae:有限状态机实践(十三)
- ubuntu/linux 安装用户软件添加到命令行或者app 各个目录作用
- 矩阵的初等变换和等价
- 单容水箱液位pid控制实验报告_实验二(单容水箱液位pid控制实验)实验报告电子版.doc...
- 加入阿里15年,口碑仍在“流浪”
热门文章
- ht1621b和单片机电平匹配_基于HT1621B段式液晶模块的驱动应用
- matlab 上穿,Matlab混入模式(Mixin)
- java九九乘法表右上三角_输出九九乘法表
- 3.9 神经网络的梯度下降法
- Pandas 文本数据方法 join( )
- Centos7配置IP地址和DNS
- 在虚拟宿主环境中承载 Active Directory 域控制器时需要考虑的事项
- Kubernetes学习总结(16)—— Kubernetes 实战之部署 Redis 集群
- 腾讯研发总监王辉:十亿级视频播放技术优化揭秘
- Mysql学习总结(7)——MySql索引原理与使用大全