在主机商的共享服务器上部署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字符串,数值计算
Oct 05 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
May 21 Python
python实现抖音视频批量下载
Jun 20 Python
transform python环境快速配置方法
Sep 27 Python
在python中pandas的series合并方法
Nov 12 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
Python连接mysql方法及常用参数
Sep 01 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
2015/09/05 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
微信小程序 页面之间传参实例详解
2017/01/13 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
JS实现的雪花飘落特效示例
2019/12/03 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
Python 命令行参数sys.argv
2008/09/06 Python
python将文本转换成图片输出的方法
2015/04/28 Python
连接Python程序与MySQL的教程
2015/04/29 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Pandas的Apply函数具体使用
2020/07/21 Python
台湾旅游网站:灿星旅游
2018/10/11 全球购物
出国导师推荐信
2014/01/16 职场文书
教学实验楼管理制度
2014/02/01 职场文书
会计演讲稿范文
2014/05/23 职场文书
镇创先争优活动总结
2014/08/28 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
云冈石窟导游词
2015/02/04 职场文书
员工离职证明范本
2015/06/12 职场文书
小学六一儿童节活动开幕词
2016/03/04 职场文书
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