intl-Erweiterung: Installation von php_intl.dll

76

Ich versuche es zu finden php_intl.dllund zu installieren.

Hat jemand irgendwelche Tipps?

David
quelle

Antworten:

61

Die Pakete unter http://windows.php.net/download/ enthalten alle das, php\_intl.dllwas sich im Unterverzeichnis befindet ext/.
Sie müssen lediglich überprüfen, ob Ihr extension_dir auf das richtige Verzeichnis verweist, und die extension=php\_intl.dllAnweisung hinzufügen (oder auskommentieren) .

VolkerK
quelle
Vergessen Sie nicht, Apache nach Änderungen an der Datei php.ini neu zu starten.
Dmytro Dzyubak
94

Damit die php_intl.dllErweiterung ordnungsgemäß funktioniert, müssen sich die folgenden Dateien in einem Ordner in Ihrem Ordner befinden PATH:

  • icudt36.dll
  • icuin36.dll
  • icuio36.dll
  • icule36.dll
  • iculx36.dll
  • icutu36.dll
  • icuuc36.dll

Standardmäßig befinden sie sich in Ihrem PHP-Verzeichnis, aber dieses Verzeichnis befindet sich nicht unbedingt in Ihrem PATH(es war nicht für mich, mit xampp)

Dies muss sich in Ihrem globalen Pfad befinden, nicht nur im Pfad Ihres Benutzers. Um den globalen Pfad festzulegen, gehen Sie zu Systeminfo ( windows key + PAUSE), dann zu Erweiterte Systemeinstellungen (Vista +) oder Erweitert (XP), klicken Sie auf die Schaltfläche "Umgebungsvariablen" und fügen Sie der PATHVariablen in der Liste "Systemvariablen" das entsprechende Verzeichnis hinzu.

Jeremy Warne
quelle
3
Gute Antwort! upvoted. Nur ein Hinweis, kann hilfreich sein, wenn Sie xampp verwenden, starten Sie xampp neu, nachdem Sie die Änderung an "Umgebungsvariablen" vorgenommen haben.
Rohit Gupta
Die Antwort ist großartig. Hat mir geholfen, das Problem mit Yii2 MessageFormater.php zu lösen.
Vielen
Ich bin gerade ein zweites Mal auf das gleiche Problem auf einem anderen Computer gestoßen. Ich wünschte, ich könnte es zweimal abstimmen.
Danielson317
Für php7.1.6 enthalten die DLLs die Nummer 57 anstelle von 36. Die Lösung besteht immer noch darin, das PHP-Verzeichnis zu PATH hinzuzufügen.
Joshua Walsh
Wie in der Antwort von user2650636 angegeben, können Sie auch icu * .dll-Dateien in Ihren Apache / bin-Ordner (oder in den Ordner, in dem sich Ihre ausführbare Hauptdatei befindet) kopieren, anstatt sie dem Pfad hinzuzufügen. Dies ist zwar nicht perfekt, ermöglicht jedoch die Ausführung verschiedener PHP-Versionen auf demselben System.
Sie
58

Ich habe XAMPP 1.8.3-0 und PHP 5.5.0 installiert.

1) php.ini bearbeiten:

von

;extension=php_intl.dll

zu

extension=php_intl.dll

Hinweis: Nach der Änderung müssen Sie die Datei (php.ini) speichern und den Apache Server neu starten.

2) Kopieren Sie einfach alle icu * * * * .dll- Dateien:

von

C: \ xampp \ php

zu

C: \ xampp \ apache \ bin

Dann funktioniert die intl-Erweiterung !!!

user2650636
quelle
1
@rab Stellen Sie sicher, dass Sie die erforderliche Version des weitervertreibbaren VC ++ - Pakets installiert haben. Diese enthält die msvcp*DLLs. Die von Ihnen erwähnte Datei msvcp110.dllsollte im VC ++ 2012 Redist-Paket enthalten sein.
Khargoosh
Großartig, unter Windows 10 funktioniert die Antwort von Jeremy Warne nicht, aber das funktioniert. Danken!
PHPst
Dies ist das Problem behoben. Das Problem ist mir passiert, nachdem ich ein anderes xampp-Paket mit PHP7 installiert habe. Vielen Dank!
jroi_web
15

Hatte das gleiche Problem ... Ich fand die benötigten Dateien, indem ich mein Laufwerk nach icu * * .dll durchsuchte, und fand die oben aufgeführten, aber mit 46 statt 36 im PHP-Ordner. Ich habe sie kopiert, in die Apache / Bin-Datei eingefügt und versucht, Apache zu starten, und es hat schließlich begonnen. Auf der Seite Serverprüfungen wurde sie nun von Gelbprüfung auf Grün OK geändert. Hoffe das hilft.

