我试图使用WampServer上的说明将5.5.38NTS版本的PHP添加到运行在PC上的PHP2.5中。
您可能知道,PHP2.5附带了一个线程安全5.5.12版本的WampServer,但我想运行需要NTS版本的ZendLoader。
在添加PHP5.5.38并打开我的网站的登录页面后,我得到
致命错误:在C:\wamp\www\db_connect.php中找不到'mysqli‘类
php_error.log包含php.ini文件试图加载的每个php.ini警告,如
PHP警告: PHP启动:无法加载动态库c:/wamp/bin/php/php5.5.38/ext/php_bz2.dll--无法找到指定的模块。在第0行中未知
毫不奇怪,php_mysqli.dll也是其中之一:
PHP警告: PHP启动:无法加载动态库'c:/wamp/bin/php/php5.5.38/ext/php_mysqli.dll‘-无法找到指定的模块。在第0行中未知
我在php.ini和phpForApache.ini文件中将phpForApache.ini设置为:
extension_dir = "c:/wamp/bin/php/php5.5.38/ext/"我已经验证了路径名,并且所有的.dll文件都在那里。
由于一些奇怪的原因,phpinfo()说我仍然在运行线程安全版本:
PHP5.5.12版本线程安全:启用
尽管WampServer菜单显示为PHP版本5.5.38
当我通过菜单退出WampServer,将php5.5.12目录重命名为c:\wamp\bin\php中的_php5.5.12,然后尝试重新启动Wampserver时,它将不会启动,并得到以下应用程序错误:
模块wampmanager.exe在000F15AO处的异常异常。无法执行运行操作:系统找不到指定的文件。
EventViewer显示:
故障应用程序名:wampmanager.exe,版本: 1.6.1.33,时间戳: 0x2a425e19故障模块名称: KERNELBASE.dll,版本: 10.0.16299.402,时间戳: 0x81d25214异常代码:0x0eeddeffff12故障处理进程id: 0xfa0故障处理启动时间: 0x01d3e9deceef27f0故障应用程序路径: C:\wamp\wampmanager.exe故障模块路径: C:\WINDOWS\System32\KERNELBASE.dll报告Id: 6f09b108-4472-4d89-8d51-9c69b53100db故障包全名:故障处理包-相对应用程序ID: 事件ID: 1000级别:错误
它似乎在我重命名的5.5.12 PHP目录中寻找某个文件,我不知道是什么文件,也不知道为什么。我想知道这是否是WampServer未能加载DLL文件的原因,以及为什么它认为它正在运行PHP5.5.12。
关于如何让PHP5.5.38NTS工作以便运行ZendLoader的想法?
发布于 2018-05-13 15:28:31
感谢所有看过这个问题的人。
我发现问题出在Apache上,而且mod_php不支持NTS版本的PHP,所以我选择了FastCGI。
使用https://websanova.com/blog/php/manually-adding-php-versions-to-wamp上的说明和https://commaster.net/content/installing-php-fastcgi-and-zend-opcache-wampserver上的指令,我用Zend /Zend配置了Apache和PHP,一切都很好。
希望这能帮助其他面临这个问题的人。
https://stackoverflow.com/questions/50305863
复制相似问题