iis多版本php
A. 如何在IIS6环境下配置5.3以上版本的php
使用FastCgi在IIS6来配置PHP 5.3运行环境。
1、下载PHP 5.3.X
官方下载地址:http://windows.php.net/download/
注意,一定要下载VC9 x86 Thread Safe的,文件名形式如:php-5.3.13-Win32-VC9-x86.zip
2、下载FastCGI
官方下载地址:http://www.iis.net/extensions/fastcgi
有支持IIS6和IIS5.1的32位版本和64位版本,还有支持IIS7的,因为IIS7与IIS6差别比较大,所以对于IIS7以后再介绍吧。
3、安装FastCgi
安装FastCgi没什么可介绍的,但是有一点要注意,就是系统要先安装VC9运行库才能正常运行,否则会报“FastCGI Error 14001 (0x800736b1)”之类的错误。
所以要先安装VC9运行库(即VISUAL C++ 2008)
Microsoft Visual C++ 2008 Redistributable Package (x86)下载地址:
http://download.microsoft.com/download/5/9/e/59e74271-2b59-49a1-b955-96b69cc34f38/vcredist_x86.exe
配置FastCGI
打开FASTCGI配置文件C:\WINDOWS\system32\inetsrv\fcgiext.ini,在最后[Types]修改为这样的样式
[Types]
php=PHP
[PHP]
ExePath=D:\php\php-cgi.exe
4、开始安装PHP环境
解压php-5.3.13-Win32-VC9-x86.zip压缩包到 d:\php
找到PHP安装目录下的php.ini-proction并改名为php.ini文件,也有人使用php.ini-development。
修改PHP.ini文件
找到
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
; https://www.5wx.org
; date.timezone =
更改为
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
找到
; On windows:
; extension_dir = "ext"
改为
; On windows:
extension_dir = "D:\php\ext"
查找extension=php_,去掉以下几个扩展前面的分号(基本的几项)。
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_xmlrpc.dll
查找short_open_tag = Off,改成On,让其支持短标签。
增加一行(非常重要)
fastcgi.impersonate = 1
开启下面两项
cgi.fix_pathinfo=1
cgi.force_redirect = 0
5、配置IIS
然后打开IIS管理器,网站上点击右键 -> 属性 -> 主目录 -> 配置 -> 添加
扩展名:.php
可执行文件:C:\WINDOWS\system32\inetsrv\fcgiext.dll (根据自己的安装路径)
动作限制为:GET,HEAD,POST,TRACE
6、测试PHP运行
写个php测试文件
<? phpinfo(); ?>
能看到运行界面说明就成功了!
B. IIS8.0怎么配置多版本php站点
在iis管理器的根节点上,添加php的处理程序映射 ,这个会是全局默认的php版本
然后具体到某个站点,如果需要不同版本,需要在左侧节点中定位到该站点,管理处理程序映射,找到继承的php fcgi配置,点编辑,修改为需要的php版本即可。
另外 ,php.ini不要放到windows目录中,这样不能针对多版本使用不同配置了。
可以把php.ini放在对应的php版本的根目录就行(php.exe所在目录)。然后针对每个版本的php配置就可以了。扩展目录可以直接以相对目录的形式设置
另外 ,修改这个配置后,会在网站根目录生成一个web.config( 如果已有,会在对应节点增加配置 ),这个web.config不要删除或修改php配置的内容,因为这个配置是和管理器中的同步的
以上配置方法主要结合iis的配置文件,是不能一个站点配置多个版本的php的.实际项目中也很少有这样的需求.如果需要,可以采用变通的方式解决:
如:主站/子站协同运行,采用接口互相调用(把一个站点变成多个站点)
或者使用rewrite+php-fpm的模式,匹配指定的路径转发给指定的php版本(同一个站点下按路径区分)
C. iis配置php
虽然 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 目录中复制任何文件。是不是很方便啊