在主机商的共享服务器上部署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 相关文章推荐
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
通过python+selenium3实现浏览器刷简书文章阅读量
Dec 26 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
python实现抽奖小程序
Apr 15 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
Python动态声明变量赋值代码实例
Dec 30 Python
Python实现搜索算法的实例代码
Jan 02 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
降低python版本的操作方法
Sep 11 Python
python MD5加密的示例
Oct 19 Python
java字符串格式化输出实例讲解
Jan 06 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
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php中的MVC模式运用技巧
2007/05/03 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
Vue.js系列之项目结构说明(2)
2017/01/03 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
python读取浮点数和读取文本文件示例
2014/05/06 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
Python中的字符串类型基本知识学习教程
2016/02/04 Python
儿童编程python入门
2018/05/08 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
python实现求特征选择的信息增益
2018/12/18 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
采购类个人求职的自我评价
2014/02/18 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书