在主机商的共享服务器上部署Django站点的方法


Posted in Python onJuly 22, 2015

许多共享主机的服务提供商不允许运行你自己的服务进程,也不允许修改 httpd.conf 文件。 尽管如此,仍然有可能通过Web服务器产生的子进程来运行Django。

记录

如果你要使用服务器的子进程,你没有必要自己去启动FastCGI服务器。 Apache会自动产生一些子进程,产生的数量按照需求和配置会有所不同。

在你的Web根目录下,将下面的内容增加到 .htaccess 文件中:

AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]

接着,创建一个脚本,告知Apache如何运行你的FastCGI程序。 创建一个 mysite.fcgi 文件,并把它放在你的Web目录中,打开可执行权限。

#!/usr/bin/python
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/user/python")

# Switch to the directory of your project. (Optional.)
# os.chdir("/home/user/myproject")

# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

重启新产生的进程服务器

如果你改变了站点上任何的python代码,你需要告知FastCGI。 但是,这不需要重启Apache,而只需要重新上传 mysite.fcgi 或者编辑改文件,使得修改时间发生了变化,它会自动帮你重启Django应用。 你可以重新上传mysite.fcgi或者编辑这个文件以改变该文件的时间戳。 当阿帕奇服务器发现文档被更新了,它将会为你重启你的Django应用。

如果你拥有Unix系统命令行的可执行权限,只需要简单地使用 touch 命令:

touch mysite.fcgi

Python 相关文章推荐
Python中为feedparser设置超时时间避免堵塞
Sep 28 Python
python sort、sorted高级排序技巧
Nov 21 Python
python去除空格和换行符的实现方法(推荐)
Jan 04 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
Oct 01 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
Python小工具之消耗系统指定大小内存的方法
Dec 03 Python
树莓派+摄像头实现对移动物体的检测
Jun 22 Python
python3 打印输出字典中特定的某个key的方法示例
Jul 06 Python
Python tkinter三种布局实例详解
Jan 06 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
python运算符之与用户交互
Apr 13 Python
Python TypeError: ‘float‘ object is not subscriptable错误解决
Dec 24 Python
在Lighttpd服务器中运行Django应用的方法
Jul 22 #Python
简单的Apache+FastCGI+Django配置指南
Jul 22 #Python
使用FastCGI部署Python的Django应用的教程
Jul 22 #Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 #Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 #Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 #Python
在Django中同时使用多个配置文件的方法
Jul 22 #Python
You might like
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
用JS实现一个TreeMenu效果分享
2011/08/28 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
2015/03/23 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
python 生成图形验证码的方法示例
2018/11/11 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
关于工资低的辞职信
2014/01/14 职场文书
《九色鹿》教学反思
2014/02/27 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
党员转正介绍人意见
2015/06/03 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书