登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

Windows系统PHP(fastcgi)的安装说明  

2009-10-30 02:42:17|  分类: Web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文链接:http://oicu.cc.blog.163.com/blog/static/123039471200993024217981/

 

虽说MySQL+PHP在Windows的性能不如Linux,但是对于个人网站、测试,在Windows系统下
搭建环境还是很有必要的。

IIS的配置繁琐,不考虑用受平台限制的PHP ISAPI Module方式。Apache的文档在网络上繁
多,也不考虑php_module方式。cgi执行效率不如Fastcgi,也不考虑。

LightTPD、nginx、Mongoose、Apache这些Web服务器都可以用PHP-Fastcgi方式,测试时可
共用同一个php.ini配置,因此安装配置PHP-Fastcgi的过程和选用的Web服务器无关系。

安装php前先安装MySQL或者PostgreSQL数据库,以及Web服务器,并且约定PHP Fastcgi服务
使用的端口为1026(或者用9000端口,LightTPD或nginx需要设置,而Mongoose不需要设置端
口)。


一、软件版本
php-5.2.10-Win32.zip
eAccelerator-0953 for PHP 5.2.10-Win32.rar
PHP-FastCGI-Script-1.0-RC1.zip
ZendOptimizer-3.3.3-Windows-i386.exe
ImageMagick-6.5.4-2-Q16-windows-dll.exe

因eAccelerator和ZendOptimizer限制,所以不用php5.2.11和php5.3.0,也不要使用msi格
式的php安装版本,免得改配置时缺少dll文件。


二、约定
Web服务器设定的网站根目录:C:\Web\root
PHP5安装位置:C:\PHP5
php.ini文件存放位置:C:\PHP5\php.ini
eAccelerator安装位置:C:\PHP5\ext
PHP-Fastcgi服务启动脚本phpfcgi.cmd存放位置:C:\PHP5
Zend Optimizer安装位置:C:\Web\Zend
ImageMagick安装位置:C:\Web\ImageMagick


三、安装 PHP
(1) 解压缩 php-5.2.10-Win32.zip 到 C:\PHP5

(2) 进入 C:\PHP5 文件夹,将 php.ini-dist 复制为 php.ini
注:php.ini-recommended是从 php.ini-dist 修改而来,安全等级比php.ini-dist高,会
    对设置产生较大的影响。如果只是想进行web测试和普通开发,使用php.ini-dist,不
    然就是用php.ini-recommended。

(3) 打开 php.ini 文件,找到:
    extension_dir = "./"
    将其改为;
    extension_dir ="C:\PHP5\ext"
注:extension_dir是存放扩展库(模块)的目录,也就是PHP用来寻找动态扩展模块的目录。

(4) 找到:Windows Extensions
    在下方的动态模块配置中,打开需要的模块支持(去掉模块配置每行前面的;号即可),
    最基本的三个:
    extension=php_mbstring.dll
    extension=php_gd2.dll
    extension=php_MySQL.dll

    需要的话设置更多些,下面这些用来测试论坛、博客程序足够了:
    (支持mysql和PostgreSQL两个数据库)
    extension=php_bz2.dll
    extension=php_gd2.dll
    extension=php_gmp.dll
    extension=php_mbstring.dll
    extension=php_mcrypt.dll
    extension=php_mime_magic.dll
    extension=php_ming.dll
    extension=php_mysql.dll
    extension=php_openssl.dll
    extension=php_pdo.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_pgsql.dll
    extension=php_pgsql.dll
    extension=php_zip.dll
    extension=php_mysqli.dll
    extension=php_pdo_sqlite.dll

(5) 找到:disable_functions =
    该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数,设置为(只有一行,无
    换行,做测试时可以不改这个配置):
    disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

(6) 新建文件夹C:\PHP5\Temp,设置
    upload_tmp_dir="C:\PHP5\Temp"
    session.save_path="C:\PHP5\Temp"
    session.auto_start = 1

