[PHP] Chương trình ‘phpize’ là gì ? ‘php-config’ là gì ? khi compile PHP

Phpize là gì Php-config là gì ? Khi các bạn biên dịch module PHP trên hệ thống Linux, bạn sẽ thường xuyên phải sử dụng 2 chương trình phổ biến của phiên bản PHP bất kì trên hệ thống. Đó là 2 chương trình :
+ phpize
+ php-config

Thế chúng ta sẽ cùng lướt nhanh qua nội dung của bài viết này là :
+ phpize là gì ?
+ php-config là cái chi ?

 
1. ‘phpize’ là gì ?

Đôi khi việc cài đặt module PHP thông qua chương trình ‘pecl’ của PHP không phải là một lựa chọn phù hợp. Tại sao lại không phù hợp ? Thường là do có thể server bạn đã block port kết nối ra ngoài, hoặc bạn đang đứng sau 1 tường lửa đã khoá port kết nối cần thiết. Cũng có thể là module PHP bạn cần vẫn chưa có trên Repo của PECL.

Lúc này chúng ta sẽ phát sinh ra nhu cầu cần biên dịch (compile) 1 module download từ trang chủ module về và cài đặt nó cho phiên bản PHP ta mong muốn. Chương trình ‘phpize‘ được sử dụng để chuẩn bị môi trường xây dựng (build) cho các module extension của PHP. Trong ví dụ sau đây, giả sử module extension có tên là ‘modext’ (viết tắt của module extension):

# cd modext
# phpize
# ./configure
# make
# make install

 
Sau khi ta biên dịch và cài đặt thành công, một file module extension có tên ‘modext.so‘ sẽ được tạo ra và đặt vào thư mục dành cho các extension được cài đặt cho phiên bản PHP tương ứng. Sau đấy bạn sẽ cấu hình trong file config PHP ‘php.ini‘ để load module này lên với PHP .

Nếu hệ thống thiếu chương trình ‘phpize‘ thì có 2 cách :
– Biên dịch cài lại phiên bản PHP, sẽ cung cấp cho bạn lại chương trình ‘phpize‘.
– Tìm và download bản cài đặt .rpm dành cho chương trình ‘phpize‘.

Lưu ý:
phpize , cùng đi theo nhóm phiên bản PHP tức là chương trình được sản sinh ra với thông tin xây dựng môi trường cài đặt module tương ứng và tương thích cho phiên bản PHP mà nó chung nhóm.

 
2. ‘php-config’ là gì ?

php-config‘ là một file shell script trong đó chứa các thông tin về cấu hình phiên bản PHP đã cài đặt. Như vậy khi một phiên bản PHP đã cài đặt xong hoàn tất, sẽ sản sinh ra file ‘php-config‘ chứa các thông tin liên quan đến phiên bản PHP đó.

Khi bạn cài đặt biên dịch extension, nếu bạn có nhiều phiên bản PHP cùng tồn tại trên hệ thống, thì làm sao mà source code chúng ta biên dịch có thể hiểu được PHP version nào là cần được biên dịch cài đặt.

Lúc này ‘php-config‘ được sử dụng cho mục đích chỉ định rõ phiên bản PHP cần được biên dịch module. Trong file ‘php-config‘ có rất nhiều nội dung như :
– Đường dẫn thư mục prefix của PHP version.
– Đường dẫn extension của PHP version.
– Thông tin phiên bản của PHP.
– và các thông tin khác.

Nhờ có lượng thông tin trên nên chúng ta mới cài được module PHP cho từng phiên bản PHP cụ thể. Còn nếu bạn muốn chắc chắn file script ‘php-config‘ đó có khớp với phiên bản PHP bạn đang muốn cài đặt module hay không hãy chạy lệnh sau, với đường dẫn file tương ứng :

# /usr/local/bin/php-config --version
5.5.37

 
Để sử dụng ‘php-config’ ta cần chỉ định option sau trong lúc biên dịch module đó : ‘–with-php-config=/path/php-config

Ví dụ:

Bạn cần cài đặt module ‘memcached‘ php extension cho PHP 5.6 trên hệ thống, bạn sẽ chỉ định cấu hình cài đặt cho phù hợp như sau.

# cd memcached/
# /usr/local/php56/bin/phpize
# ./configure --with-php-config=/usr/local/php56/bin/php-config
# make && make install

 
Các bạn có thể coi nội dung shell script ‘php-config’. Đường dẫn file dưới đây là đường dẫn phổ biến.

# cat /usr/local/bin/php-config

 
3. Lưu ý chung

– Bạn cần sử dụng đúng chương trình ‘phpize‘ và ‘php-config‘ của chương trình PHP phiên bản bao nhiêu tương ứng.
– Ví dụ, trên hệ thống bạn có cài 3 phiên bản PHP gồm 5.4 , 5.5 , 5.6 ở các đường dẫn :
+> 5.4 : /usr/local/php54/bin/
+> 5.5 : /usr/local/php55/bin/
+> 5.6 : /usr/bin/

– Lúc này nếu website đang xài PHP version 5.5 , thì bạn cài module sử dụng chương trình nằm ở thư mục của PHP 5.5 là :

/usr/local/php55/bin/phpize
/usr/local/php55/bin/php-config

 
– Còn nếu cài cho PHP version 5.6, thường nếu chạy mặc định của hệ thống sẽ nằm ở /usr/bin/ :

/usr/bin/phpize
/usr/bin/php-config

 
Vậy là xong nội dung này, nếu bạn có thắc mắc khó hiểu thì cứ bình luận ở dưới.

Nguồn tham khảo :
http://php.net/manual/en/install.pecl.php-config.php
http://php.net/manual/en/install.pecl.phpize.php

Previous article[PHP] Top 27 lỗi compile source PHP và giải pháp trên CentOS
Next article[Apache] Hướng dẫn cài đặt compile Apache 2.2/2.4 trên CentOS/RHEL 6/7
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !