Django部署至Apache的步骤(Ubuntu12.04下)
来源:互联网 发布:帝国cms采集器 编辑:程序博客网 时间:2024/05/16 05:12
0x00 前言
在这里先说一点人生的经验 之前买了腾讯云的服务器(有学生认证的话只要1块钱) 我明明在自己电脑上ubuntu虚拟机用了一年多了 却作死选了个Centos 还是最新版的(7.2) 于是出现了各种问题 网上的解决方案都很少 最后因为一些很扯的问题放弃了 重装了一个ubuntu12.04的系统 感觉舒服 简单 多了
人生的经验:
* 关于Linux,个人使用的话版本可以尽量新(各种作死有保障,比如作死之前虚拟机打个快照什么的),而服务器的话版本尽量选择稳定 旧的 的,这样的话出现各种问题的几率比较小,而且网上的解决方案也多一些。
0x01 部署步骤
- a.准备工作
- 首先建议大家先通过
sudo apt-get install python-pip
来安装pip,这是一个专门管理Python包的软件,我觉得相当于一个更细化的apt吧
- 首先建议大家先通过
- b.安装各种软件
- mysql
sudo apt-get install mysql-server-core-5.5
- apache
sudo apt-get install apache2
安装后请使用apachectl -v
来检查版本号 2.4.x与2.2.x后续有一点区别 - django
sudo pip install Django==1.8
- mysql
- c.建立Django与Apache的连接
sudo apt-get install libapache2-mod-wsgi #Python2
sudo apt-get install libapache2-mod-wsgi-py3 #Python3
- 如果你是Python2用户又恰巧不小心输入了第二条命令,那么不要怕,再输入第一条命令就好啦,同样的Python3也可以通过再输入第二条命令来重置Apache的Python解释器(这种说法不一定对,但是我相信你懂我意思!)!
- d.让Apache找到Django
- 可以分为以下四步:
- 将Django工程放在/var/www/下;
- sudo vi /etc/apache2/sites-available/yoursite.conf 修改配置文件;
- sudo a2ensite yoursite.conf 配置文件生效;
- sudo service apache2 restart 重启Apache。
- 然后新建一个网站的配置文件
sudo vi /etc/apache2/sites-available/yoursite.conf
配置文件的具体内容如下 `
ServerName www.yourdomain.com # 改为你自己的域名# ServerAlias otherdomain.com# ServerAdmin youremail@gmail.com# 存放用户上传图片等文件的位置,注意去掉#号#Alias /media/ /var/www/ProjectName/media/ # 静态文件(js/css/images)Alias /static/ /var/www/ProjectName/static/ # 允许通过网络获取static的内容<Directory /var/www/ProjectName/static/> Require all granted</Directory># 最重要的!通过wsgi.py让Apache识别这是一个Django工程,别漏掉前边的 /WSGIScriptAlias / /var/www/ProjectName/ProjectName/wsgi.py # wsgi.py文件的父级目录,第一个ProjectName为Django工程目录# 第二个ProjectName为Django自建的与工程同名的目录<Directory /var/www/ProjectName/ProjectName/> <Files wsgi.py> Require all granted</Files></Directory></VirtualHost>`
需要注意的是 假如你的Apache版本为2.2.x 则将
Require all granted
改为Order deny,allow Allow from all
- 然后 执行
sudo a2ensite yoursite.conf
来使网站生效 - 也可以执行
sudo a2dissite yoursite.conf
来使网站失效 最后重启Apache即可
sudo service apache2 restart
- 可以分为以下四步:
- e.修改Django的wsgi.py文件
- 路径
/var/www/ProjectName/ProjectName/wsgi.py
- 修改为以下内容:
```import os from os.path import join,dirname,abspath PROJECT_DIR = dirname(dirname(abspath(file)))
import sys sys.path.insert(0,PROJECT_DIR) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
from django.core.wsgi import get_wsgi_application application = get_wsgi_application()- 注意将"project.settings" 改为正确的名称
再次重启Apache
sudo service apache2 restart
- 路径
0x02 疑难排查
注意疑难排查主要看日志/var/log/apache2/error.log
与systemctl -xe
以下是一些常见问题的解决(都要通过看错误日志得到):
- can't pip install mysql-python
- Getting “Error loading MySQLdb module: No module named MySQLdb”
- Python,Django安装MySQLdb各种经典错误
参考文章1 把Django搭建到Apache服务器
参考文章2 Django 部署(Apache)
0 0
- Django部署至Apache的步骤(Ubuntu12.04下)
- ubuntu下django和apache的部署
- ubuntu12.04下apache2+mod_wsgi+django部署配置
- Ubuntu12.04LST 下 Django+uwsgi+nginx部署
- django的apache部署
- apache下部署django应用
- apache+mod_wsgi+django在windows下的部署
- apache+mod_wsgi+django在windows下的部署
- apache+mod_wsgi+django在windows下的部署
- linux下django部署到apache
- windows环境下部署django mod_wsgi apache
- Debian 下用Apache部署Django
- Ubuntu下Apache中部署Django
- unbuntu下apache中的django部署
- Windows下 Django部署到Apache
- windows 下 apache 部署 django python3.6
- Ubuntu下Django+Apache+mod_wsgi部署
- Ubuntu12.04下安装Apache
- 基于OpenGL显示平台功能开发-MFC框架篇
- leetcode 53. Maximum Subarray
- 反向代理+负载均衡部署javaWeb项目
- Objective-c的Block基础
- [心得]编译原理知识整理
- Django部署至Apache的步骤(Ubuntu12.04下)
- 一个爬进正方教务系统的爬虫的诞生
- virthalbox ubuntu双网卡设置
- bootstrap fileinput 文件上传工具
- C++中的private protected public区别
- [kuangbin带你飞]专题十二 基础DP1 E HDU 1087
- C++中的private protected public区别
- IOS中的Swift基础01(常量,变量,可选类型,条件判断)
- 欢迎使用CSDN-markdown编辑器