设为首页 收藏本站
查看: 1375|回复: 0

[经验分享] django+iis终于配置成功,高兴!!!

[复制链接]

尚未签到

发表于 2017-2-11 15:15:56 | 显示全部楼层 |阅读模式
  早就听说过django开发框架的大名,一直想找个机会体验一下。由于公司使用的服务器系统是winows server 2003,web服务器是iis 6.0,因此,开发环境只能部署为django+iis。于是,上google狂找,所能找到的教程很少,而且很多雷同无异,只能择一照着配置,仍未能运行。几经周折,始终未遂。
  今天闲来无事,又有了配置django+iis运行环境的冲动。又尝试之,好在黄天不负有心人,得以所偿。附上所参考的教程。


在Windows平台下的IIS中发布Django应用


目标
  在Windows平台上的IIS服务器中发布由Django创建的应用。在我们开始之前请确保你已经安装完毕Windows,IIS,并能正常运行,需要发布的Django应用也已在内置的测试服务器上调试通过。
  注意:本指南对Django <=0.91无效,因为IIS扩展基于Django >=0.92的API


步骤


  • 安装PyISAPIe - 一个让IIS支持Python的扩展
  • 安装Django并通过PyISAPIe连接Django
  • 配置Django
  • 测试

安装PyISAPIe - 一个IIS的ISAPI扩展
  PyISAPIe不是以安装包的形式发布的,不过安装起来也并不复杂
  简单地说,这个扩展在IIS运行时将Python解释器加载到内存中并用它来响应页面请求,它避免了CGI方式下为每一个请求反复启动
Python。这意味着某些Django文件会被缓存,在你修改代码后不能马上起效,直到你重启Python进程。对于IIS
6你必须右键点击应用程序池中的服务然后选择”刷新”来让更改有效,对于更早的IIS版本你也许需要重新启动整个IIS服务。
  好,那我们先访问http://pyisapie.sourceforge.net/
并下载最新的PyISAPIe。
  假设你将所有的文件解压到c:\pyisapie,并且将Python安装在c:\python24,如果路径不同,请作相应的调整。
  在readme中有文档说明,步骤概括如下:

安装文件


  • 将 c:\pyisapie\PyISAPIe.dll 复制到 c:\python24\
  • 编辑该文件的“属性”->“安全设置”,加入“Network”,“ Service”,并选中“读取”权限。(为了让IIS可以访问)
  • 转到 c:\pyisapie\source\PyISAPIe\Python\ 将整个Http文件夹复制到 c:\python24\lib\site-packages。 注意:Http文件夹的名字是大小写敏感的,千万别误存为http或其他变体,那样将无法正常运行。

设置IIS
  你不一定要创建虚拟目录——可以直接使用根目录。如果你使用虚拟目录,比如/myfolder,那么只有以/myfolder开头的页面由
PyISAPIe处理。如果你使用根目录,所有的URL都将由PyISAPIe处理,这可能会导致你站点上的其他内容无法访问。 *
打开IIS管理控制台,创建新的虚拟目录,并在向导提示的时候允许ISAPI扩展。

IIS 6


  • 察看虚拟目录的属性并点击“配置”(如果这个选项为灰色,则先点击“创建”),然后加入一个新通配符(下方的列表框内),定位到 pyisapie.dll 文件,清除“检查文件是否存在”选项。
  • 在IIS管理器中,到“网络服务扩展”区右键点击->加入新的网络服务扩展。
  • 随便取一个名字,然后将pyisapie.dll添加为所需文件,并选中允许此扩展

IIS 5


  • IIS 5.x 不支持通配符应用映射,至少在配置界面下不支持。在IIS 5下,实施步骤如下:
  • 右键点击虚拟目录并选择“属性”
  • 确保“执行许可”设置为“脚本和可执行程序”
  • 点击“配置”(在“脚本和可执性程序”旁)
  • 点击“应用程序映射”标签,选择“添加”
  • 设置“可执行文件”为 c:\python24\PyISAPIe.dll
  • 设置“扩展名”为“*”,这样所有的请求都通过PyISAPIe.dll处理
  • 你应该限定所允许的动作,但是为了内部测试方便,我们暂时设置为“全部动作”
  • 清除“检查文件是否存在”的选项
  • 点击“确定”关掉所有窗口
  设置好之后,你可以将 c:\pyisapie\source\PyISAPIe\Python\examples 下的Info.py复制到你新建的虚拟目录中,然后访问http://site/Info.py来测试。

将Django连接到PyISAPIe
  按照PyISAPIe的examples\django目录下的readme.txt来设置Django。简要的说就是将两个文件复制到相应的文件夹中。然后稍加修改以满足你的需要。


  • 将 Isapi.py 放到 c:\python24\lib\site-packages\Http 目录。按照前面给的例子,你需要对此文件稍加修改:
  改动的代码

# 加入下列两行,这样python可以导入 DJANGO_SETTINGS_MODULE
import sys
sys.path.append(r'c:\test')
# Indicate the settings module of your project
os.environ["DJANGO_SETTINGS_MODULE"] = "proj.settings"



  • 将 pyisapie.py 放到
    c:\python24\lib\site-packages\Django-xyz-123.egg\django\core\handlers
    目录。PyISAPIe v1.0.3中有个小bug。 你需要对它稍加修改才能正常使用。
  改动的代码

class PyISAPIeRequest(http.HttpRequest):
def __init__(This):
# 加入下一行
This.method = Env.REQUEST_METHOD
# 其他的不必修改



  • IIS+Python+PyISAPIe目前好像并不支持多个Django站点。

修改Django设置
  做完上述几步之后,我们可以将虚拟目录 /myfolder 指向 c:\test,然后创建一个Hello World 页面来进行测试。


  • 在 c:\test\proj 目录中创建一个 helloworld.py 文件
  内容如下

from django.http import HttpResponse
def index(request):
return HttpResponse("Hello world!")



  • 修改 c:\test\proj 目录下的 urls.py
  内容如下

from django.conf.urls.defaults import *
urlpatterns = patterns('',
# Example:
# (r'^newtest/', include('proj.apps.foo.urls.foo')),
(r'^.*$', 'proj.helloworld.index'),
# Uncomment this for admin:
#     (r'^admin/', include('django.contrib.admin.urls')),
)


  一切准备就绪,你可以马上访问 http://site/myfolder 来看一下效果。请注意,你不需要手动启动Django服务。

常见问题


  •   在 IIS 5 上,每一次修改代码后,你需要在控制台下用命令 “iisreset” 重启IIS才能让它生效。直接在”IIS 管理控制台”下重新启动站点是没有效果的,一定要重启整个IIS服务。

  •   最好在根目录下创建一个 “media” 虚拟目录来提供样式表等静态内容。


原文参考



  • DjangoOnWindowsWithIISAndSQLServer

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-340756-1-1.html 上篇帖子: 编写批处理文件IIS.bat 下篇帖子: [导入][转载]安全设置 IIS 中的权限
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表