Cài đặt / bật tiện ích mở rộng PHP Pecl Intl trên CentOs 5


8

Câu hỏi gốc:

Tôi gặp sự cố khi cài đặt tiện ích mở rộng PHP Pecl Intl trên máy CentOs 5 của mình.

Sau khi cài đặt cả hai iculibicuvới các lệnh sau:

$ yum install icu
$ yum install libicu

Tôi đã cố gắng cài đặt tiện ích mở rộng Intl như vậy:

$ /usr/bin/pecl install intl

Tôi đã chọn để tìm kiếm vị trí mặc định cho các thư viện và tệp tiêu đề ICU. Nó kết thúc sụp đổ như thế này:

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

cập nhật

Sau khi cài đặt thành công phiên bản phát triển của icu theo đề xuất của RusAlex (cảm ơn RusAlex) như vậy:

$ yum install libicu-devel

Tôi gặp phải một vấn đề mới mà tôi cũng gặp phải lệnh sau:

$ /usr/bin/pecl install intl

bây giờ tạo ra lỗi này:

 /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

Nó dường như có một cái gì đó để làm với PHP 5.3 đã được đóng gói với Intl. Nhưng làm cách nào tôi có thể kích hoạt tiện ích mở rộng này, nếu tôi tìm trong Thông tin PHP của mình thì tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào về nó ...

Câu trả lời:


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

Và bạn tốt để đi. Và tốt hơn là nhập phần mở rộng = intl.so theo cách thủ công vào php.ini hoặc thậm chí thanh lịch hơn để tạo tệp .ini mới trong thư mục /etc/php.d/.


Đã làm cho tôi. Centos 5,8 x86_64 với CPanel.
djskinner

Đối với tôi, trên dòng 3: sudo / usr / bin / pecl cài đặt intl nó nói 'lệnh không tìm thấy', tôi có thiếu thứ gì không?
Dashrath


3

Điều này làm việc cho tôi trên CentOS 5.6:

yum install gcc gcc-cpp gcc-c++

Sau đó, tất cả các lỗi phải làm với intlbiến mất



1
  1. /usr/bin/pecl install intl

  2. Nhật ký tìm kiếm checking for icu-config... /usr/bin/icu-config*.
    Bạn sẽ cần một đường dẫn của thư mục có /bin/icu-configsau này.

  3. Tải xuống 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. biên dịch và cài đặt mô-đun intl. Phốt

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

    make

    make test

    sudo make install

  5. Cuối cùng, nối extension=intl.sovào php.ini.


1

Có vẻ như bạn cần phải cài đặt icu-devhoặc icu-develgói hoặc một cái gì đó tương tự.

Bạn cần gói phát triển.


Cảm ơn, điều đó đã cho tôi thêm một chút, tôi đã cập nhật bài viết phù hợp. Chỉ với mục đích tham khảo: lệnh cài đặt phiên bản phát triển mà tôi đã sử dụng là$ yum install libicu-devel
Marijn Huizendveld


0

Tôi gặp vấn đề tương tự trên CentOS và tôi đã cài đặt thành công INTL qua pecl sau:

1) cài đặt icu & libs:

yum -y install icu libicu libicu-devel 

2) Gói php-devel và phpize:

yum -y install php-devel phpize

3) và, tất nhiên gcc:

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

(+1 cho yuri cho gcc, gcc-cpp và gcc-c ++, xin lỗi không thể nhận xét do không có xếp hạng)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.