PHP通路報Call to undefined function app\sign\.....() 類錯誤,這類錯誤我隻遇到了兩例,因為虛拟機安裝PHP7.2的時候沒能正确安裝zlib包,導緻的PHP72的某些ext檔案下的依賴沒有安裝,是以出現了缺少某些依賴的問題。就我遇到的兩例進行一下說明。
首先是openssl下面的一個方法找不到。使用 "/其他路徑/php7/bin/php -m"指令檢視PHP的安裝依賴,發現沒有openssl這個安裝依賴,是以需要重新安裝。上篇講到php.ini的處理方式,這裡不做贅述,但是此處會用到。
步驟如下:
1,進入PHP源碼中openssl的擴充目錄在/php-7.2.4/ext/openssl
2,運作phpize
/安裝目錄/php7/bin/phpize
3,執行安裝
#初始化設定
./configure --with-openssl --with-php-congfig=/PHP安裝目錄/php7/bin/php-config
#編譯安裝
make && make install
4,安裝完成後,将php7/lib/php.ini中的 ;extension=openssl去掉; 就可以了
第二個是curl的跳轉無法實作,同樣使用“/安裝路徑/php7/bin/php -m”指令檢視發現缺少CURL這個依賴包,炮制如上方法在ext/curl下面安裝,發現沒有奏效。報錯顯示需要7.10以上的curl版本才可以。于是又重新在https://curl.haxx.se/download/下載下傳安裝了一個curl-7.2以上的依賴包。
安裝流程如下;
1,首先上傳到伺服器中,然後解壓
tar -zxvf curl-7.21.2.tar.gz
2,進入到curl目錄
cd curl-7.21.2
3,執行安裝
#初始化設定
./configure -prefix=/php目錄/curl --with-php-config=/php安裝目錄/php7/bin/php-config
#編譯安裝
make && make install
4,安裝完成之後進入到PHP源碼中的ext/curl目錄下執行類似openssl安裝啟動phpize,不過在初始化的時候需要指定安裝的curl目錄,這樣才能通路到新安裝的curl
./configure --with-php-config=/php安裝路徑/php7/bin/php-config --with-curl=/php安裝路徑/curl
5,重新安裝部署一下,make && make install
6,修改php.ini 檔案,将;extension=curl 中的;去掉就可以了