Zend Framework 1.5.1 与 IIS6.0 的集成
时间:2008-05-02
来源:互联网

但由于 IIS 不支持基于 .htaccess 配置的 URL Rewrite,因此 Zend Framework 无法简单地在 IIS 下运行。但是,由于 IIS 支持基于 HttpModule 的 URL Rewrite,因此通过别的途径,是可以让 Zend Framework 在 IIS上跑的。我利用第三方软件 ISAPI_Rewrite 实现了这个功能,测试了一下控制器和视图,可以运行,更深入的应用还没有测试,大家可以继续探讨。
Zend Framework 版本 1.5.1,PHP 版本 5.2.5,在 Windows Server 2003 R2(SP3) 的 IIS6.0 下测试。PHP.ini 的 include_path 已经包含至 Zend Framework 的 library 路径。
本人的测试文件夹为:
D:\MyPHP5\ZF_mydemo,里面包含 App 和 www 2个文件夹。
D:\MyPHP5\ZF_mydemo\App 下包含 controllers、DB、models、views 文件夹。
D:\MyPHP5\ZF_mydemo\www 用于保存 index.php 文件,所有的请求转发到这里。该文件内容为:
<?php
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Asia/Shanghai');
//由于 php.ini 配置了Zend Framework 的库路径,这里省略 set_include_path 语句。
include "Zend/Loader.php";
Zend_Loader::registerAutoload(); //可以用以上(1)和(2)任一个代替
$fc = Zend_Controller_Front::getInstance();
$fc->setControllerDirectory('../App/controllers');
$fc->throwExceptions(true);
$fc->setParam('noViewRenderer', true);
$fc->setParam('noErrorHandler', false);
$fc->dispatch();
?>
我的访问地址为 [url=http://[url]http://[url[/url]],指向物理文件夹 D:\MyPHP5。测试地址是:[url=http://[url]/zf_mydemo/www]http://[url]/zf_mydemo/www[/url]。
需要配置 ISAPI_Rewrite 文件夹下的 httpd.ini 文件(默认一般在 C:\Program Files\Helicon\ISAPI_Rewrite),加2条规则:
RewriteRule /zf_mydemo/www/.* /zf_mydemo/www/index.php
RewriteRule /zf_mydemo/www /zf_mydemo/www/index.php
第二条规则是保证访问 [url=http://[url]/zf_mydemo/www]http://[url]/zf_mydemo/www[/url] (不到斜杠)时不出错。
这样我在浏览器里打开 [url=http://[url]/zf_mydemo/www/example]http://[url]/zf_mydemo/www/example[/url],就访问到了 D:\MyPHP5\ZF_mydemo\App\controllers 下的文件 exampleController.php。
附注:费了这么大的神探索这个问题,让 ZF 和 IIS 结亲,总有点拉郎配的感觉!其实我个人是不喜欢也不赞成在 IIS 上跑 ZF 的,而 Zend 公司似乎也不愿意。所以我们在 Zend 的文档里和互联网上很少能找到在 IIS 上运行 ZF 的资料,操这份闲心的都是一些爱好者和像我这样的好事者。毕竟 Lamp 才是 PHP 的黄金搭档,作为技术,我们要让它们用在最合适的环境下。
但是作为技术人员,有时我真的无法压制自己的好奇心,在尝试中,我体验到了探险家的乐趣:把看似可以实现的事情变成已然实现的结果。这就是技术人员的好奇、执着(偏执?)、固执己见吧?
张庆(网眼)
2008-5-1
作者: 西安PHPer 发布时间: 2008-05-02
不错啊。


作者: luzhou 发布时间: 2008-05-02
我定.哈哈
作者: 逆雪寒 发布时间: 2008-05-02
谢谢楼主的分享
httpd.ini 的编写规则楼主是在哪里找到的?能否分享下?
httpd.ini 的编写规则楼主是在哪里找到的?能否分享下?
作者: ocean2000 发布时间: 2008-05-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28