Linux中为已经编译安装后的PHP安装扩展详解

2022-09-08 19:04:47 浏览数 (2)

前言

在刚开始安装php的时候我们不可能一下把所有的扩展全部装完但在开发的时候我们又需要某个扩展,这时候我们不可能把php重新卸载—加上对应扩展—安装—-那样太麻烦了,下面给大家介绍为安装好的php添加或者的方法。

这里我以安装memcached扩展为例

查看你是否安装某个扩展

1.使用命令php -m

列出的扩展就是已安装的

2.使用函数phpinfo()

安装memcached 在这个网站下找到memcached扩展 https://pecl.php.net/

点击memcached扩展

列出可下载的版本,复制其链接地址

通过wget下载memcached扩展

下载完成后是一个.tgz的文件,这种文件相当于 tar.gz 我们解压拆包即可 gunzip memcached-3.1.5.tgz tar xf memcached-3.1.5.tar 解压完成后进入到扩展目录 cd memcached-3.1.5

并没有configure,这怎么安装? 当我们要为已经编译安装好的php添加扩展时,我们要通过phpize辅助 phpize会根据当前扩展和php的版本为其添加一个configure文件,phpize存放在php的安装路径bin目录下,如我的 /usr/local/php/bin/phpize 扩展目录输入 /usr/local/php/bin/phpize

此时已经生成了一个configure文件

此时执行 ./configure --with-php-config=/usr/local/php/bin/php-config 将扩展添加到php 在编译的过程中报错了

大概意思是memcached依赖于libmemcached,接下来我们需要安装libmemcached并在编译的过程中告诉memcached libmemcached的路径,如果你安装的其他扩展没有依赖问题,可以跳过这一步

下载libmemcached https://libmemcached.org/libMemcached.html

选择版本复制链接地址 https://launchpad.net/libmemcached/1.0/1.0.18/ download/libmemcached-1.0.18.tar.gz

下面的操作就是下载--解压--拆包--编译安装,这里不在详细叙述 如果你在安装libmemcached中出现clients/memflush.cc: In function ‘int main(int, char**)’.... 参照这个人的博客 https://blog.csdn.net/hualaoshuan/article/details/91891225 安装libmemcached后我们继续安装memcached

1.cd /usr/local/src/memcached-3.1.5 由于memcached依赖于libmemcached我们在后面添加了libmemcached的安装路径

2../configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached

安装 3.make && make install

到这一步安装成功,并且给出了扩展的路径/usr/local/php/lib/php/extension........ 查看这个路径有个memcached.so文件

到这里我们要将memcached扩展添加到php.ini中 这里有两种方式 第一种直接添加扩展的绝对路径,如下 将这个文件的路径添加到php.ini中

第二种 在php.ini的大概750几行,添加存储扩展的目录

在开启对应扩展,去掉extension前面的分号,如果没有对应扩展需自行添加

重启php ps -aux | grep php pkill -9 php cd /usr/local/php/sbin ./php-fpm 重启nginx cd /usr/local/nginx/sbin ./nginx -s reload 到此php扩展添加成功 其他扩展类似

0 人点赞