LNMP PHP 添加 smbclient 扩展

在我内网的 HomeLab 上部署 NextCloud 测试用。在部署的过程中需要用到 PHP 的 smbclient 这个扩展,就是在 NextCloud 上挂载我群晖的 SMB 共享作为存储。已经部署了 LNMP 环境,常用的一些 PHP 扩展 LNMP 已经提供,这个 smbclient 属于不常用的,所以只能自己手动添加编译这个扩展到 PHP 中。记录下过程以备后续用到。

0x01 查看扩展

在添加扩展前先检查确认下是否已经安装,使用命令可以查看 PHP 已经安装了哪些扩展;命令的路径为 PHP 的安装路径;

  1. /usr/local/php/bin/php -m #查看已安装的扩展;

0x02 解压源码

添加编译扩展需要在 PHP 的源码中进行,LNMP 在编译的过程会自动解压 PHP 源码。安装完毕会自动删除已解压的文件夹,进入到 LNMP 的 src 目录解压 PHP 源码到当前目录;

  1. cd /root/lnmp1.9/src #进入到lnmp src目录;

  2. tar -jxvf php-7.4.30.tar.bz2 #解压PHP到当前目录;

  3. cd php-7.4.30 # 进入到PHP源码目录;

  4. cd ext #进入到PHP源码扩展目录;

  5. wget http://pecl.php.net/get/smbclient-1.0.6.tgz #下载smbclient到当前ext目录;

0x03 添加扩展

将 smbclient 扩展下载 php 的扩展目录后进行解压,解压完毕后开始安装扩展;

  1. tar -zxvf smbclient-1.0.6.tgz #解压smbclient扩展;

  2. cd smbclient-1.0.6 #进入到扩展目录;

  3. apt install libsmbclient-dev #安装smbclient依赖;

  4. /usr/local/php/bin/phpize #开始添加编译扩展;

  5. ./configure --with-php-config=/usr/local/php/bin/php-config #开始添加编译扩展;

  6. make && make install #开始添加编译扩展;

0x04 编译完成

编译完成后将会出现下提示,如果没有则需要留意错误提示;

0x05 添加配置

扩展编译完成后并不是就可以使用了,还需要将扩展添加到 PHP 的配置文件中并启用;

  1. vim /usr/local/php/etc/php.ini #编辑PHP配置文件;

查找 extension = 将 extension = “smbclient.so” 添加到下面并去掉前面的分号;

0x06 添加完成

修改完 PHP 的配置最后要做的一步就是重启 PHP 让添加的扩展生效启用。然后再使用命令查看已安装的拓展 smbclient 已经添加好了;

  1. lnmp php-fpm restart #lnmp环境php的重启命令;

标签

发表评论

苏ICP备2023052359号-1