系统:Windows Server 2003 r2 - IIS6
说明:PHP之所以选择Thread Safe版,是因为Zend Optimizer(一些php商业程序是用它加密的,比如shopex)只能用于Thread Safe版。
ps:FastCGI方式执行PHP不需要Thread Safe(线程安全检查),如果不用Zend Optimizer,PHP就用Non Thread Safe版,效率更高。eAccelerator也要选择与之对应的版本。
下载:
FastCGI:http://go.microsoft.com/?linkid=9707432
下载页面:http://www.iis.net/download/FastCGI
-----------------------------------------------------------------------------------
PHP 5.2.17(VC6 x86 Thread Safe):http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.zip
下载页面:http://windows.php.net/download/
-----------------------------------------------------------------------------------
Zend Optimizer v3.3.3:http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-Windows-i386.exe
下载页面:http://www.zend.com/en/products/guard/downloads
-----------------------------------------------------------------------------------
eAccelerator 0.9.5.3 for PHP 5.2.17(VC6编译):
http://bbs.netbarghost.com/thread-21938-1-1.html
一、安装PHP
将PHP 5.2.17解压到一个目录,比如D:/php,设置这个目录的权限为:Administrators(完全控制)、System(完全控制)、IIS_WPG(读取和运行)、ISUR_机器名(读取和运行),最好是去掉继承上级目录的权限,单独设置。
右键“我的电脑”,属性,高级,环境变量,Path,在最后添加D:/php,与前面部分用英文的 ; 号隔开,结尾不需要 ; 号。
将D:/php/php.ini-recommended改名为php.ini,双击打开配置php.ini。我列出我修改的部分,即去掉前面分号,并设置值,后面的中文字为说明,不能写入php.ini中。
保存好php.ini后,安装FastCGI,一路默认。安装完FastCGI后,打开C:/WINDOWS/system32/inetsrv/fcgiext.ini,在结尾处找到[Types],在其后加上
接着,打开你的IIS信息管理器,在你的站点上按右键,属性,主目录,配置,添加,可执行文件写上:C:/WINDOWS/system32/inetsrv/fcgiext.dll,扩展名写上:.php,动作限制为:GET,HEAD,POST,TRACE,确定。
到此,PHP已经配置完了,将以下代码保存到:网站根目录/p.php
自己访问一下,看是否正常显示。
二、安装Zend Optimizer
运行安装程序,下一步后,同意协议,下一步,选择安装目录,下一步,选择IIS6.0,下一步,选择php.ini所在目录,这里我选择D:/php/,下一步,选择网站根目录(多个网站目录的话,选择网站目录的上级目录)一直下一步,提示安装过程要重启IIS,yes,直至安装完成。
此时再打开你的网站/p.php
下面,会多出两行
这就是加载Zend Optimizer成功了。
三、安装eAccelerator
将php_eaccelerator.dll复制到PHP目录下的ext文件夹下,打开php.ini,在
后面添加:
(另起一行,不能在同一行),再把
剪贴到:
的前面,然后在[Zend]前面,加上
eaccelerator.shm_size:用来设置分配给eAccelerator用来缓存php的最大共享内存,单位是mb,如果设置为0,就使用默认大小。在linux系统中一个process能分配的最大内存是由/proc/sys/kernel/shmmax限制的,所以如果eA设置的内存超出了这个值,eA在初始化的时候会失败。shmmax的单位是字节(bytes)。
eaccelerator.cache_dir:用来设置硬盘缓存目录。eA用来存放预编译代码,session数据,内容和用户入口。默认值是"/tmp/eaccelerator"。
eaccelerator.enable:用来设置是否启用或禁用eAccelerator,设置1为启用,设置0为禁用。
eaccelerator.optimizer:开启或关闭优化,用户加速代码的执行。1为开启,0为关闭,优化仅仅在脚本被编译时候发生并且是在被缓存之前。
eaccelerator.check_mtime:在每次命中的时候Eaccelerator都会检查脚本的修改时间来判断是不是脚本发生的变化来决定是否需要重新编译。尽管检查比打开文件并编译要快,但仍然会带来一些开销的,因为每次都会有状态调用要完成。这个配置可以关闭这个检查。不过关闭检查带来的不利就是每次更新了文件需要认为手动的清除cache。默认检查是启用的,1是启用,0是禁用。
eaccelerator.debug:开启关闭debug日志。如果设置为1,将打印很多文件命中的信息到日志中。这个在排查eAccelerator的时候很有用。
eaccelerator.filter:用来决定哪个php文件被缓存。可以通过使用通配符(比如"*.php *.phtml")来匹配需要缓存的php脚本。如果以"!"开头,表示不匹配,这个参数默认是空,可以缓存所有编译好的php脚本需要注意的是eaccelerator.filter并不是基于URL工作的,而是基于文件的绝对路径,比如定义了"!/home"的话,那所有/home目录的脚本都不会被缓存。如果要定义多个匹配,使用空格或者制表符分开,而不是逗号。
eaccelerator.shm_max:设置内存缓存可以缓存文件的最大值。
eaccelerator.shm_ttl:当eAcelerator没有空余的共享内存的时候,就会把最少shm_ttl设置的秒数没访问过的脚本从缓存中释放掉,默认值是0,表示eA不会释放任何缓存。
eaccelerator.shm_prune_period:当没有足够的内存用来缓存的时候,eA会在上次清除缓存的时间超过了shm_prune_period设定的秒数时再次尝试清除过期的脚本。默认值为0,eA将不从缓存中清除过期的脚本。
eaccelerator.shm_only:启用或者禁用磁盘缓存。这个选项对session数据和内容的缓存没效果。默认值是0,允许eA使用磁盘和内存进行缓存。
eaccelerator.compress:当使用eaccelerator_content_* 的api时,eA可以在缓存前对内容进行压缩。默认值为1表示启用,禁用为0。
eaccelerator.compress_level:内容缓存的压缩等级。默认值为9,是最大压缩级别。
eaccelerator.log_file:设置eaccelerator日志的存放目录。如果这选项没有配置,则数据都被记录到stderr,如果使用php的是apache,则数据都被记录到apache的error log中。
eaccelerator.keys | session | content:这些设置控制着eA缓存用户内容的存放地点。可用的值有shm_and_disk 使用内存和磁盘进行缓存(默认值)shm 在内存中缓存数据,当内存满了或者数据大小超过了eaccelerator.shm_max设置的值就缓存到磁盘上shm_only 只使用内存缓存数据disk_only 只使用磁盘缓存数据none 不缓存数据。
eaccelerator.allowed_admin_path:控制面板所在目录,比如你的网站目录为D:/wwwroot/test/,可以建立一个文件夹eaccelerator,将control.php复制进里面,这里的值就为D:/wwwroot/test/eaccelerator
保存php.ini后,重启IIS,再次打开你的网站/p.php
会变成
这就是eAccelerator加载成功了。
四、开启你网站程序的eAccelerator功能
eAccelerator配置好后,会自动对php程序进行加速。但是,有的php程序可以主动调用eaccelerator的一些缓存功能,让程序运行更快,比如:discuz,将config目录下config_global.php里的$_config['memory']['eaccelerator']设置为 1 即可。
本帖最后由 mxw 于 2011-5-23 18:39 编辑 IIS6(FastCGI 1.5 for IIS 6) + PHP 5.2.17(VC6 x86 Thread Safe) + Zend Optimizer v3.3.3 + eAccelerator 0.9.5.3 for PHP 5.2.17 TS 安装配置详解 系统:Windows Server 2003 r2 - IIS6 说明:PHP之所以选择Thread Safe版,是因为Zend Optimizer(一些php商业程序是用它加密的,比如shopex)只能用于Thread Safe版。 ps:FastCGI方式执行PHP不需要Thread Safe(线程安全检查),如果不用Zend Optimizer,PHP就用Non Thread Safe版,效率更高。eAccelerator也要选择与之对应的版本。 下载: FastCGI:http://go.microsoft.com/?linkid=9707432 下载页面:http://www.iis.net/download/FastCGI ----------------------------------------------------------------------------------- PHP 5.2.17(VC6 x86 Thread Safe):http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.zip 下载页面:http://windows.php.net/download/ -----------------------------------------------------------------------------------Zend Optimizer v3.3.3:http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-Windows-i386.exe 下载页面:http://www.zend.com/en/products/guard/downloads -----------------------------------------------------------------------------------eAccelerator 0.9.5.3 for PHP 5.2.17(VC6编译): http://bbs.netbarghost.com/thread-21938-1-1.html 一、安装PHP 将PHP 5.2.17解压到一个目录,比如D:/php,设置这个目录的权限为:Administrators(完全控制)、System(完全控制)、IIS_WPG(读取和运行)、ISUR_机器名(读取和运行),最好是去掉继承上级目录的权限,单独设置。 右键“我的电脑”,属性,高级,环境变量,Path,在最后添加D:/php,与前面部分用英文的 ; 号隔开,结尾不需要 ; 号。 将D:/php/php.ini-recommended改名为php.ini,双击打开配置php.ini。我列出我修改的部分,即去掉前面分号,并设置值,后面的中文字为说明,不能写入php.ini中。
到此,PHP已经配置完了,将以下代码保存到:网站根目录/p.php
自己访问一下,看是否正常显示。 二、安装Zend Optimizer 运行安装程序,下一步后,同意协议,下一步,选择安装目录,下一步,选择IIS6.0,下一步,选择php.ini所在目录,这里我选择D:/php/,下一步,选择网站根目录(多个网站目录的话,选择网站目录的上级目录)一直下一步,提示安装过程要重启IIS,yes,直至安装完成。 此时再打开你的网站/p.php
三、安装eAccelerator 将php_eaccelerator.dll复制到PHP目录下的ext文件夹下,打开php.ini,在
剪切到
的前面,然后在[Zend]前面,加上
eaccelerator.shm_size:用来设置分配给eAccelerator用来缓存php的最大共享内存,单位是mb,如果设置为0,就使用默认大小。在linux系统中一个process能分配的最大内存是由/proc/sys/kernel/shmmax限制的,所以如果eA设置的内存超出了这个值,eA在初始化的时候会失败。shmmax的单位是字节(bytes)。 eaccelerator.allowed_admin_path:控制面板所在目录,比如你的网站目录为D:/wwwroot/test/,可以建立一个文件夹eaccelerator,将control.php复制进里面,这里的值就为D:/wwwroot/test/eaccelerator 保存php.ini后,重启IIS,再次打开你的网站/p.php
就会变成
四、开启你网站程序的eAccelerator功能 eAccelerator配置好后,会自动对php程序进行加速。但是,有的php程序可以主动调用eaccelerator的一些缓存功能,让程序运行更快,比如:discuz,将config目录下config_global.php里的$_config['memory']['eaccelerator']设置为 1 即可。
至此,已经全部配置完毕。 PS:eAccelerator为啥不用最新的0.9.6.1呢,因为,0.9.6开始,就取消了user cache功能,也就是步骤四中所说,php程序主动调用eAccelerator的缓存功能。0.9.5的最后版本就是0.9.5.3。 |