在主机商的共享服务器上部署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 相关文章推荐
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
Python计时相关操作详解【time,datetime】
May 26 Python
Python语言的变量认识及操作方法
Feb 11 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
Python中函数参数调用方式分析
Aug 09 Python
对python调用RPC接口的实例详解
Jan 03 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
Tensorflow训练模型越来越慢的2种解决方案
Feb 07 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
Python中生成ndarray实例讲解
Feb 22 Python
python实现网络五子棋
Apr 11 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 url地址栏传中文乱码解决方法集合
2010/06/25 PHP
PHP实现小偷程序实例
2016/10/31 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
php面试中关于面向对象的相关问题
2019/02/13 PHP
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
js实现特定位取反原理及示例
2014/06/30 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
全面理解JavaScript中的继承(必看)
2016/06/16 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
详解VUE 数组更新
2017/12/16 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
python定时关机小脚本
2018/06/20 Python
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
super()与this()的区别
2016/01/17 面试题
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
培训自我鉴定
2014/01/31 职场文书
甜品店创业计划书
2014/08/14 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
消防验收申请报告
2015/05/15 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers