天天看點

PHP通路報Call to undefined function app\sign\.....() 類錯誤

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 中的;去掉就可以了