不重新編譯PHP為PHP安裝zlib擴充套件

2021-07-30 21:45:04 字數 1843 閱讀 1185

原文:

一台伺服器,編譯php時未設定引數,導致缺少zlib擴充套件,無法執行解壓縮,錯誤資訊是:「fatal error: call to undefined function gzopen」。

首先找到當初編譯php時的目錄,如果沒了就找乙個相同版本的解壓縮,解壓縮到php(假設)目錄下,然後以root身份進入php/ext/zlib/目錄下

執行phpize,報錯:「cannot find config.m4.」,我找了半天沒找到這個檔案,但是看到乙個類似的「config0.m4」,就cp了乙個:

cp config0.m4 config.m4

這個解決方法有點山寨,我也不知道啥意思,為什麼多了乙個0,反正親自測了能行。

再執行phpize,又報錯:「cannot find autoconf. please check your autoconf installation and the $php_autoconf environment variable. then, rerun this script.」

原來是autoconf不存在,通過yum安裝:

yum -y install autoconf

再執行phpize,嗯,再敢報錯看我不打斷你的狗腿!!這次順利的執行完了。

# phpize

configuring for:

php api version: 20100412

zend module api no: 20100525

zend extension api no: 220100525

在這個目錄就生成了乙個configure指令碼,再執行以下**獲得php-config指令碼的位置備用:

# which php-config

/usr/local/php/bin/php-config(你的電腦上未必是這個結果)

再執行以下**獲得zlib的位置備用:

# find / -name zlib.h

/usr/include/zlib.h

都準備好之後就開始執行配置

./configure --with-php-config=/usr/local/php/bin/php-config --with-zlib=/usr

注意:--with-zlib=/usr這裡不需要把檔案目錄寫全,寫到這裡就行了,php的擴充套件在編譯時都是這個德性,習慣就好了。

然後就是正式的編譯和安裝了:

make && make install

installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/

然後在php.ini的最後增加這麼一句:

vi /usr/local/php/etc/php.ini 

extension=zlib.so

再重啟php的cgi或者fastcgi或者php-fpm就可以了,具體重啟什麼要看伺服器通過什麼方式執行的php。

平滑啟動nginx

/usr/local/nginx-1.11.10/sbin/nginx -s reload 

執行php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini

一切順利的話,在phpinfo中就可以看到zlib的資訊了,這就證明php的zlib擴充套件已經順利的安裝成功了。

頂 0

踩 0

我的同類文章

不重新編譯php, 安裝curl擴充套件

1.安裝curl cd softwar wget tar zxvf curl 7.24.0.tar.gz cd curl 7.24.0 cd curl 7.24.0 configure prefix usr local curl sudo make sudo make install 安裝php擴充...

不重新編譯PHP給php增加openssl模組記錄

引用 yum y install openssl usr local bin 是php的安裝目錄 切換到php安裝目錄的etx openssl目錄 cd root soft php 5.2.8 ext openssl 引用 usr local bin phpize cannot find confi...

不重新編譯php, 擴充套件gd庫

1.準備 wget wget wget wget mv download?source files freetype.tar.bz2 2.安裝 freetype tar jxvf freetype.tar.bz2 cd freetype 2.4.10 configure prefix usr loc...