PHP Warnung: Modul bereits in Unbekannt in Zeile 0 geladen

74

Unter Mac OSX Mavericks, die Homebrew PHP55 verwenden, wird bei jedem Ausführen eines PHP-Befehls die folgende Fehlermeldung angezeigt (alles läuft einwandfrei, es ist nur ärgerlich).

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

Ich rannte

php --ini

und die Ausgabe war

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

In der Datei php.ini eingecheckt und der einzige Ort, an dem intl geladen wird, ist oben und es ist auskommentiert. Der Inhalt der anderen Dateien sieht ungefähr so ​​aus:

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

Dabei ist der Inhalt nach dem letzten Schrägstrich die Erweiterung.

Ich bin mir nicht sicher, wo ich sonst suchen soll.

Jede Hilfe wird geschätzt

Drew Landgrave
quelle
4
Überprüfen Sie /usr/local/etc/php/5.5/conf.d/ext-intl.ini und /usr/local/etc/php/5.5/php.ini. Es ist höchstwahrscheinlich mehr als einmal vorhanden.
aqq
Versuchen Sie, die intl-Erweiterung in der Datei php.ini zu aktivieren und entfernen Sie (mit Sicherung) die Datei ext-intl.ini
ranieribt
2
Ich habe dieses Problem gelöst, indem ich jede .iniDatei unter dem conf.dVerzeichnis überprüft habe und festgestellt habe, dass sich zwei Zeilen extension=imagick.soin derselben befinden. imagick.iniEine davon wurde entfernt. Es funktioniert
einwandfrei

Antworten:

70

Ich denke, Sie haben Xdebug wahrscheinlich zweimal geladen php.ini.

  1. Überprüfen Sie die php.ini, die xdebug.sofür die Werte extension=und nicht eingestellt haben zend_extension=.

  2. Überprüfen Sie auch /etc/php5/apache2und /etc/php5/cli/. Sie sollten nicht in jedem php.inidieser Verzeichnisse die Erweiterung laden xdebug.so. Nur eine Datei php.inisollte geladen werden.

    Hinweis: Innerhalb des Pfads befindet sich die Zeichenfolge /etc/php5. Die 5 ist die Version von PHP. Wenn Sie also eine andere Version verwenden, erhalten Sie immer einen anderen Pfad, z php7.

