在主机商的共享服务器上部署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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
Python中urllib2模块的8个使用细节分享
Jan 01 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
Python+Pyqt实现简单GUI电子时钟
Feb 22 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
python 实现一个反向单位矩阵示例
Nov 29 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
Python求解排列中的逆序数个数实例
May 03 Python
python中关于数据类型的学习笔记
Jul 19 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
Oct 21 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
基于mysql的论坛(6)
2006/10/09 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php常用hash加密函数
2014/11/22 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
JavaScript制作简单的框选图表
2017/05/15 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
python二叉树的实现实例
2013/11/21 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
在django view中给form传入参数的例子
2019/07/19 Python
python 消费 kafka 数据教程
2019/12/21 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Python 如何对文件目录操作
2020/07/10 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
如何选择使用结构还是类
2014/05/30 面试题
简历中自我评价怎么写
2014/02/12 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
入党申请书怎么写?
2019/06/21 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
mysql left join快速转inner join的过程
2021/06/30 MySQL
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB