[英]PHP module is already loaded warning
刚刚注意到,PHP 在 CLI 上执行时会抛出警告:
php 模块已经加载
$ php -v
PHP Warning: Module 'PDO' already loaded in Unknown on line 0
PHP Warning: Module 'calendar' already loaded in Unknown on line 0
PHP Warning: Module 'ctype' already loaded in Unknown on line 0
PHP Warning: Module 'exif' already loaded in Unknown on line 0
PHP Warning: Module 'fileinfo' already loaded in Unknown on line 0
PHP Warning: Module 'ftp' already loaded in Unknown on line 0
PHP Warning: Module 'gettext' already loaded in Unknown on line 0
PHP Warning: Module 'iconv' already loaded in Unknown on line 0
PHP Warning: Module 'Phar' already loaded in Unknown on line 0
PHP Warning: Module 'posix' already loaded in Unknown on line 0
PHP Warning: Module 'shmop' already loaded in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/sockets.so' - /usr/lib/php/20151012/sockets.so: undefined symbol: php_network_gethostbyname in Unknown on line 0
PHP Warning: Module 'sysvmsg' already loaded in Unknown on line 0
PHP Warning: Module 'sysvsem' already loaded in Unknown on line 0
PHP Warning: Module 'sysvshm' already loaded in Unknown on line 0
PHP Warning: Module 'tokenizer' already loaded in Unknown on line 0
PHP 7.0.3-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
with Xdebug v2.4.0RC4, Copyright (c) 2002-2016, by Derick Rethans
我知道,如何防止它们——只需从/etc/php/7.0/cli/conf.d/{extname}.ini
文件中删除extension={extname}.so
。 但是:
删除 INI 文件中的这一行是解决方案还是只是避免警告消息的解决方法? 会因此产生任何副作用吗? 为什么会发生/问题实际上是由什么引起的?
您可能已经在 php.ini 文件中两次加载了显示的扩展。
您可以搜索文件夹 /etc/php/7.0,您将在其子文件夹中找到 php.ini 文件,最有可能在:
如果您在这些 php.ini 文件中看到一些extension=something.so重复两次,您可以将其从一个文件中删除,或者如果警告仍然显示从两个文件中删除。
Linux 上的 PHP 通常会扫描子文件夹以获取更多配置文件,这就是本例中发生的情况。
Configuration File (php.ini) Path => /etc/php/7.0/cli Loaded
Configuration File => /etc/php/7.0/cli/php.ini Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d
Additional .ini files parsed =>
/etc/php/7.0/cli/conf.d/10-opcache.ini,
/etc/php/7.0/cli/conf.d/10-pdo.ini,
/etc/php/7.0/cli/conf.d/20-calendar.ini,
/etc/php/7.0/cli/conf.d/20-ctype.ini,
/etc/php/7.0/cli/conf.d/20-curl.ini,
/etc/php/7.0/cli/conf.d/20-exif.ini,
/etc/php/7.0/cli/conf.d/20-fileinfo.ini,
/etc/php/7.0/cli/conf.d/20-ftp.ini,
/etc/php/7.0/cli/conf.d/20-gettext.ini,
/etc/php/7.0/cli/conf.d/20-iconv.ini,
/etc/php/7.0/cli/conf.d/20-json.ini,
/etc/php/7.0/cli/conf.d/20-mcrypt.ini,
/etc/php/7.0/cli/conf.d/20-mongodb.ini,
/etc/php/7.0/cli/conf.d/20-mysqli.ini,
/etc/php/7.0/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.0/cli/conf.d/20-pdo_sqlite.ini,
/etc/php/7.0/cli/conf.d/20-phar.ini,
/etc/php/7.0/cli/conf.d/20-posix.ini,
/etc/php/7.0/cli/conf.d/20-readline.ini,
/etc/php/7.0/cli/conf.d/20-shmop.ini,
/etc/php/7.0/cli/conf.d/20-sockets.ini,
/etc/php/7.0/cli/conf.d/20-sqlite3.ini,
/etc/php/7.0/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.0/cli/conf.d/20-sysvsem.ini,
/etc/php/7.0/cli/conf.d/20-sysvshm.ini,
/etc/php/7.0/cli/conf.d/20-tokenizer.ini,
/etc/php/7.0/cli/conf.d/20-xdebug.ini,
/etc/php/7.0/cli/conf.d/20-xsl.ini
一点点浏览 PHP 扫描文件夹/etc/php/7.0/cli/
并找到一个php.ini
,它告诉它在名为conf.d
的子目录中应该有更多配置(ini)文件,并且每个模块通常都有自己的 ini 文件在 Linux 和更高版本的 PHP 上。
回答问题“删除 INI 文件中的这一行是解决方案还是只是避免警告消息的解决方法?”
老实说,我喜欢将每个模块的配置放在一个单独的文件中,但是如果你想在php.ini
文件中配置模块,你可以删除conf.d
中的文件。 我只是发现它变得混乱。
这发生在我身上我安装的时候php-mbstring
使用sudo apt-get install php-mbstring
并启用了extension=mbstring
在我php.ini
。
PHP看看两个mbstring
插件。 一个在已安装的包中,第二个在 php.ini 中启用的包中
解决办法是禁用php.ini中的插件
;extension=bz2
;extension=curl
;extension=fileinfo
;extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=interbase
;extension=ldap
;extension=mbstring
PHP 多次加载模块。 查找并删除额外的php.ini
文件。
.
<?php
phpinfo();
php.ini
的位置。 转到磁盘并将其重命名为php.ini.bak
。php.ini
所在的位置。 那是复制品。检查 /etc/php5/apache2/php.ini 和 /etc/php5/cli/php.ini。 您不应在此目录中的每个 php.ini 中加载扩展名 xdebug.so。 只有一个 php.ini 应该加载它。 PHP 警告:模块已在第 0 行的 Unknown 中加载
我有同样的问题。 我已经更新了我的 PHP 版本并清除了这个问题。
出于某种原因,该问题源于composer.lock
文件的不连贯状态。 在 Composer 更新(当然还运行我所有的单元测试以确保没有任何问题)之后,错误消失了,并且 Composer 运行是干净的。
对于登陆此页面的人来说,这只是一个提示。
只需从 cpanel 降级您的 PHP 版本!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.