[LAMP]php動態擴充套件模組安裝

技術小美發表於2017-11-21

    在php編譯完成後,如果想增加一個功能模組,要麼重新編譯php,要麼直接編譯一個擴充套件模組。重新編譯php會影響現網中的業務,因此直接編譯擴充套件模組更好些。

1
[root@juispan ~]# /usr/local/php/bin/php -m      ##檢視php載入的功能模組

下面演示安裝redis擴充套件模組:

1、下載安裝包

1
2
3
4
5
6
7
8
9
10
11
12
[root@juispan ~]# cd /usr/local/src
[root@juispan src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop
--2017-07-22 01:30:22--  https://codeload.github.com/phpredis/phpredis/zip/develop
正在解析主機 codeload.github.com (codeload.github.com)... 192.30.255.120, 192.30.255.121
正在連線 codeload.github.com (codeload.github.com)|192.30.255.120|:443... 已連線。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:221385 (216K) [application/zip]
正在儲存至: “develop”
 
100%[=====================================================================================================================================================>] 221,385     36.6KB/s 用時 5.9s   
 
2017-07-22 01:30:30 (36.6 KB/s) - 已儲存 “develop” [221385/221385])

2、解壓壓縮包

1
2
[root@juispan src]# mv develop phpredis-develop.zip
[root@juispan src]# unzip phpredis-develop.zip

3、生成configure檔案

1
2
3
4
5
6
7
8
9
10
[root@juispan src]# cd phpredis-develop
[root@juispan phpredis-develop]# /usr/local/php/bin/ph
phar        phar.phar   php         php-cgi     php-config  phpize      
[root@juispan phpredis-develop]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

報錯,安裝autoconf後,再次執行。

1
2
3
4
5
[root@juispan phpredis-develop]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

4、載入配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@juispan phpredis-develop]# ./configure  --with-php-config=/usr/local/php/bin/php-config
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for sed that does not truncate output... /usr/bin/sed
checking for cc... cc
checking whether the C compiler works... yes
......
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
[root@juispan phpredis-develop]# echo $?
0

5、編譯與編譯安裝

1
2
3
[root@juispan phpredis-develop]# make &&make install
[root@juispan phpredis-develop]# echo $?
0

6、編輯php配置

1
2
3
4
5
6
7
[root@juispan phpredis-develop]# /usr/local/php/bin/php -i | grep extension_dir
extension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226
sqlite3.extension_dir => no value => no value
[root@juispan phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226
opcache.so  redis.so
[root@juispan phpredis-develop]# vi /usr/local/php/etc/php.ini 
extension = redis.so    ##增加一行

7、檢查效果

1
2
[root@juispan phpredis-develop]# /usr/local/php/bin/php -m |grep redis
redis

如果想在php網站使用redis模組,需要重啟httpd服務。


本文轉自Grodd51CTO部落格,原文連結:http://blog.51cto.com/juispan/1953716,如需轉載請自行聯絡原作者


相關文章