在主机商的共享服务器上部署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 07 Python
python简单程序读取串口信息的方法
Mar 13 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python实现excel转sqlite的方法
Jul 17 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
详解numpy的argmax的具体使用
May 27 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 Python
python3注册全局热键的实现
Mar 22 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
python 写一个水果忍者游戏
Jan 13 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php getsiteurl()函数
2009/09/05 PHP
YII中assets的使用示例
2014/07/31 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
Javascript String.replace的妙用
2009/09/08 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
JQuery validate插件Remote用法大全
2016/05/15 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
2017/02/19 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
JS实现简单打字测试
2020/06/24 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
通信专业个人自我鉴定
2013/10/21 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
推荐信怎么写
2014/05/09 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
2014年民警工作总结
2014/11/25 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers