0x01 查看modules
[root@0cab39d51c9e ~]# php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
igbinary
json
libxml
mbstring
mcrypt
memcache
memcached
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
pspell
readline
redis
Reflection
session
SimpleXML
sockets
SPL
sqlite3
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
xsl
yaf
Zend OPcache
zip
zlib
[Zend Modules]
Zend OPcache
0x02 找到php module所在目錄
# 查看php.ini文件,可以通過 extension_dir去配置modules的目錄购披。
less php.ini
# php.ini部分文件內(nèi)容如下:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
; extension_dir = "ext"
# 這里我使用的是默認(rèn)的目錄
cd /usr/lib64/php/modules
# 也可以通過find命令查詢so文件所在目錄
[root@0cab39d51c9e ~]# find / -name mysqli.so
/usr/lib64/php/modules/mysqli.so
0x03 添加so文件
至于怎么獲得so文件胞得,這里就不贅述了捧书,每個模塊都有自己的編譯方法,并且方法較多酪术。
得到so文件后器瘪,將對應(yīng)的so文件添加至php module文件夾即可
0x04 配置so文件路徑
# 查看php.ini
less php.ini
# php.ini部分文件內(nèi)容如下:
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:
;
; extension=msql.so
;
; ... or with a path:
;
; extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
# 由以上配置可知,可以通過extension=xxx.so的方式去配置加載具體的so文件绘雁。
# 并且默認(rèn)會加載所有的/etc/php.d目錄下的.ini文件
# 所以我們將為每個so文件在/etc/php.d目錄下創(chuàng)建對應(yīng)的.ini文件即可
0x05 添加ini文件
# 添加完成后的文件如下:
less 30-phalcon.ini
; Enable phalcon extension module
extension=phalcon
# ini文件前面的數(shù)字表示優(yōu)先級娱局,數(shù)字越小越先加載。
# 本質(zhì)上就是從上往下按文件名稱的順序加載咧七,數(shù)字越小衰齐,文件越靠上。
0x06 重啟php-fpm進(jìn)程
# 重新查看php module继阻,發(fā)現(xiàn)多了phalcon模塊耻涛,添加成功
php -m