在主机商的共享服务器上部署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基于twisted实现简单的web服务器
Sep 29 Python
Python抓取框架 Scrapy的架构
Aug 12 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python正则匹配判断手机号是否合法的方法
Dec 09 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
python 并发编程 非阻塞IO模型原理解析
Aug 20 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
Python调用scp向服务器上传文件示例
Dec 22 Python
Python单链表原理与实现方法详解
Feb 22 Python
将Python代码打包成.exe可执行文件的完整步骤
May 12 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
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
JavaScript如何操作css
2020/10/24 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
深入理解Python变量与常量
2016/06/02 Python
Python多进程原理与用法分析
2018/08/21 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
python脚本和网页有何区别
2020/07/02 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
自荐书模板
2013/12/19 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
精神文明单位申报材料
2014/05/02 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
中学教师读书笔记
2015/07/01 职场文书
iPhone13再次曝光
2021/04/15 数码科技