Django项目部署到Apache服务器
本文讲述的是在阿里云服务器(ECS)上部署Django项目于Apache,服务器操作系统为ubuntu,公网Ip地址为123.56.30.151。
将Django部署到Apache服务器的原因
Django中的runserver只是一个很简单的web服务器,启动服务器常见的方法是通过Putty执行命令。虽然调试和测试方便,然而如果关闭了Putty或者退出命令,服务就停止了,并且不能承受许多用户同时使用的负载。所以需要将Django部署到生产级的服务器,这里选择Apache。
ubuntu上部署详细步骤
1.安装apache2
apt-get install apache2
2.测试apache2
打开浏览器输入123.56.30.151(云服务器的IP)
3.建立python与apache的连接
apt-get install libapache2-mod-wsgi
#通过执行python -V查看python版本,如果是3.0将第换为
apt-get install libapache2-mod-wsgi-py3
4.准备一个新网站
ubuntu的apache2配置文件在 /etc/apache2/ 下,在文件夹sites-available下新建一个网站配置文件:mysite.conf
<VirtualHost *:8888>
DocumentRoot /var/www/mysite/mysite
<Directory /var/www/mysite/mysite>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
</VirtualHost>
通过apachectl -v查看apache2版本号,如果是2.4.x,将Directory中的内容修改为
Require all granted
5.更改端口
修改ports.conf中的Listen 80为Listen 8000,注意:这个文件的开头有一个提示
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
无需遵照这个提示,即不用修改000-default.conf中的端口号,默认为80.
6.更改django工程
在工程的wsgi.py文件中添加
import sys
sys.path.append("/var/www/mysite/")
7.设置目录和文件权限
一般目录权限设置为 755,文件权限设置为 644
假如项目位置在 /var/www/mysite (在mysite下面有一个 manage.py,mysite是项目名称)
cd var/www/
sudo chmod -R 644 mysite
sudo find mysite -type d -exec chmod 755 \{\} \;
sqlite3数据库读写权限:
sudo chgrp www-data mysite
sudo chmod g+w mysite
sudo chgrp www-data mysite/db.sqlite3
sudo chmod g+w mysite/db.sqlite3
8.配置生效
a2ensite mysite.conf
9.启动服务
service apache2 restart
出现错误:
restarting web server apache2 [fail]
* The apache2 configtest failed.
Output of config test was:
AH00526: Syntax error on line 8 of /etc/apache2/sites-enabled/mysite.conf:
Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
tony@T:/etc/apache2/sites-available$ sudo a2enmod wsgi
ERROR: Module wsgi does not exist!
执行命令:
sudo apt-get purge libapache2-mod-wsgi
sudo apt-get install libapache2-mod-wsgi
出现错误:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
在apache2.conf文件末尾添加,这里的端口设置跟000-default.conf中的一样,而不是mysite.conf中的端口。
ServerName localhost:80
Django项目部署到Apache服务器的更多相关文章
- django项目部署在Apache服务器中,静态文件路径的注意点
django Apache部署静态文件的路径注意点 静态文件放在对应的 app 下的 static 文件夹中 或者 STATICFILES_DIRS 中的文件夹中. 当 DEBUG = True 时, ...
- Django项目部署到Apache服务器上
之前写了把Django部署到XAMPP上,但是有bug,翻apache日志的时候发现会无法import _ssl,然后我就怒而直接装apache2了 配置方法大约和这篇文章差不多 安装必要的包 sud ...
- django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)
上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...
- Django项目部署(django+guncorn+virtualenv+nginx)
一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...
- 详细的图文教程来实现 eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上
很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此,通过图文解说的方法,最直观的向大家演示一遍该配置过程. 第一部分:eclipse环境下如何配 ...
- 学习VirtualEnv和Nginx+uwsgi用于django项目部署
以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...
- django项目部署过程
django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...
- Windows下django项目部署 通过Apache2.4+mod_wsgi
经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...
- Django项目部署在Linux下以进程方式启动
Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...
随机推荐
- 为什么使用 Containjs 模块化管理工具效率高?
为什么使用 Containjs 模块化管理工具效率高? 要说明这个首先得说明一下,Containjs 的模块加载原理. 第一步,首先使用异步加载(ajax)在 js 目录下的 app.js 入口模块( ...
- 【Egret】使用VSCode 编译,断点调试Egret项目
经过我日积月累的摸索,还是一直模模糊糊的,搞不懂,今天经晨哥点拨两下,一下子就恍然大悟,搞定了怎么弄这个东西,现将经验分享如下. 一.效果目的 1.在VSCode里,直接F5打开Egret页面,并且可 ...
- SpringMVC 自定义全局日期转换器
第一步: 编写自定义转换器的类 /* * 自定义日期转换器 */ public class CustomDateConverter implements Converter<String, Da ...
- Android IPC机制全解析<二>
在AIDL文件中并不是所有的数据类型都可以使用,AIDL支持的数据类型如下: 基本数据类型(int.long.char.boolean.double等) String和CharSequence Lis ...
- 36.java_exception_test
package mytext1; class TZException extends Exception{ TZException(String str){ super(str); } public ...
- java nio(一)buffer
概述 常见的网络io分为两种情况,BIO(block-io)和NIO(non-block-io),分别位于java.io和java.nio. BIO,是阻塞的io,采用一个线程处理一个连接的方式,就算 ...
- Twitter数据抓取的方法(一)
Scraping Tweets Directly from Twitters Search Page – Part 1 Published January 8, 2015 EDIT – Since I ...
- 实现全局同一编码:Filter
request.setCharacterEncoding("UTF-8");只对POST方式提交有用 对于GET方式 ,可以有装饰模式和适配器模式,对获取参数的函数进行重写. 对所 ...
- T-SQL几个简单的操作
视图 咱们先来了解下视图到底是什么意思,顾名思义,用简单的视觉方式展现复杂的内容 有什么功能呢, 各位应该还记得咱们之前练习的那个小小的数据库superise,里面有这么四张表,分别是: studen ...
- SQL基础函数
首先咱们一起来看一下SQL的基本函数 一.聚合函数 二.数学函数 三.字符串函数 四.转换函数 五.时间函数 这样子看起来可能很多,那咱们给变得---------------------------- ...