Matthew
quelle
Ich dachte, dies sei mein Problem, aber es stellte sich heraus, dass ich einen Tippfehler in meinen PATH-Variablen hatte!
Stellen
9

Wenn Sie eine Fehlermeldung lesen, fehlt "icuuc36.dll". Das Problem ist, dass Sie das PHP-Verzeichnis nicht in Ihrem PATH haben oder alle "intl" -Dateien aus dem PHP-Verzeichnis in das Verzeichnis Apache \ bin kopieren können. Dies sind: icudt36.dll icuin36.dll icuio36.dll icule36.dll iculx36.dll icutu36.dll icuuc36.dll

Max Gebert
quelle
3

Für WampServer 2.5 ( Apache 2.4.9 und PHP 5.5.12 ):

In Standard habe ich hatte php_intl aktiviert (Sie können es aktivieren , wenn Sie left click on the wamp icon in the system tray > PHP > PHP extensionsund überprüfen , ob es markiert)

Damit es richtig funktioniert, musste ich kopieren :

C: \ wamp \ bin \ php \ php5.5.12 \ icu ** 51.dll

(insgesamt 8 Dateien)

zu

C: \ wamp \ bin \ apache \ apache2.4.9 \ bin

Dann starten Sie einfach den Wamp neu und alles war in Ordnung.

Davedavee
quelle
xampp nur 6 Datei
Savan Dholu
3

Ich habe PHP 5.3.1 und Apache

Wenn ich die extension=php_intl.dllzu php.ini hinzufüge und Apache neu starte, wird eine Warnung angezeigt, die besagt, dass der angeforderte Vorgang fehlgeschlagen ist.

Und dieser Fehler auf dem Ereignismonitor:

Faulting application name: httpd.exe, version: 2.2.14.0, time stamp: 0x4ac181d6
Faulting module name: php5ts.dll, version: 5.3.1.0, time stamp: 0x4b051b35
Exception code: 0xc0000005

Das Problem war, dass einige DLLs wie icudt36.dll fehlten (bemerkt bei sysinternals ProcMon). Ich habe die Zip-Version von PHP 5.3.1 heruntergeladen und alle DLLs in den PHP-Ordner extrahiert. Das hat das Problem gelöst.

prügeln
quelle
2

Ich habe dieses Problem behoben, indem ich der PATH-Variablen ein PHP-Verzeichnis hinzugefügt habe. Ich habe gerade ;C:\xampp\phpeine PathVariable in Windows-Umgebungsvariablen angehängt .

Mehdi Karamosly
quelle
2

Ich habe IIS 7 und PHP mit Microsoft Web Platform Installer unter Windows 7 installiert. Gehen Sie in IIS auf der Hauptseite der Einstellungen -> PHP-Erweiterungen -> Aktivieren oder Deaktivieren einer Erweiterung zu PHP Manager. Die internationale Erweiterung ist standardmäßig deaktiviert.

ich hoffe das hilft

Johan Marchan
quelle
Wie beantwortet dies die Frage?
Kmeixner
Ich nahm an, dass er nach php_intl.dll sucht, weil er Probleme hat, die intl-Erweiterung in PHP zu aktivieren, zumindest war das mein Fall. Wenn nicht, dann tut es mir leid. Mein schlechtes
Johan Marchan
2

Sie können diesen Befehl im Terminal eingeben: sudo apt-get install php-intl

Sara Vaseei
quelle
1

Als ich mit diesem Problem konfrontiert wurde, wurde es mithilfe der folgenden Schritte behoben:

Bearbeiten Sie die php.ini:

Machen

; extension = php_intl.dll to

extension = php_intl.dll Kopieren Sie einfach alle icu * * * * .dll-Dateien (jede icu-Datei mit DLL-Erweiterung) von

C: \ xampp \ php bis C: \ xampp \ apache \ bin

Auch wenn Sie die msvcp110.dll fehlende Datei Fehler haben. Sie müssen die richtige DLL herunterladen oder einfach hier http://www.microsoft.com/es-es/download/confirmation.aspx?id=30679 gehen und die Dateien vcredist_x64.exe und vcredist_x86.exe installieren.

Jetzt sollte die intl-Erweiterung funktionieren :-)

Bhupesh Kathuria
quelle
1

In meinem Fall hat das Hinzufügen eines PHP-Verzeichnisses zu PATH in der Benutzerumgebung nicht funktioniert. Nach einigen Tests habe ich festgestellt, dass es dem Systempfad hinzugefügt werden sollte (ich weiß nicht, wie dieser Teil der Systemeinstellungsfenster heißt, weil ich polnische Fenster habe).

Jarosław Wasilewski
quelle
1

