在主机商的共享服务器上部署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实现strcmp函数功能示例
Mar 25 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
python生成验证码图片代码分享
Jan 28 Python
基于Django的python验证码(实例讲解)
Oct 23 Python
Python3安装Scrapy的方法步骤
Nov 23 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
Python谱减法语音降噪实例
Dec 18 Python
python实现一个猜拳游戏
Apr 05 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
Django如何在不停机的情况下创建索引
Aug 02 Python
解决python的空格和tab混淆而报错的问题
Feb 26 Python
利用python做数据拟合详情
Nov 17 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
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
深入探究PHP的多进程编程方法
2015/08/18 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
在视频前插入广告
2006/11/20 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
jQuery实现图片向左向右切换效果的简单实例
2016/05/18 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
python类共享变量操作
2020/09/03 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
文案策划求职信
2014/03/18 职场文书
租房协议书范本
2014/04/09 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
优秀党支部申报材料
2014/12/24 职场文书
单位综合评价意见
2015/06/05 职场文书
公司酒会主持词
2015/07/02 职场文书
单位提档介绍信
2015/10/22 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android