在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
最近PHP 5.2.12及5.2.13发布了,修复了多个bug,因此升级到这一版本是非常必要的。
首先说明一下我的一些参数:
操作系统: Windows 7 Ultimate
Web Server:Apache 2.2.14
Visual Studio: 6.0 (别嫌弃它版本老,即便是在Win7下它还是能用的,当然你用Visual Studio 2008也行)
什么是eAccelerator?
eaccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了性能php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。
1.首先下载编译好的PHP二进制包。(稍后会用到) 地址如下:
http://cn.php.net/distributions/php-5.2.12-Win32.zip
http://cn.php.net/distributions/php-5.2.13-Win32.zip
2.再下载PHP的源代码,稍后编译eAccelerator的时候会用到。地址如下:
http://cn2.php.net/get/php-5.2.12.tar.bz2/from/a/mirror
http://cn2.php.net/get/php-5.2.13.tar.bz2/from/a/mirror
3.升级PHP:
这一过程很简单,首先关闭Apache,然后将压缩包里解压出来的所有文件替换掉原来的文件即可。例如你原来的PHP程序文件位于 D:\php,那么请将php-5.2.13-Win32.zip(或者php-5.2.12-Win32.zip)解压到这一路径下覆盖原有文件。
4.启动Apache,我们会收到一条报错信息,Apache无法启动。打开Apache的日志文件(此文件路径为apache\logs\error.log),我们会看到这样的提示信息:
PHP Warning: [eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.2.11. Rebuild it for your PHP version (5.2.13) or download precompiled binaries.
意思就是当前的eAccelerator是为PHP 5.2.11编译的,不适用于5.2.13。我们应该重新编译一份eAccelerator。
5.下载一份eAccelerator的源码。地址如下:
http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.zip
6.将第2步骤下载到的PHP源码解压到某一目录下,例如 E:\php。然后打开你的PHP程序目录(也就是你的php.exe所在的目录),找到其中dev子目录下的php5ts.lib文件,把它复制到E:\php这一位置。
7.打开E:\php\ext,在这下面创建一个目录命名为eaccelerator,然后将第5步骤下载到的压缩包解压到此目录下。此时的目录结构应该是这样的:
8.打开win32子目录,其中应该有一个名叫eAccelerator.dsw的项目文件,用VS开发环境打开它(比如我用的就是VS6.0),打开”组件”>”配置”,选中 Win32 Release PHP5 这一选项,单击“关闭”。
9.按下F7键(或选择工具条中的编辑按钮)开始编译,稍等片刻,编译成功,你就可以在win32目录下看到生成了一个Release子目录,打开这个子目录,你就会看到已经生成了eAccelerator.dll文件。
将这个文件复制到你的PHP扩展目录下(如D:\php\ext),替换掉原有的文件,然后启动Apache,你就会发现eAccelerator已经成功加载了。
或者
Visual Studio 2008下编译可能会出现类似于“不能分配常量大小为 0 的数组”这样的报错信息,解决办法如下:
找到源码目录的main子目录,打开它,找到以下文件:
config.w32.h
在这个文件里查找 #define _USE_32BIT_TIME_T 1,将这一行注释掉。再重新编译即可。






2010年1月14日 at 21:17
原来这么简单
2010年2月26日 at 19:46
可不可以 把你编译好的 给我发一份啊 我编译的时候老是提示错误 谢谢了 我的php 5.2.13 的 也是 !
e-mail: jiahao1110@gmail.com
2010年3月2日 at 12:46
文章中已给出下载,谢谢关注。
2010年3月4日 at 19:48
博客模板不错啊很漂亮啊 继续加油啊兄弟顶你了啊 O(∩_∩)O哈哈~回踩啊谢谢济南seo(济南seo)
2010年3月5日 at 20:07
楼主,能不能在2003下编译下,你编这个在2003是不能运行的。
2010年3月6日 at 11:09
按照我这方法编译出来的5.2.12版是可以在Win2003下运行的(已测试过)。而我直接给出下载的5.2.13版是使用Visual Studio 2008编译的,你可能要先安装vc2008运行库才行。
2010年3月6日 at 21:59
好的,我去试试,谢谢楼主。
2010年3月7日 at 00:43
确实如你所说,加上VS2008运行库就正常了,非常感谢博主,帮了大忙,谢谢!!
2010年4月9日 at 03:14
请问下vs2008怎样编译。
(PHP 5.2.13 + eAccelerator 0.96)
能图解一下吗。从未使用过vs2008及系列。
2010年4月9日 at 10:36
0.96版编译的时候总是报错,不知道什么原因,建议编译一下0.9.5.3版。
过程我在文章中写了,VS2008编译与VS以前版本一样,打开项目后直接编译就行了。
2010年4月24日 at 10:23
感谢一下