在我內(nèi)網(wǎng)的 HomeLab 上部署 NextCloud 測試用。在部署的過程中需要用到 PHP 的 smbclient 這個擴展,就是在 NextCloud 上掛載我群暉的 SMB 共享作為存儲。已經(jīng)部署了 LNMP 環(huán)境,常用的一些 PHP 擴展 LNMP 已經(jīng)提供,這個 smbclient 屬于不常用的,所以只能自己手動添加編譯這個擴展到 PHP 中。記錄下過程以備后續(xù)用到。
0x01 查看擴展
在添加擴展前先檢查確認(rèn)下是否已經(jīng)安裝,使用命令可以查看 PHP 已經(jīng)安裝了哪些擴展;命令的路徑為 PHP 的安裝路徑;
/usr/local/php/bin/php -m #查看已安裝的擴展;

0x02 解壓源碼
添加編譯擴展需要在 PHP 的源碼中進(jìn)行,LNMP 在編譯的過程會自動解壓 PHP 源碼。安裝完畢會自動刪除已解壓的文件夾,進(jìn)入到 LNMP 的 src 目錄解壓 PHP 源碼到當(dāng)前目錄;
cd /root/lnmp1.9/src #進(jìn)入到lnmp src目錄;
tar -jxvf php-7.4.30.tar.bz2 #解壓PHP到當(dāng)前目錄;
cd php-7.4.30 # 進(jìn)入到PHP源碼目錄;
cd ext #進(jìn)入到PHP源碼擴展目錄;
wget http://pecl.php.net/get/smbclient-1.0.6.tgz #下載smbclient到當(dāng)前ext目錄;


0x03 添加擴展
將 smbclient 擴展下載 php 的擴展目錄后進(jìn)行解壓,解壓完畢后開始安裝擴展;
tar -zxvf smbclient-1.0.6.tgz #解壓smbclient擴展;
cd smbclient-1.0.6 #進(jìn)入到擴展目錄;
apt install libsmbclient-dev #安裝smbclient依賴;
/usr/local/php/bin/phpize #開始添加編譯擴展;
./configure --with-php-config=/usr/local/php/bin/php-config #開始添加編譯擴展;
make && make install #開始添加編譯擴展;




0x04 編譯完成
編譯完成后將會出現(xiàn)一下提示,如果沒有則需要留意錯誤提示;

0x05 添加配置
擴展編譯完成后并不是就可以使用了,還需要將擴展添加到 PHP 的配置文件中并啟用;
vim /usr/local/php/etc/php.ini #編輯PHP配置文件;
查找 extension = 將 extension = "smbclient.so" 添加到下面并去掉前面的分號;


0x06 添加完成
修改完 PHP 的配置最后要做的一步就是重啟 PHP 是添加的擴展生效啟用。然后再使用命令查看已安裝的拓展 smbclient 已經(jīng)添加好了;
lnmp php-fpm restart #lnmp環(huán)境php的重啟命令;