(7) 在大多数 web 服务器中以 CGI 方式运行 PHP 时很有必要用 cgi.force_redirect 提
供安全。PHP 默认其为 On。可以将其关闭,但风险自担。Windows 用户可以安全地在 IIS
之下将其关闭,事实上必须这么做。要在 OmniHTTPD 或 Xitami 下使用也必须将其关闭。
    cgi.force_redirect = 0
    cgi.fix_pathinfo = 1

(8) 有些论坛(比如Discuz)还需要设置
    short_open_tag = On
    该设置决定是否允许使用 PHP 代码开始标志的缩写形式(<? ?> )。

(9) 保存 php.ini 文件。基本设置完成,其他设置在以后需要的时候再更改即可。


(10) 其他说明

不需要在path环境变量增加:C:\PHP5\ext;C:\PHP5;
只需在配置的extension_dir里写设好扩展的目录即可。

不需要增加一个环境变量PHPRC "C:\php"

没必要把php.ini文件复制到C:\WINDOWS,只有web服务器用IIS的时候才需要。

没必要把 register_globals = Off 修改成 register_globals = On,这个注册为全局变量
的配置影响到php如何接收传递过来的参数,为了兼容老php程序时才设置为On。

doc_root和user_dir都不设置。通过配置文件内的 doc_root 或设置环境变量
PHP_DOCUMENT_ROOT 来定义 PHP 脚本主目录。如果设置了该项,那么 PHP 就只会解释
doc_root 目录下的文件,并确保目录外的脚本不会被 PHP 解释器执行。


四、配置PHP-Fastcgi服务启动脚本
不要直接启动php-cgi.exe进程,用脚本可以增强了phpcgi的健壮!phpcgi进程无故崩溃后
可以重建进程!

解压 PHP-FastCGI-Script-1.0-RC1.zip,把 PHP-Fastcgi 服务启动脚本 phpfcgi.cmd
放到 C:\PHP5 目录里,修改以下设置为正确值(php的主目录、FastCGI执行文件名):

SET ROOT=C:\PHP5
SET EXEC=php-cgi.exe

phpfcgi.cmd支持参数启动,不需要手动设置,但直接启动phpfcgi.cmd或者参数启动都会出
现一个cmd窗口在任务栏,容易误关闭,隐藏它的方法有:
(1) 小工具Hide it.EXE,可以把任务栏的窗口、桌面图标的等选择隐藏。

(2) RunHiddenConsole.exe命令行工具,用它来启动程序即可隐藏,该工具可以在 NPMserv
集成包里找到,
ftp://ftp_dl:hzhucom@www.afen.cn/NPMserv0.4.0.rar
我第一次见到这个工具是在一篇《Lighttpd php fastcgi Windows 安装》的文章里:
http://blog.csdn.net/Matt_Hwang/archive/2007/11/03/1865156.aspx
这里的地址已经不能下载,使用示例(这个是直接启动php-cgi服务,容易崩溃):
RunHiddenConsole.exe ..\..\PHP5\php-cgi.exe -b 127.0.0.1:1026 -q

(3) START /B命令,不过对于这个phpfcgi.cmd无效,使用示例:
START /B lighttpd.exe -f conf\lighttpd-srv.conf -m lib

(4) 注册为服务启动(未测试),有Instsrv.exe和Srvany.exe及其他小工具。
在 Windows Server 2003 Resource Kit Tools 里有:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Instsrv.exe: Service Installer
Srvany.exe: Applications as Services Utility

LightTPD-Win32的bin目录里也带Instsrv.exe

mongoose安装后也带srvany.exe

(5) 我推荐的方法就是在gpedit.msc组策略的用户设置里使用登陆脚本(计算机设置里叫开
机脚本)调用phpfcgi.cmd,不需要额外的工具。登陆脚本启动批处理文件是不显示cmd窗口
的,不过进程里还是有一个cmd.exe。但是使用开机脚本也有不方便的地方,比如要重启
php-cgi进程时又会重新出现cmd窗口,开机的时候也稍微慢一点。好处是:作为类似服务启
动的方式运行php-cgi服务很不错,不需要手动启动,而且用脚本方便启动及停止服务。

