Manchmal geschieht dies mit php-fpm
, und das Komische ist, Konsole php
nicht complans über diese den gleichen Satz von Ini-Dateien in der gleichen Zeit mit, was bewies, dass mcrypt
in der Tat nicht referenziert zweimal.
Wie sich herausstellt, php-fpm
hat eine Standard-Reihe von Modulen eingebaut, dass es versucht, zumindest auf Linux zu laden (da das auf FreeBSD nicht reproduzierbar ist). mcrypt
ist in dieser Liste, wenn ein Benutzer eine zusätzliche INI-Datei in seinem Verzeichnis /etc/php.d
hat, scheint mcrypt
zweimal geladen zu werden.
Eine harte Abhilfe für diese ist die -n
Schalter auf den php-fpm auf dem Start zu einem php-fpm.ini
, pnp.ini
gehören in die resultierenden php-fpm.ini
außer mcrypt und fügen Sie einen zusätzlichen Schalter all Ihre Module kopieren hinzufügen zeigt auf die richtige ini-Datei, so dass die ganze Addition wie folgt aussieht: .
So läuft php-fpm
wird nicht beschweren.
Ich schreibe dies hier, weil dies am meisten referenzierte Post in Suchmaschinen über mcrypt
Problem ist. Ich weiß, dass die Quellfrage über Konsolen-PHP war.
Update: Ich habe diese Problemumgehung verwendet, aber es ist böse. Vor einiger Zeit habe ich herausgefunden, warum genau das passiert ist. Ich werde noch ein paar Worte dazu verwenden, um dies zu beschreiben, aber das kann langweilig sein, da dies eine bestimmte Art von Versagen beschreibt. Also, in meinem Fall wurde dieses Problem durch die Tatsache verursacht, dass ich eine benutzerdefinierte PHP-Build verwendete, von mir selbst gemacht, und gelegentlich habe ich die mcrypt in die Liste der eingebauten statische Module hinzugefügt. Und dann Ich fügte es wieder als ein eingebautes Modul, so dass es wurde zweimal geladen.Dies geschieht mit einem benutzerdefinierten Build, wenn mcrypt in der Liste der Module für das Konfigurationsskript referenziert wird und nicht als shared aufgeführt ist (dieser Teil der Spezifikation kann leicht gefunden werden, da %configure \
nur einmal in der Spezifikation). In meinem Fall war die Lösung, die mcrypt vollständig aus dem Konfigurationsteil zu entfernen und es zu den build-cgi
und build-ztscli
Stufen hinzuzufügen. Man könnte fragen "Was ist mit der fpm Bühne?" - und es ist eine gute Frage, aber es stellt sich heraus, fpm sapi selbst ist mit einem Minimum von Modulen gebaut und verwendet generische shared Einsen.
Vielen Dank, ich löschte die Zeile ** extension = mcrypt.so ** in **/etc/php5/mods-available/mcrypt.ini ** und der Fehler ist jetzt verschwunden thnx –
Ich war auch mit diesem Problem konfrontiert, als ich auf meinem ubuntu 14.04-Rechner von PHP 5.5.9 auf PHP 7.0 umstieg. Und ich fand eine Lösung von https://www.digitalcocean.com/community/questions/php-7-0-php-warning-module-mcrypt-already-loaded-in-unknown-on-line-0, also ich einfach entfernen mcrypt modul: sudo apt-get entfernen php7.0-mcrypt als PHP7.0 von ondrej ist bereits mit mcrypt kompiliert. –