Installieren / Aktivieren der PHP Pecl Intl-Erweiterung auf CentOs 5


8

Ursprüngliche Frage:

Ich habe Probleme bei der Installation der PHP Pecl Intl-Erweiterung auf meinem CentOs 5-Computer.

Nach der Installation beider icuund libicumit den folgenden Befehlen:

$ yum install icu
$ yum install libicu

Ich habe versucht, die Intl-Erweiterung folgendermaßen zu installieren:

$ /usr/bin/pecl install intl

Ich habe ausgewählt, um nach dem Standardspeicherort für die ICU-Bibliotheken und Header-Dateien zu suchen. Es endet so:

checking whether to enable internationalization support... yes, shared
checking for icu-config... no
checking for location of ICU headers and libraries... not found
configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
ERROR: `/tmp/pear/temp/intl/configure --with-icu-dir=DEFAULT' failed

aktualisieren

Nach erfolgreicher Installation der von RusAlex vorgeschlagenen Entwicklungsversion von icu (danke RusAlex) wie folgt:

$ yum install libicu-devel

Ich bin auf ein neues Problem gestoßen, auf das ich auch lokal mit dem folgenden Befehl gestoßen bin:

$ /usr/bin/pecl install intl

erzeugt jetzt diesen Fehler:

 /private/tmp/pear/temp/intl/collator/collator_class.c:92: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:96: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:101: error: duplicate 'static'
 /private/tmp/pear/temp/intl/collator/collator_class.c:107: error: duplicate 'static'
 make: *** [collator/collator_class.lo] Error 1
 ERROR: `make' failed

Es scheint etwas damit zu tun zu haben, dass PHP 5.3 bereits mit Intl gebündelt ist. Aber wie kann ich diese Erweiterung aktivieren, wenn ich in meinen PHP-Informationen nachschaue, kann ich keinen Verweis darauf finden ...

Antworten:


11
sudo yum install libicu
sudo yum install libicu-devel.x86_64
sudo /usr/bin/pecl install intl
sudo echo 'extension=intl.so' >> /etc/php.ini

Und du bist gut zu gehen. Und geben Sie die Erweiterung = intl.so besser manuell in php.ini ein oder erstellen Sie noch eleganter eine neue INI-Datei im Verzeichnis /etc/php.d/.


Hat für mich gearbeitet. Centos 5.8 x86_64 mit CPanel.
Djskinner

Für mich steht in Zeile 3: sudo / usr / bin / pecl install intl "Befehl nicht gefunden". Fehlt mir bitte etwas?
Dashrath

7

Sie haben Recht, Sie können das PECL-Paket nicht installieren, da Intl ab PHP 5.3 Teil von PHP ist .

Wenn Sie PHP mit YUM installiert haben, können Sie einfach das intl-Paket herunterladen:

> yum list php*intl
> yum install <file_from_above>

3

Dies funktionierte für mich unter CentOS 5.6:

yum install gcc gcc-cpp gcc-c++

Danach intlverschwanden alle Fehler



1
  1. /usr/bin/pecl install intl

  2. Suchprotokoll checking for icu-config... /usr/bin/icu-config*.
    Sie benötigen einen Pfad des Verzeichnisses, das /bin/icu-configspäter vorhanden ist.

  3. PHp herunterladen:

    wget http://us2.php.net/get/php-5.3.6.tar.gz/from/jp.php.net/mirror

    tar xvzf php-5.3.6.tar.gz

    cd php-5.3.6/ext/intl/

  4. Kompilieren und installieren Sie das intl-Modul. phpize

    ./configure --enable-intl --with-icu-dir=/usr

    make

    make test

    sudo make install

  5. Schließlich fügen Sie extension=intl.soin php.ini.


1

Es scheint, als müssten Sie installieren icu-devoder icu-develverpacken oder ähnliches.

Sie benötigen ein Entwicklungspaket.


Danke, das hat mich ein bisschen weiter gebracht, ich habe den Beitrag entsprechend aktualisiert. Nur als Referenz: Der Befehl zum Installieren der von mir verwendeten Entwicklungsversion lautet$ yum install libicu-devel
Marijn Huizendveld


0

Ich hatte das gleiche Problem unter CentOS und habe INTL über pecl erfolgreich installiert, nachdem:

1) installiere icu & libs:

yum -y install icu libicu libicu-devel 

2) php-devel package und phpize:

yum -y install php-devel phpize

3) und natürlich gcc:

yum -y install gcc gcc-cpp gcc-c++

(+1 bis yuri für gcc, gcc-cpp und gcc-c ++, leider kann kein Kommentar abgegeben werden, da keine Bewertung vorliegt)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.