php5.3.27源碼安裝之遇到的報錯

 

 PHP大家都知道是一門動態的網頁編程語言。LNMP也是大家熟知的一種架構。這裏面Linux   nginx   mysql  我們都已經安裝好了,現在就剩下php沒有安裝了。

我們要來源碼編譯安裝php5.3.27

環境背景:Linux  CentOS release 6.10 (Final)

nginx  nginx-1.6.2/ 源碼安裝。安裝目錄 /application/nginx -> /application/nginx-1.6.2/

mysql  二進制包安裝,安裝目錄 mysql -> /application/mysql-5.5.32/

首先編譯安裝一下libiconv-1.14

 

tar xf libiconv-1.14.tar.gz
ls
mv libiconv-1.14 /application/
ln -s /application/libiconv-1.14/ /application/libiconv
cd /application/libiconv
 ./configure --prefix=/usr/local/libiconv

make && make install

最後開始編譯安裝php

安裝php之前我們需要安裝它所需要的依賴包。

yum install zlib-devel libxml2-devel libjpeg-devel libiconv-devel \

freetype-devel libpng-devel gd-devel curl-devel libxslt-devel \
libcurl-devdel libmcrypt-devel mhash mcrypt

yum install libxslt-devel libmcrypt-devel

yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64

爲了踏平後面遇到的坑,先做個軟鏈接

ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/

touch  /software/php-5.3.27/ext/phar/phar.phar

然後添加一個路徑 echo "/application/mysql/lib" >>/etc/ld.so.conf.d/mysql.conf

ldconfig

我們下載好的php5.3.27放在/software裏

然後就是解壓,

./configure   

這裏的參數 有這些

./configure --prefix=/application/php5.3.27 \
--with-mysql=/application/mysql \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-zend-multibyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-ftp

 

make

makeinstall

最後最個軟鏈接

ln -s /application/php5.3.27/ /application/php

 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

後面總結一些網上的報錯。

 

 

安裝PHP過程中,make步驟報錯:(集中網絡上各種解決方法)

(1)
-liconv -o sapi/fpm/php-fpm

/usr/bin/ld: cannot find -liconv

collect2: ld returned 1 exit status

make: *** [sapi/fpm/php-fpm] Error 1

[root@localhost php-5.4.5]#


初步定位是iconv的問題
解決方法 把libiconv卸載掉
進入libiconv源碼目錄執行
#make uninstall
#make clean

# ./configure –prefix=/usr/local/libiconv
# make
# make install

在進入php源碼目錄

./configure php時加上參數--with-iconv=/usr/local/libiconv

(2)
/usr/bin/ld: cannot find -lltdl
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Error 1
解決辦法:安裝包 yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64

(3)
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Error 1

解決辦法:

請安裝lib所需的安裝包

yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel kernel

執行安裝完以後即可解決問題

make

make install

(4)
裝php環境出現

ext/iconv/iconv.o: In function `php_iconv_stream_filter_ctor’:
/usr/local/soft/php-5.2.14/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open’
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Error 1

我的編譯是這樣:

./configure –prefix=/usr/local/php –with-gd=/usr/local/gd –with-jpeg-dir=/usr/local/jpeg –with-png-dir=/usr/local/png –with-freetype-dir=/usr/local/freetype –with-mysql=/usr/local/mysql –enable-fastcgi –enable-fpm

解決辦法:

增加 – - disable-cli

(5)
編譯php時
ext/xmlreader/php_xmlreader.o: In function `zim_xmlreader_XML':
/usr/local/src/php-5.2.8/ext/xmlreader/php_xmlreader.c:1109: undefined reference to `xmlTextReaderSetup'
collect2: ld returned 1 exit status
make: *** [sapi/cgi/php-cgi] Error 1
解決辦法:折騰了半天,最後先make clean 一下,然後把所有libxml2相關的包都裝上重新編譯就ok了。

(6)
運行可能報錯 :我遇到xsl和mcrypt兩個庫報錯,重新安裝一下xsl的dev包就可以:
CentOS : yum install libxslt-devel libmcrypt-devel
Debian : apt-get install libxslt1-dev libmcrypt-dev
如果你有其他的庫不滿足,搜索一下該庫,安裝一下即可,這一步應該沒有太多問題。
編譯:
make
我在Debian下make正常,但在CentOS下卻提示make錯誤,
make: *** [sapi/fpm/php-fpm] Error 1 錯誤中出現 libiconv,應該是iconv包問題,
使用下面的命令替換即可:
make ZEND_EXTRA_LIBS='-liconv'
完成後:
make test
make install

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章