PHP警告:PHP启动:????????:无法初始化模块

时间:2010-06-28 08:15:24

标签: php installation

将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

我该如何解决?谢谢!

9 个答案:

答案 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文件都使用最新版本进行更新。大多数人做了,但有些人做不到。

因此,如果您收到与此类似的错误,请确保所有扩展程序都已就位并已更新