将php从5.1升级到5.2.10后,我在php -v
:
# php -v
PHP Warning: PHP Startup: fileinfo: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mhash: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mssql: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: readline: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: tidy: Unable to initialize module
Module compiled with module API=20050922, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=0
These options need to match
in Unknown on line 0
PHP 5.2.10 (cli) (built: Nov 13 2009 11:24:03)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
我该如何解决?谢谢!
答案 0 :(得分:17)
看起来您尚未升级PHP模块,它们不兼容。
检查php.ini中的extension_dir指令。它应该指向具有5.2模块的文件夹。
由于您进行了升级,因此您可能正在使用指向5.1模块的旧php.ini
答案 1 :(得分:11)
尝试使用pecl命令
升级每个模块# pecl upgrade fileinfo
# pecl upgrade memcache
# pecl upgrade mhash
# pecl upgrade readline
等...
答案 2 :(得分:10)
brew reinstall php56-mcrypt --build-from-source
执行此操作 - 为需要使用相同版本编译的每个模块传递--build-from-source
标志。
根据您的插件,它可能还需要PHP选项。如果是,brew reinstall php56 --with-thread-safety
要查看php [版本]的所有选项,请运行brew options php56
(用您的版本替换56)
答案 3 :(得分:2)
删除无法初始化的模块并重新安装。
答案 4 :(得分:0)
这只是描述了为什么我遇到这个问题以防有人发现它有用。
我的问题是我用自制软件升级了php并且在某些时候强制我的配置文件或bashrc文件中的变量PHP_INI_SCAN_DIR所以它指向旧的PHP版本。删除该行并修复。
答案 5 :(得分:0)
当我尝试安装较新版本的PHP
时,发生了这种情况。在发现我还需要重新配置Apache之后,我又回到了旧的PHP版本。这个解决方案对我有用:
将httpd.conf更改为正确的版本:
PHPIniDir ...
LoadModule php5_module ...
更改了
PATH - Environment Variable
如果没有任何效果
rename or delete the new PHP(-Version)-Folder
出于某种原因,最后一步为我做了诀窍。即使在重新启动之后,它也没有效果。
答案 6 :(得分:0)
如果您使用自制软件安装php,请检查您的apache2.conf文件是否使用自制的php5.so文件。
答案 7 :(得分:0)
就我而言,在Windows Server 2008中,我不得不更改PATH
变量。
PHP(VC9)的旧版本就在其中。
我已使用较新版本的PHP(VC11)更改了它。
重启Apache后,没关系。
答案 8 :(得分:0)
这是一个旧线程,但在尝试解决类似问题时我偶然发现了它。
对我来说,我得到了与php_wincache.dll
有关的特殊错误。我正在Windows服务器上将PHP从5.5.38更新到5.6.31。出于某种原因,并非所有DLL文件都使用最新版本进行更新。大多数人做了,但有些人做不到。
因此,如果您收到与此类似的错误,请确保所有扩展程序都已就位并已更新。