bueltge
quelle
Hey, ich kann xdebug in meinem nicht finden cli/php.iniund es zeigt mir immer noch diese Fehler. PHP Warning: PHP Startup: Unable to load dynamic library 'gd2' (tried: /usr/lib/php/20170718/gd2 (/usr/lib/php/20170718/gd2: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/gd2.so (/usr/lib/php/20170718/gd2.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Smit Patel
auf meinem ein (mac, installiert mit PHP brauen), wenn ich xhprof mit pecl installieren, wird es automatisch hinzugefügt extension='xhprof.so'an der Spitze php.ini file. und dann war da noch eine Datei bei /usr/local/etc/php/7.2/conf.d/ext-xhprof.ini. Durch Auskommentieren der Zeile php.iniwurde die Warnung entfernt.
Tuhin
19

Ich hatte das gleiche Problem auf dem Mac, dh Warning: Module 'pdo_pgsql' already loaded in Unknown on line 0. So habe ich es gelöst.

  • Suchen Sie den Ordner conf.d , meiner war im Verzeichnis /usr/local/etc/php/7.0/conf.d.
  • In diesem Ordner befindet sich eine Datei namens ext-pdo_pgsql.ini.
  • Geben Sie ein sudo nano ext-pdo_pgsql.ini, um es zu bearbeiten.
  • Es sollte eine Linie geben extension="/usr/local/opt/php70-pdo-pgsql/pdo_pgsql.so". Kommentieren Sie es aus, indem Sie am Anfang der Zeile ein Semikolon hinzufügen, d ;extension="/usr/local/opt/php70-pdo-pgsql/pdo_pgsql.so". H.
  • Speicher die Datei. (Normalerweise führe ich Kontrolle + O , Kontrolle + M aus ).
  • Beenden Sie die Datei ( Strg + X ).

Hoffe das hilft jemandem.

Allan Mwesigwa
quelle
1
Dies funktionierte für mich für das 'Mongodb'-Problem in Ubuntu 18.04. Ich fand ähnliche Datei für Mongodb in etc / php / 7.2 / apache2 / conf.d
Muhammed Shihabudeen Labba A
9

Sie sollten ein Verzeichnis /etc/php2/conf.d haben (zumindest unter Ubuntu), das eine Reihe von INI-Dateien enthält, die alle geladen werden, wenn PHP ausgeführt wird. Diese Dateien können doppelte Einstellungen enthalten, die mit den Einstellungen in in Konflikt stehen php.ini. In meiner PHP-Installation bemerke ich eine Datei conf.d/20-intl.inimit einer extension=intl.soEinstellung. Ich wette, das ist dein Konflikt.

Matthew Marichiba
quelle
8

Um dieses Problem zu beheben, müssen Sie Ihre Datei php.ini (oder extensions.ini) bearbeiten und die bereits kompilierten Erweiterungen auskommentieren. Nach dem Bearbeiten kann Ihre INI-Datei beispielsweise wie folgt aussehen:

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

Quelle: http://www.somacon.com/p520.php

JC Gras
quelle
3

In meinem Fall hatte ich die; extension = php_curl.so in php.ini entkoppelt, aber Ubuntu rief diese Erweiterung bereits woanders auf.

Um dies "woanders" zu finden, wird auf php.ini informiert. In meinem Fall war /etc/php/7.1/apache2/conf.d/20-curl.ini der Pfad.

Jetzt bearbeiten wir diese Datei (Terminal):

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

Kommentieren Sie die; extension = php_curl.so

Datei speichern und Apache neu starten:

sudo systemctl restart apache2
Marcelo Agimóvel
quelle
3

Für Shared Hosting habe ich in cPanel das betreffende Modul unter "PHP-Version auswählen"> "Erweiterungen" deaktiviert und der Fehler für PHP 7.4 ist verschwunden.

Onimusha
quelle
2

Ich hatte das gleiche Problem nach dem Upgrade von Fedora Server 24 (PHP 5) auf 25 (PHP 7) . Nach einer Untersuchung stellte ich fest, dass /etc/php.d/zwei verschiedene .iniDateien geladen wurden extension=geoip.so.

In früheren Versionen von Distributionen wurde diese Datei benannt, 50-geoip.iniaber die letzte wurde in geändert 40-geoip.ini, und ich vermute, dass beim Versions-Upgrade die alte nicht entfernt wurde, während die neue erstellt wurde.

Das war der eigentliche Fall des Problems. Streu Nach dem Entfernen 50-geoip.iniaus /etc/php.d/und Neustarten httpdes funktionierte einwandfrei.

Ilia Rostovtsev
quelle
1

Ich habe die Datei 20-mongo.ini in /etc/php5/cli/conf.d gelöscht und das Problem dadurch behoben.

Laith
quelle
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');
Talha Shahab
quelle
Während dieser Code die Frage lösen kann, einschließlich einer Erklärung, wie und warum dies das Problem löst, würde dies wirklich dazu beitragen, die Qualität Ihres Beitrags zu verbessern, und wahrscheinlich zu mehr Up-Votes führen. Denken Sie daran, dass Sie in Zukunft die Frage für die Leser beantworten, nicht nur für die Person, die jetzt fragt. Bitte bearbeiten Sie Ihre Antwort, um Erklärungen hinzuzufügen und anzugeben, welche Einschränkungen und Annahmen gelten.
Brian
1

Ich habe dies herausgefunden, indem ich die PHP-Konfiguration gedruckt und nach xml.ini gesucht habe. Beachten Sie in der folgenden Ausgabe, wie xml zweimal geladen wird (zuerst als 20-xml.ini und dann als 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
Juampy NR
quelle
0

Es gibt zwei "php_intl.dll" -Dateien in der php.ini-Datei in den Nummernzeilen 872 und 968. Wenn das PHP-Warnmodul 'intl' bereits in unbekannt in Zeile 0 geladen ist, konzentriert sich diese Nachricht auf Ihre CLI. Dann sollten Sie die Semiklon-Präfixe in Zeile 872 entfernen müssen. Ich gehe davon aus, dass dies erledigt wird .....

ashik
quelle
0

Nur zur Veranschaulichung, da es anderen helfen könnte, die Shared Hosting (cPanel) nutzen.

Ich hatte einen Fehler beim Shared Hosting php7.2: Modul 'imagick' wurde bereits in Unknown in Zeile 0 geladen

Am Anfang sagte der Hosting-Anbieter, es sei meine schlechte Konfiguration (mit Yii2.16). Aber nachdem ich ihnen gezeigt hatte, dass das gesamte Internet dieses Problem mit der Serverkonfiguration zusammenhängt, hörten sie mir zu. Nachdem ich bewiesen hatte, dass es auf php7.1 keinen Fehler gab, begannen sie nach dem Fehler zu suchen.

Wie sie mir sagten - der Fehler war auf die Konfiguration in PERL-Modulen oder im PEAR-Paket zurückzuführen, aber sie sagten mir nicht das eigentliche Problem.

Wenn Sie Shared Hosting verwenden, wenden Sie sich an Ihren Anbieter und experimentieren Sie mit PHP-Versionen (sofern Sie diese ändern können).

Sanka
quelle
0

Kommentieren Sie diese beiden Zeilen aus php.ini

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

es sollte das Problem beheben.

Pratik
quelle
0

In Windows 10 behebe ich dies durch einen Kommentar wie diesen

;extension=php_sockets.dll
Jadi Akbar
quelle
-1

Ich hatte ein ähnliches Problem, das Problem war, dass die Erweiterung intl dupliziert wurde.

Sie können die Datei C: /xampp/php/php.ini einchecken und "intl" finden. In meinem Fall ist extension = intl bereits vorhanden und ich habe erneut gescrollt und eine zweite intl "extension = php_intl.dll" gefunden.

Die Erweiterung muss eine zur Ausführung sein, kann die Erweiterung intl nicht erneut ausführen. Dies zeigt einen Fehler wie diesen "Modul 'intl' bereits geladen".

Ich habe es behoben, indem ich extension=php_intl.dll" ;" so auskommentiert habe ;extension=php_intl.dll. und startete den Apache-Dienst neu.

Dewok Satria
quelle