IIS6.0中配置php服务全过程解析


Posted in PHP onAugust 07, 2013

虽然 LAMP 组合很不错,但是如果想要架设一台同时支持 PHP、ASP、ASP.NET、JSP、Perl 的 Web 虚拟主机服务器,还是用 Windows 2003 的 IIS 6 最好。网上有很多介绍在 IIS 6 上配置 PHP 的文章,但是那些方法不是性能不好,就是升级麻烦。下面的方法可以让你在第一次配置好后,能够非常方便的进行升级。

这里所说的升级,是指从某个 php4 版本升级到另一个 php4 版本,或者从某个 php5 版本升级到另一个 php5 版本,而不是指从 php4 升级到 php5。

准备:
1、一台安装好的 Windows 2003 服务器,并且已经安装了 IIS 6。
2、下载 windows 版的 PHP 二进制压缩包

安装:
解压缩 PHP 二进制压缩包到 C:\php 目录下(这里假设 C: 盘是系统盘,即安装了Windows 系统的盘,如果系统盘是 D: 盘,则解压缩到 D:\php 目录下,以此类推,下同)。

然后打开“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”->“path”,编辑其值,在前面增加下面的路径地址:
C:\php;C:\php\dlls;C:\php\extensions;C:\php\sapi;

将 php.ini-dist 或 php.ini-recommended 复制到 C:\Windows 目录下,并改名为 php.ini,一般正式发布网站的服务器用 php.ini-dist,而作为调试用的服务器用 php.ini-recommended 更好。当然一般情况下,这个 php.ini 还是需要根据实际情况来修改的。

下面来介绍一下几个必要的修改选项:
extension_dir = "C:\php\extensions"
这个是 PHP 扩展所放置的目录,请确保跟你实际安装的目录相同。 

extension=php_mbstring.dll 
;extension=php_big_int.dll 
extension=php_bz2.dll 
extension=php_cpdf.dll 
extension=php_crack.dll 
extension=php_curl.dll 
extension=php_db.dll 
extension=php_dba.dll 
extension=php_dbase.dll 
extension=php_dbx.dll 
extension=php_domxml.dll 
;extension=php_exif.dll 
;extension=php_fdf.dll 
;extension=php_filepro.dll 
extension=php_gd2.dll 
extension=php_gettext.dll 
extension=php_hyperwave.dll 
extension=php_iconv.dll 
;extension=php_ifx.dll 
;extension=php_iisfunc.dll 
extension=php_imap.dll 
;extension=php_interbase.dll 
extension=php_java.dll 
extension=php_ldap.dll 
;extension=php_mcrypt.dll 
extension=php_mhash.dll 
extension=php_mime_magic.dll 
extension=php_ming.dll 
extension=php_mssql.dll 
extension=php_msql.dll 
;extension=php_oci8.dll 
extension=php_openssl.dll 
;extension=php_oracle.dll 
extension=php_pdf.dll 
extension=php_pgsql.dll 
;extension=php_printer.dll 
extension=php_shmop.dll 
;extension=php_snmp.dll 
extension=php_sockets.dll 
;extension=php_sybase_ct.dll 
extension=php_w32api.dll 
extension=php_xmlrpc.dll 
extension=php_xslt.dll 
extension=php_yaz.dll 
extension=php_zip.dll

上面这些,开头没有加分号的是打开的扩展,加了分号的是没有打开的扩展。上面的设置包含了在 Windows 2003 上默认安装情况下可以打开所有扩展(这里列出的是 php 4 的)。

session.save_path = c:\sessions
这个是 session 文件默认保存的目录,这个目录必须是一个存在的目录,不然默认的 session 功能会无效。我这里设置的是一个 ramdisk 上的一个目录。将 session.save_path 设置在 ramdisk 上可以加快 session 处理的速度。如果你没有安装 ramdisk,你可以把它指定到其他盘的任何一个目录下,如 C:\sessions 目录、C:\Windows\Temp 目录等。

OK,基本工作作完了,现在该配置 IIS 了。

打开“ Internet 信息服务(IIS)管理器”,在“ Web 服务扩展”里,选择“添加一个新的 Web 服务扩展”,扩展名可填写“PHP ISAPI 扩展”,要求的文件选择:C:\php\sapi\php4isapi.dll(如果安装的是 PHP5,则此处是 C:\php\sapi\php5isapi.dll,下同),并设置扩展状态为允许。

打开“网站”->“属性”->“ISAPI 筛选器”->“添加”,筛选器名称可填写“PHP”,可执行文件仍然选择 C:\php\sapi\php4isapi.dll。

打开“网站”->“属性”->“主目录”->“应用程序设置”->“配置”->“应用程序扩展”->“添加”,可执行文件还是选择 C:\php\sapi\php4isapi.dll。扩展名填写“.php”,动作限制为“HEAD,GET,POST”。

打开“网站”->“属性”->“文档”->“启用默认内容文档”->“添加”,可以将 index.php 添加为默认内容文档。

然后选择“服务器机器名”->“所有任务”->“重新启动 IIS”来重启 IIS。

测试
在默认网站发布目录下,建立一个测试页面:

下载:phptest.php

<? 
phpinfo();  
?>

如果打开这个页面能够看到 php 安装配置信息,就算是安装成功了。

如果想要更优化的执行 php 程序,可以安装 ZendOptimizer-2.6.0-Windows-i386.exe ,这个东西安装非常简单,这里就不介绍了。

升级
现在升级就非常简单了。只需要将新版本的 PHP 二进制压缩包下载下来,将原来的 C:\php 目录删除,将新版本解压缩到 C:\php 目录中,然后重新启动一下 IIS 就可以了。不需要修改任何配置,也不需要往 System32 目录中复制任何文件。是不是很方便啊? 

PHP 相关文章推荐
用文本作数据处理
Oct 09 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php截取字符串函数substr,iconv_substr,mb_substr示例以及优劣分析
Jun 10 PHP
golang与PHP输出excel示例
Jul 22 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
PHP实现ASCII码与字符串相互转换的方法
Apr 29 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 #PHP
Win下如何安装PHP的APC拓展
Aug 07 #PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 #PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 #PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 #PHP
一个漂亮的php验证码类(分享)
Aug 06 #PHP
如何在php中正确的使用json
Aug 06 #PHP
You might like
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
js判断变量是否未定义的代码
2020/03/28 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
Vue2.x和Vue3.x的双向绑定原理详解
2020/11/05 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
python添加模块搜索路径方法
2017/09/11 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
使用Python实现音频双通道分离
2020/12/25 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
如何利用find命令查找文件
2016/11/18 面试题
工程资料员岗位职责
2014/03/10 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
会计求职自荐信范文
2015/03/04 职场文书