PHP5.3.1 不再支持ISAPI
今天发现PHP5.3.1发布了,但是安装的时候没有找到ISAPI模式,安装后也没有找到php5isapi.dll这个文件,找了好久,终于弄清楚。
要在IIS6上使用高版本PHP,必须安装fastCGI扩展,Microsoft FastCGI Extension for IIS 5.1 and 6.0
然后让你的IIS6支持fastCGI即可。
然后设定一下php.ini中的CGI and FastCGI参数:
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect =0
cgi.rfc2616_headers=1
然后制作一个批处理文件,运行一下代码:
c %windir%\system32\inetsrv\fcgiconfig.js -add -section:"PHP" ^
-extension:php -path:"C:\PHP\php-cgi.exe"
将C:\PHP\php-cgi.exe替换成自己的安装路径!
如果你在使用phpMyadmin 3.1.0rc版,需要将.libraries/select_lang.lib.php 则需要将147,148行的
if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))
|| ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {
更换为:
if (($envType == 1 && preg_match('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str))
|| ($envType == 2 && preg_match('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) {
否则会报错:
in .\libraries\select_lang.lib.php#147
eregi() is deprecated
Backtrace
.\libraries\select_lang.lib.php#147: eregi()
.\libraries\select_lang.lib.php#81: PMA_langDetect(
string zh-cn,
integer 1,
)
.\libraries\select_lang.lib.php#361: PMA_langCheck()
.\libraries\common.inc.php#560: require_once(.\libraries\select_lang.lib.php)
.\index.php#34: require_once(.\libraries\common.inc.php)
另外注意:在IIS上安装PHP5.3.1,官方推荐Non-thread-safe build of PHP
下载地址:
PHP for Windows: Binaries and Sources Releases.
详细介绍:http://www.php.net/manual/en/install.windows.iis6.php