PHP扩展安装

今天安装zabbix,发现需要安装一些插件,而这些插件并没有安装在原有的PHP上。

1、  以安装ldap扩展为例:

Zabbi显示:

image.png

条件:已经源码安装好了PHP

我这里是使用oneinstack安装的PHP,不影响主要是源码安装


2、  查看PHP版本

一定要查看PHP版本然后再来安装对于版本的php扩展,不然编译会发生函数错误。

[root@ms-local-server php]# pwd

/usr/local/php

 

[root@ms-local-server php]# ./bin/php -version

PHP 5.5.38 (cli) (built: Jun  1 2018 09:51:57)

Copyright (c) 1997-2015 The PHP Group

Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

    with the ionCube PHP Loader (enabled) + Intrusion Protection from ioncube24.com (unconfigured) v10.0.0 (), Copyright (c) 2002-2017, by ionCube Ltd.

    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

 

3、  解压PHP包。

通过自己相对应的版本,我这里是通过oneinstack安装的,所以自带有源码压缩包

 

对源码现成PHP--该如何进行扩展源码安装?_第1张图片

可以看到其里面有很多的源码压缩包。

解压:

[root@ms-local-server src]# tar -xf php-5.5.38.tar.gz

4、  安装ldap的依赖包。

[root@ms-local-server src]#yum install openldap-devel openldap


5、  编译安装

image.png

6、  编译出错误

configure: error: Cannot find ldap libraries in /usr/lib

这个是没有找到ldap的库。

[root@ms-local-server src]#cp -frp /usr/lib64/libldap* /usr/lib/

7、  重新编译安装

[root@ms-local-server ldap]# /usr/local/php/bin/phpize


[root@ms-local-server ldap]# ./configure  --with-php-config=/usr/local/php/bin/php-config  --with-ldap

[root@ms-local-server ldap]# make

对源码现成PHP--该如何进行扩展源码安装?_第2张图片

[root@ms-local-server ldap]# make install

image.png

查看插件so文件

[root@ms-local-server ldap]#  ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ | grep ldap

-rwxr-xr-x 1 root root  184944 Dec 21 13:35 ldap.so

8php.ini文件添加扩展

[root@ms-local-server ldap]# vim /usr/local/php/etc/php.ini

添加

extension=ldap.so

9、重启让扩展生效

image.png

10、查看扩展是否已被安装

image.png

可以发现扩展已经安装完成了。

总结:

以前安装zabbix时,发现装PHP插件都是yum安装的,没有经历过源码安装,经过这次,倒是熟悉了。