45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > PHP教程 >

PHP Warning: Module ‘modulename’ already loaded in Unknown on line 0

电脑软硬件应用网 45IT.COM 时间:2012-11-02 12:52 作者:Snail

最近两天在安装phpunit的时候突然发现了一个问题,PHP总是报错PHP Warning: Module 'modulename' already loaded in Unknown on line 0,在linux下输入php –v查看php版本信息,也会报如上的错误。网上资料找了半天,搞清了真正的原因。下面我们看一下如何解决这个问题。

问题重现

当运行CLI版本的PHP命令行,您可能会收到以下错误:


[root@myserver /root]$ php -v
PHP Warning: Module 'pcre' already loaded in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so' - /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/spl.so: Undefined symbol "pcre_exec" in Unknown on line 0
PHP Warning: Module 'SimpleXML' already loaded in Unknown on line 0
PHP Warning: Module 'session' already loaded in Unknown on line 0
PHP Warning: Module 'exif' already loaded in Unknown on line 0
PHP 5.2.3 (cli) (built: Jun 14 2007 15:29:17)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies

问题原因

在PHP中有两种方式加载大多数的拓展。一是直接编译至PHP的二进制扩展,另一种是通过一个ini文件动态加载一个共享扩展。这些错误表明动态扩展通过ini文件被加载,即使他们已经编译成二进制。

解决办法

我们必须修改php.ini(or extensions.ini)并且注释掉那些已编译为二进制的拓展。例如,编辑后,你的ini文件看起来像下面的示例:

;extension=pcre.so
;extension=spl.so
;extension=simplexml.so
;extension=session.so
;extension=exif.so

你也可以删除这些行。一旦你已经禁用这些行,运行php – v,警告就消失了。

题外话

如果你想看看哪些拓展已经编译至你的PHP,运行以下命令

php –m

您还可以查看配置命令,该命令将显示哪些扩展是启用并进行,或建立作为共享、动态模块。

php -i | grep Configure

; Directory in which the loadable extensions (modules) reside. 

extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/"

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识