Menginstal / mengaktifkan ekstensi PHP Pecl Intl di CentOs 5


8

Pertanyaan asli:

Saya mengalami masalah menginstal ekstensi PHP Pecl Intl di mesin CentOs 5 saya.

Setelah menginstal keduanya icudan libicudengan perintah berikut:

$ yum install icu
$ yum install libicu

Saya mencoba menginstal ekstensi Intl seperti:

$ /usr/bin/pecl install intl

Saya memilih untuk mencari lokasi default untuk perpustakaan ICU dan file header. Itu akhirnya menabrak seperti ini:

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

memperbarui

Setelah berhasil menginstal versi pengembangan icu seperti yang disarankan oleh RusAlex (terima kasih RusAlex) seperti:

$ yum install libicu-devel

Saya mengalami masalah baru yang juga saya temui secara lokal perintah berikut:

$ /usr/bin/pecl install intl

sekarang menghasilkan kesalahan ini:

 /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

Tampaknya ada hubungannya dengan PHP 5.3 yang sudah dibundel dengan Intl. Tetapi bagaimana saya bisa mengaktifkan ekstensi ini, jika saya melihat Info PHP saya daripada saya tidak dapat menemukan referensi untuk itu ...

Jawaban:


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

Dan Anda baik untuk pergi. Dan lebih baik masukkan ekstensi = intl.so secara manual ke php.ini atau bahkan lebih elegan buat file .ini baru di direktori /etc/php.d/.


Bekerja untukku. Centos 5.8 x86_64 dengan CPanel.
djskinner

bagi saya, pada baris 3: sudo / usr / bin / pecl install intl katanya 'command not found', apakah saya kehilangan sesuatu tolong?
Dashrath


3

Ini bekerja untuk saya di CentOS 5.6:

yum install gcc gcc-cpp gcc-c++

Setelah itu semua kesalahan yang harus dilakukan dengan intlmenghilang



1
  1. /usr/bin/pecl install intl

  2. Cari log checking for icu-config... /usr/bin/icu-config*.
    Anda akan memerlukan jalur direktori yang memiliki /bin/icu-confignanti.

  3. Unduh php:

    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. kompilasi dan instal modul intl. phpize

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

    make

    make test

    sudo make install

  5. Akhirnya, tambahkan extension=intl.soke dalam php.ini.


1

Sepertinya Anda perlu menginstal icu-devatau icu-develmengemas atau serupa.

Anda membutuhkan paket pengembangan.


Terima kasih, itu membuat saya sedikit lebih jauh, saya telah memperbarui posting yang sesuai. Hanya demi referensi: perintah untuk menginstal versi pengembangan yang saya gunakan adalah$ yum install libicu-devel
Marijn Huizendveld


0

Saya memiliki masalah yang sama pada CentOS, dan saya berhasil menginstal INTL via pecl setelah:

1) pasang icu & libs:

yum -y install icu libicu libicu-devel 

2) paket php-devel dan phpize:

yum -y install php-devel phpize

3) dan, tentu saja gcc:

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

(+1 ke yuri untuk gcc, gcc-cpp, dan gcc-c ++, maaf tidak dapat berkomentar karena tidak ada peringkat)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.