下面是 启动/重启/停止phpfcgi服务的批处理,测试时候可以直接运行,也可以设置为登陆
脚本、注销脚本。我这里因为要测试多个Web服务器,所以就把php-cgi单独写一个脚本了,
如果是单一服务器,比如只用LightTPD或nginx,可以和启动Web服务的脚本写到一起。

登陆脚本(re)start-phpfcgi.bat
@echo off
taskkill /f /im php-cgi.exe 2>NUL
echo.
echo Starting PHP FastCGI...
call "C:\PHP5\phpfcgi.cmd" -b 127.0.0.1 -p 1026 -c 5 -r
goto :EOF


注销脚本stop-phpfcgi.bat(下面内容就这样写才达到效果的)
@taskkill /f /im php-cgi.exe
@ping 128.1 -n 1 -w 2000 >NUL
@taskkill /f /im php-cgi.exe >NUL 2>NUL
@taskkill /f /im cmd.exe >NUL 2>&1


关闭进程除了用taskkill还可以用工具process.exe,在上面提到的NPMserv和
LightTPD-Win32里都有,使用示例:
process.exe -k php-cgi.exe >nul


五、测试 PHP 支持是否正常
(1) Web服务器及php-cgi服务启动后,进入 C:\Web\root\ 目录,新建一个 phpinfo.php
文件,内容为:
<?php
phpinfo();
?>

再新建一个robots.txt文件防止搜索引擎的爬虫,按照Discuz、PHPWind论坛程序里的写一
个即可,这个文件一定要放在网站根目录。

(2) 打开浏览器,输入:http://127.0.0.1/phpinfo.php
如果能够正常显示PHP支持信息则表明安装配置成功。


六、安装eAccelerator
解压 eAccelerator-0953 for PHP 5.2.10-Win32.rar 得到 eAccelerator0953_5.2.10.dll
重命名为 eAccelerator.dll 后放到 C:\PHP5\ext 文件夹里。

建立 C:\PHP5\Temp\eAccelerator 文件夹,在 C:\PHP5\php.ini 文件末尾添加下面内容:

extension="eAccelerator.dll"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="C:\PHP5\Temp\eAccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"


七、安装ImageMagick
安装 ImageMagick-6.5.4-2-Q16-windows-dll.exe 到 C:\Web\ImageMagick 即可,安装选
项只需要选择把安装路径加入path环境变量里,不需要创建桌面快捷方式(指向的是图像编
辑exe工具),无其他特别设置。


八、安装pear
pear是PHP的扩展和应用程序库,包含了很多有用的类,安装好php5.0后,pear实际上并没
有被安装,安装的方法如下:
(1) 在php5目录中双击go-pear.bat,第一步选择输入默认的system,不用local。
(2) 按照提示输入一些设置信息,主要是更改pear.ini的路径到C:\PHP5
(3) 然后会提示一些包和PHP绑定,基本上一路回车及选择Y即可。
(4) 双击导入go-pear.bat生成的注册表文件PEAR_ENV.reg。

安装后生成:
pear.bat
peardev.bat
pecl.bat

然后 pear list 即可查看安装的包,pear install 即可安装外部的 pear 包。


九、安装 Zend Optimizer
双击 ZendOptimizer-3.3.3-Windows-i386.exe 文件,安装目录指定为 C:\Web\Zend
安装过程比较简单,但需注意以下几点:
(1) 关闭php-cgi服务、关闭web服务器。
(2) 选择“Other Web server”
(3) 在安装过程中提示 php.ini 的位置改为 C:\PHP5
(3) 安装过程中提示网站根目录的位置,指定为 C:\Web\root
Zend Optimizer 安装完成后会提示重启web服务器,不用管它,一直yes即可。


十、再次检查安装是否正确
启动Web服务器、php-cgi服务,浏览器打开网址
http://127.0.0.1/phpinfo.php 查看
phpinfo.php 支持信息,观察 PHP Credits 上方是否包含了 eAccelerator 和
Zend Optimizer 支持信息,有则说明安装成功。
查看 PHP Core 里的 include_path 是否包含有 C:\php5\pear

最后,修改 C:\PHP5\php.ini 文件,将 phpinfo 函数加入到 disable_functions 中。

安装完毕。

  评论这张
 
阅读(2815)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018