在主机商的共享服务器上部署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中print的不换行即时输出的快速解决方法
Jul 20 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
使用requests库制作Python爬虫
Mar 25 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
python使用threading.Condition交替打印两个字符
May 07 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
浅谈Django+Gunicorn+Nginx部署之路
Sep 11 Python
Python求解正态分布置信区间教程
Nov 20 Python
python 实现屏幕录制示例
Dec 23 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
Python 操作 MySQL数据库
Sep 18 Python
Python datetime模块的使用示例
Feb 02 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 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
PHP fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
javascript异常处理实现原理详解
2020/02/17 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
讲解Python中的递归函数
2015/04/27 Python
Python和Go语言的区别总结
2019/02/20 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
优秀英语专业毕业生求职信
2013/11/23 职场文书
新学期校长寄语
2014/01/18 职场文书
婚礼主持词
2014/03/13 职场文书
装修协议书范本
2014/04/21 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
违纪检讨书范文
2015/01/27 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
Linux中sftp常用命令整理
2022/06/28 Servers