一般會選用原始碼安裝 php,安裝 php 的過程指定要安裝的擴展,但是避免不了缺少某個擴展未安裝導致程式執行報錯的問題。以 fileinfo 為例,介紹一下怎麼加入 php 擴充。
通常遇到報錯:xxx function undefined,而這個函數是系統函數的話,那一定是你缺少某個擴充。添加擴充功能也非常簡單。首選確認目前的 php 是哪個版本,不同版本的 php 擴充會有些許出入。然後找到 Php 原始碼目錄,也就是從網路下載下來、解壓縮的 php 檔案包。新增擴充的時候需要在來源碼包裡面去執行指令。
1. 確認php 版本
php -v # PHP 7.4.4 (cli)
2. 找到php 執行檔的位置
whereis php # php: /usr/local/php /usr/local/php/bin/php
可以看出php 執行檔案在/usr/local/php/bin 目錄裡面
那麼嘗試執行phpize,保證這個檔案存在,phpize 指令在加入擴充功能的時候需要用到
/usr/local/php/bin/phpize -v # Configuring for: # PHP Api Version: 20190902 # Zend Module Api No: 20190902 # Zend Extension Api No: 320190902
3.進入php來源碼目錄
我的習慣是網路下載的軟體會放在/usr/local/src 下面,
cd /usr/local/src/php-7.4.4 cd /etc cd fileinfo
擴充功能都在原始碼目錄的etc 下面,裡面有curl,gd,ftp 等等擴充目錄,我要安裝fileinfo,所以到fileinfo 目錄裡面
4.開始安裝
#確定目錄下面有config.m4 文件,如果沒有,應該會有config0.m4 文件,把config0.m4 複製一份為config.m4,如果沒有這個文件,會報錯:can not found config.m4
/usr/local/php/bin/phpize ./configure make && make install
如果這幾行指令運行下來都沒有報錯,那麼說明擴充檔已經生成,並且已經自動移入對應位置。接下來就是修改 php.ini,追加 extension=fileinfo.so 到 php.ini 中。
5.修改php.ini,載入擴充檔
查看php.ini 的位置
php -i | grep php.ini #Configuration File (php.ini) Path => /usr/local/php/etc #Loaded Configuration File => /usr/local/php/etc/php.ini
可以看到php.ini 的位置: /usr/local/php /etc/php.ini
vim /usr/local/php/etc/php.ini #添加extension=fileinfo.so,保存 php -m | grep fileinfo #fileinfo
看到輸出fileinfo,至此,fileinfo 擴充功能安裝完畢!另外可以使用 pecl 指令安裝,更方便快速!
以上是Linux中如何安裝 PHP 擴充功能? (方法介紹)的詳細內容。更多資訊請關注PHP中文網其他相關文章!