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

时间:2015-09-24 15:13:29

标签: php configuration ini intl

在Mac OSX 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"

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

我不确定在哪里可以看。

感谢任何帮助

17 个答案:

答案 0 :(得分:44)

我认为您在Xdebug中可能已加载php.ini两次。

  1. 检查php.ini,您没有xdebug.so来查看值extension=zend_extension=

  2. 同时检查/etc/php5/apache2/etc/php5/cli/。您不应在此目录中的每个php.ini中加载扩展名xdebug.so。只有一个文件php.ini应加载它。

答案 1 :(得分:12)

我在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 )。

希望这有助于某人。

答案 2 :(得分:4)

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

答案 3 :(得分:3)

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

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

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

答案 4 :(得分:2)

对于共享主机,我在cPanel中取消选中“选择PHP版本”>“扩展”下的相关模块,PHP 7.4的错误消失了。

答案 5 :(得分:1)

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

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

这就是问题的实际情况。从50-geoip.ini移除迷路/etc/php.d/并重新启动httpd后,它就完美无缺地工作了。

答案 6 :(得分:1)

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

答案 7 :(得分:1)

For issue related to code igniter project upload,
go to the base directory index.php and add this code:

if ($_SERVER['SERVER_NAME'] == 'local_server_name') {
    define('ENVIRONMENT', 'development');
} else {
    define('ENVIRONMENT', 'production');
}

if (defined('ENVIRONMENT')){
    switch (ENVIRONMENT){
        case 'development':
            error_reporting(E_ALL);
        break;

        case 'testing':
        case 'production':
            error_reporting(0);
        break;

        default:
            exit('The application environment is not set correctly.');
    }
}


    define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

答案 8 :(得分:1)

我通过打印PHP配置并通过xml.ini搜索来解决这个问题。注意以下输出中如何两次加载xml(首先是20-xml.ini,然后是xml.ini):

$ php -i | grep xml
/etc/php.d/20-simplexml.ini,
/etc/php.d/20-xml.ini,
/etc/php.d/20-xmlwriter.ini,
/etc/php.d/30-xmlreader.ini,
/etc/php.d/xml.ini
xmlrpc_error_number => 0 => 0
xmlrpc_errors => Off => Off
libxml Version => 2.9.1
libxml
mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml\+xml) => ^(text /|application/xhtml\+xml)
xml
libxml2 Version => 2.9.1
xmlreader
xmlwriter
libxslt compiled against libxml Version => 2.9.1

答案 9 :(得分:0)

我遇到了同样的问题,所以我评论了 extension=mysqli,因为我将它包含在运行 sql server 中。 检查是否取消了这个 extension=mysqli 的注释 如果是,将 ; 放在 php.ini 中

答案 10 :(得分:0)

我在带有 PHP 7.2.10 的 Windows 10 中使用 WAMP。我能够通过注释 wamp64\bin\php\php7.2.10 内的 php.ini 中的行 extension=ftp 来解决它。

我不确定,但我猜为什么会发生这种情况是因为 wamp64\bin\apache\apache2.4.35\bin 中的 php.ini 已经加载了这个模块。

重启后请务必重启WAMP的所有服务。

答案 11 :(得分:0)

如果您使用共享主机,只需应用默认的 php 设置。 Cpanel 将 php 设置覆盖为默认值。

答案 12 :(得分:0)

在Windows 10中,我通过这样的注释来解决此问题

;extension=php_sockets.dll

答案 13 :(得分:0)

php.ini

中注释这两行
;extension=imagick.so
;extension="ixed.5.6.lin"

它应该解决该问题。

答案 14 :(得分:0)

仅作记录,因为它可能会帮助共享主机(cPanel)上的其他人。

我在共享主机php7.2上出错: 模块“ imagick”已在第0行的“未知”中加载

开始时,托管服务提供商说这是我的错误配置(运行Yii2.16)。但是在我向他们展示之后,所有的Internet都将此问题与服务器配置相关联-他们开始听我的话。在我证明php7.1上没有错误之后,他们开始寻找错误。

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

因此,如果您使用共享主机,请与您的提供商联系并尝试使用PHP版本(如果可以更改它们的话)。

答案 15 :(得分:0)

在我的情况下,我在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

答案 16 :(得分:-1)

我有一个类似的问题,问题是扩展名intl被重复。

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

该扩展必须执行一次才能再次执行扩展intl。这将显示类似“模块'intl'已加载”的错误。

我通过使用extension=php_intl.dll这样的“ ;”注释掉了;extension=php_intl.dll来解决了这个问题。并重新启动了apache服务。