求助:在WampServer中添加PHP 5.5.38 NTS版本以运行ZendLoader
解决WampServer 2.5中PHP 5.5.38 NTS版本无法正常运行及ZendLoader启用问题
你的问题核心在于WampServer默认是为Thread Safe(TS)版本PHP设计的,NTS版本无法直接以Apache模块的方式运行,这也是为什么你看到菜单显示5.5.38但phpinfo()还是旧TS版本、扩展dll加载失败的原因。下面是具体的解决步骤:
1. 正确准备PHP 5.5.38 NTS环境
- 下载对应PHP 5.5.38的NTS x86版本(WampServer 2.5通常是32位环境,别选错架构),解压到Wamp根目录的
bin/php文件夹下,建议命名为php5.5.38nts(方便区分TS版本)。 - 复制该目录下的
php.ini-development(开发环境)或php.ini-production(生产环境),分别重命名为php.ini和phpForApache.ini——WampServer会读取这两个配置文件。
2. 配置PHP.ini与扩展
- 打开
php5.5.38nts/php.ini,设置正确的extension_dir路径,比如:
注意用绝对路径,且路径分隔符用正斜杠extension_dir = "C:/wamp/bin/php/php5.5.38nts/ext/"/或双反斜杠\\。 - 启用需要的扩展:找到
;extension=php_mysqli.dll、;extension=php_bz2.dll这些行,去掉前面的分号;,保存文件。 - 配置ZendLoader:确保你下载的是对应PHP 5.5 NTS x86版本的ZendLoader,把
ZendLoader.dll放到php5.5.38nts/ext目录下,然后在php.ini末尾添加:zend_extension="C:/wamp/bin/php/php5.5.38nts/ext/ZendLoader.dll" zend_loader.enable=1 zend_loader.disable_licensing=0 zend_loader.obfuscation_level_support=3 zend_loader.license_path=
3. 修改Apache配置,切换为CGI模式加载NTS PHP
WampServer默认用模块模式加载TS PHP,NTS版本只能用CGI/FPM模式,所以需要调整Apache配置:
- 打开Wamp目录下
bin/apache/apache2.4.9/conf/extra/httpd-php.conf(注意你的Apache版本可能不同,路径对应调整)。 - 注释掉原来的PHP模块加载代码,比如:
#LoadModule php5_module "${path_php}/php5apache2_4.dll" #AddHandler application/x-httpd-php .php #PHPIniDir "${path_php}" - 添加CGI模式的配置:
ScriptAlias /php-cgi/ "C:/wamp/bin/php/php5.5.38nts/" Action application/x-httpd-php "/php-cgi/php-cgi.exe" AddHandler application/x-httpd-php .php PHPIniDir "C:/wamp/bin/php/php5.5.38nts/" - 确保Apache的
mod_cgi模块已启用:打开bin/apache/apache2.4.9/conf/httpd.conf,找到LoadModule cgi_module modules/mod_cgi.so,确保前面没有注释(如果有,去掉分号)。
4. 同步WampServer菜单与实际PHP版本
- 打开Wamp根目录下的
wampmanager.conf文件。 - 修改以下两个参数:
phpVersion = "5.5.38nts" phpDir = "bin/php/php5.5.38nts" - 保存后重启WampServer,此时菜单显示的PHP版本应该和实际运行的一致。
5. 修复旧PHP目录依赖问题
不要直接删除或重命名旧的php5.5.12目录,WampServer的一些底层脚本可能依赖它的存在。等你确认新的NTS PHP完全正常运行后,再考虑备份旧目录并清理——如果已经重命名导致Wamp无法启动,先把旧目录改回原来的名字,再按上面的步骤重新配置。
6. 验证配置是否生效
- 重启WampServer,确保Apache能正常启动。
- 创建一个
phpinfo.php文件放到Wamp的www目录,内容为:<?php phpinfo(); ?> - 访问
localhost/phpinfo.php,检查以下内容:- PHP版本是否为5.5.38
- Thread Safety项是否显示
Disabled(确认是NTS版本) - mysqli、bz2等扩展是否出现在Loaded Extensions列表中
- ZendLoader是否正常加载
内容的提问来源于stack exchange,提问作者user3495425
相关产品推荐
相关产品推荐

