繁体   English   中英

PHP 警告:模块已在第 0 行的未知中加载

[英]PHP Warning: Module already loaded in Unknown on line 0

在使用自制 php55 的 Mac OSX Mavericks 上,每当我运行 aa 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.ini中可能已经加载了两次Xdebug

  1. 检查php.ini ,它没有为值extension=zend_extension=设置xdebug.so

  2. 还要检查/etc/php5/apache2/etc/php5/cli/ 您不应在这些目录中的每个php.ini中加载扩展名xdebug.so 只有一个文件, php.ini应该加载它。

    注意:路径里面是字符串/etc/php5 5是PHP的版本。 所以如果你使用另一个版本,你总是会得到一个不同的路径,比如php7

我在 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 + Ocontrol + M )。
  • 退出文件( control + X )。

希望这可以帮助某人。

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

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

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

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

在我的例子中,我取消了 php.ini 中的 ;extension=php_curl.so 的注释,但是 Ubuntu 已经在其他地方调用了这个扩展。

要找到这个“其他地方”,在 php.ini 上会通知。 就我而言: /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
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');

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

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

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

那是问题的实际情况。 /etc/php.d/中删除杂散50-geoip.ini并重新启动httpd后,它就完美地工作了。

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

我通过打印 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

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

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

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

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

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

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

php.ini中注释掉这两行

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

它应该解决这个问题。

在 Windows 10 中,我通过这样的评论来解决这个问题

;extension=php_sockets.dll

运行php --ini并注意Loaded Configuration File上的文件路径。
然后运行cat -n /etc/php/7.2/cli/php.ini | grep intl类的命令 cat -n /etc/php/7.2/cli/php.ini | grep intl查找扩展是否被注释。
然后通过添加注释行更新加载的配置文件; 比如;extension=intl

当您安装php-intl包并在php.ini文件上启用相同的扩展时,可能会发生这种情况。

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

我在带有 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 的所有服务。

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

我通过从extension=grpc 这样的评论中删除php.ini文件解决了这个问题;extension=grpc

通过评论 extension=curl 解决

我有一个类似的问题,问题是扩展名 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 服务。

En mi caso,你好初级。 Lo único que hice fue correr "composer clear-cache",esperar que terminara la ejecución。 Volver a correr el comando “composer init”。 Con eso eliminé el 错误“警告:模块“mysqli”已加载到第 0 行的未知中”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM