PHP警告:模块已经在第0行的Unknown中加载

问题描述 投票:41回答:10

在Mac OS X Mavericks使用自制软件php55每当我运行php命令时,我收到以下错误消息(一切运行正常它只是烦人)

PHP Warning:  Module 'intl' already loaded in Unknown on line 0

我跑了

php --ini

而输出是

php --ini
PHP Warning:  Module 'intl' already loaded in Unknown on line 0

Warning: Module 'intl' already loaded in Unknown on line 0
Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.5/conf.d/ext-apcu.ini,
/usr/local/etc/php/5.5/conf.d/ext-igbinary.ini,
/usr/local/etc/php/5.5/conf.d/ext-intl.ini,
/usr/local/etc/php/5.5/conf.d/ext-memcached.ini,
/usr/local/etc/php/5.5/conf.d/ext-mongo.ini,
/usr/local/etc/php/5.5/conf.d/ext-uuid.ini,
/usr/local/etc/php/5.5/conf.d/ext-xdebug.ini

在php.ini文件中检查并且加载了intl的唯一位置在顶部并且它被注释掉了。其他文件内容如下所示:

extension="/usr/local/Cellar/php55/5.5.23/lib/php/extensions/no-debug-non-zts-20121212/intl.so"

最后一个斜杠后面的内容是扩展名。

我不知道还能在哪里看。

任何帮助表示赞赏

php configuration ini intl
10个回答
45
投票

我认为你在Xdebug上加载php.ini可能两次。

  1. 检查php.ini,你没有xdebug.so的值extension=zend_extension=
  2. 检查/etc/php5/apache2/etc/php5/cli/。你不应该在这个目录中的每个php.ini中加载扩展名xdebug.so。只有一个文件php.ini应该加载它。

0
投票

php.ini中注释掉这两行

;extension=imagick.so
;extension="ixed.5.6.lin"

它应该解决问题。


-1
投票

我遇到了类似的问题,问题是扩展intl是重复的。

您可以检入文件C:/xampp/php/php.ini并找到“intl”。在我的情况下,extension = intl已经存在并且我再次滚动并找到第二个intl“extension = php_intl.dll”。

扩展必须执行一次才能再次执行扩展intl。这将显示错误,例如“Module'intll'已经加载”。

我通过使用像这个extension=php_intl.dll这样的“;”评论;extension=php_intl.dll来修复它。并重新启动了apache服务。


14
投票

我在mac上也有同样的问题,即Warning: Module 'pdo_pgsql' already loaded in Unknown on line 0。这是我解决它的方式。

  • 找到文件夹conf.d,我的目录在/usr/local/etc/php/7.0/conf.d目录中。
  • 在这个文件夹中,有一个名为ext-pdo_pgsql.ini的文件。
  • 输入sudo nano ext-pdo_pgsql.ini进行编辑。
  • 应该有一条线extension="/usr/local/opt/php70-pdo-pgsql/pdo_pgsql.so"。通过在行的开头添加分号来评论它,即;extension="/usr/local/opt/php70-pdo-pgsql/pdo_pgsql.so"
  • 保存文件。 (我通常运行control + O,control + M)。
  • 退出文件(control + X)。

希望这有助于某人。


4
投票

你应该有一个/etc/php2/conf.d目录(至少在我做的Ubuntu上)包含一堆.ini文件,这些文件在php运行时都会被加载。这些文件可能包含与php.ini中的设置冲突的重复设置。在我的PHP安装中,我注意到一个带有conf.d/20-intl.ini设置的文件extension=intl.so。我打赌那是你的冲突。


4
投票

要解决此问题,您必须编辑php.ini(或extensions.ini)文件并注释掉已编译的扩展。例如,编辑后,您的ini文件可能如下所示:

;extension=pcre.so
;extension=spl.so

资料来源:http://www.somacon.com/p520.php


1
投票

从Fedora Server 24(PHP 5)升级到25(PHP 7)后,我遇到了同样的问题。经过调查,我发现/etc/php.d/有两个不同的.ini文件加载extension=geoip.so

以前版本的发行版有一个名为50-geoip.ini的文件,但最近更改为40-geoip.ini,我怀疑在版本升级过程中旧版本尚未删除,而新版本已创建。

这就是问题的实际情况。在从50-geoip.ini移除流浪的/etc/php.d/并重新启动httpd后,它刚刚完美无缺。


1
投票

我删除了/etc/php5/cli/conf.d中的20-mongo.ini文件,这解决了这个问题。


1
投票

在我的情况下,我在php.ini中解析了; extension = php_curl.so,但是Ubuntu已经在其他地方调用了这个扩展名。

为了找到这个“其他地方”,在php.ini上将是informe。在我的情况下:/etc/php/7.1/apache2/conf.d/20-curl.ini是路径。

所以现在我们编辑这个文件(终端):

sudo nano /etc/php/7.1/apache2/conf.d/20-curl.ini

评论; extension = php_curl.so

保存文件并重启apache:

sudo systemctl restart apache2

0
投票

在872和968个数字行的php.ini文件中有两个“php_intl.dll”文件。如果php警告模块'intl'已在第0行的未知中加载,则此消息将集中在您的CLI上。然后你应该删除第872行的半圆形前缀。我希望这将完成.....


0
投票

只是为了记录,因为它可能会帮助其他共享主机(cPanel)。

我在共享主机php7.2上遇到错误:模块'imagick'已经在第0行的Unknown中加载了

最初的托管服务提供商说这是我糟糕的配置(运行Yii2.16)。但在我向他们展示之后,所有互联网都将这个问题与服务器配置相关联 - 他们开始听我说。经过我的证明,php7.1上没有错误,他们开始搜索错误。

正如他们告诉我的那样 - 错误是由于PERL模块或PEAR包中的配置,但他们没有告诉我真正的问题。

因此,如果您在共享主机上 - 与您的提供商交谈并尝试PHP版本(如果您可以更改它们)。

© www.soinside.com 2019 - 2024. All rights reserved.