Das Paket ist bereits in den Erweiterungen für PHP 7.2 und höher enthalten, und Sie müssen nur die folgende Zeile in der php.ini auskommentieren

extension=intl
Basheer Kharoti
quelle
Diese Kommentierungsmethode funktioniert für die meisten PHP-Erweiterungen für Windows, jedoch nicht für Intl . Damit intl funktioniert, müssen Sie auch alle icu * .dll aus dem PHP-Ordner in den Ordner Apache \ Bin kopieren.
Daniel Wu
0

/ Digger hier /

Das Verschieben der icu*****.dllDateien nach /ext/scheint das Problem ebenfalls zu beheben.

(Wenn Sie das Erweiterungsverzeichnis angegeben haben, das dort vorhanden sein soll)

Diggus
quelle
0

Klicken Sie in meinem xampp-Kontrollfeld auf config, um die php.ini zu öffnen

entfernen ; im

; extension = php_intl.dll

Starten Sie dann den Apache neu.

nichts
quelle
0

Es gibt einen besseren Weg, dies zu tun.

Ich hatte das gleiche Problem mit ldap-, intl- und curl-PHP-Erweiterungen. Ich habe diese Probleme auf folgende Weise gelöst:

Zuerst müssen Sie überprüfen, ob diese Erweiterungen in der Datei php.ini aktiviert wurden, indem Sie das Semikolon (;) vor den folgenden Zeilen entfernen:

;extension=php_intl.dll
;extension=php_ldap.dll
;extension=php_curl.dll

Jetzt können Sie die erforderlichen DLL-Dateien (dh libeay32, libssh2, ssleay32, icu **. DLL) direkt aus Ihrer httpd.conf-Datei (Apache Configuratio-Datei) laden. Sie müssen keine anderen Dinge tun, wie sie in das bin-Verzeichnis des Apachen oder das ext-Verzeichnis des PHP zu kopieren. Fügen Sie sie einfach direkt in die httpd.conf-Datei Ihres Apache ein.

Bitte beachten Sie, dass das folgende Beispiel für die PHP-Version 5.5.x ist.

LoadFile  "C:/php/icudt51.dll"
LoadFile  "C:/php/icuin51.dll"
LoadFile  "C:/php/icuio51.dll"
LoadFile  "C:/php/icule51.dll"
LoadFile  "C:/php/iculx51.dll"
LoadFile  "C:/php/icutest51.dll"
LoadFile  "C:/php/icutu51.dll"
LoadFile  "C:/php/icuuc51.dll"

LoadFile  "C:/php/libeay32.dll"
LoadFile  "C:/php/libssh2.dll"
LoadFile  "C:/php/ssleay32.dll"

Das ist es. Starten Sie jetzt Ihren Apache oder Wamp neu und Sie können loslegen.

asmmahmud
quelle
0
  1. Stellen Sie unter PHP-Erweiterungen in Ihrem Wampserver sicher, dass intl aktiviert ist
  2. Überprüfen Sie Ihr extension_dir in Ihrer php / v7.0 / php-Datei, um sicherzustellen, dass das Verzeichnis nicht kommentiert und korrekt ist
  3. (Ich weiß nicht, ob dies dazu beigetragen hat, aber ich habe alle drei gemacht.) Fügen Sie in Ihre Erweiterungsliste in derselben Datei wie oben 2 die intl-Datei im selben Format wie die anderen ein (falls sie nicht enthalten ist). Alles Gute
Turm
quelle
0

Ich hatte Probleme, intl unter PHP 7.1.7 und PhpStorm unter Windows 10 zum Laufen zu bringen. Anhand anderer Antworten konnte ich feststellen, dass es sich um ein PATH / DLL-Abhängigkeitsproblem handelte, aber ich konnte auch danach nicht alle erforderlichen Dateien finden (Neu-) Installation von Visual C ++ Redistributable.

Schließlich suchte ich auf meinem Laufwerk C: nach vcr * .dll und fand eine Kopie von vcruntime140.dll in meinem C:\Program Files\Mozilla FirefoxVerzeichnis. Zusätzlich zu diesen Änderungen an php.ini:

extension_dir = "ext"
extension=php_intl.dll

Ich habe auch meinen Laufzeitpfad auf NUR das PHP-Verzeichnis (in meinem Fall C:\Program Files\PHP\7.1.7) und das Firefox-Verzeichnis (oben) gesetzt und es hat ENDLICH funktioniert! Ich weiß, dass es mehr als nur die Datei vcruntime140.dll benötigt, aber die anderen erforderlichen DLLs müssen sich auch im FF-Verzeichnis befinden (es gibt ein paar Dutzend, aber ich habe mich nicht darum gekümmert, herauszufinden, welche wesentlich sind).

Andrew M. Andrews III
quelle