centos7的編譯安裝php5.3 (針對老系統必須安裝php5.3才能運行)


大家都知道,centos6以上yum都自帶5.4以上的php版本,可是一些老系統必須安裝 php-5.3該怎么辦呢。下面我來教大家一步步編譯安裝。看看我踩過的坑。

第一步: 網上下載php5.3的源碼包   wget   http://cn2.php.net/distributions/php-5.3.28.tar.bz2 或者直接在php.net里面下載好后直接傳到服務器

第二步:添加依賴運用 

       yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel

第三步:解壓下載的php源碼包。

     這里我是在網上下載的php-5.3.28.tar.bz2  以bz2結尾的文件。普通的壓縮tar -zxvf php-5.3.28.tar.bz2 肯定是不行的,因為bz2是一種更為有效的壓縮方式  。需要安裝 yum install bzip2,否則報錯。

第四步:配置php

cd php-5.3.28

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-sysvsem --enable-sockets --enable-pcntl --enable-mbstring --enable-mysqlnd --enable-opcache --enable-shmop --enable-zip --enable-ftp --enable-gd-native-ttf --enable-wddx --enable-soap

期間報錯 configure: error: xml2-config not found. Please check your libxml2

解決方式:yum -y install libxml2 libxml2-devel

再走一遍 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-sysvsem --enable-sockets --enable-pcntl --enable-mbstring --enable-mysqlnd --enable-opcache --enable-shmop --enable-zip --enable-ftp --enable-gd-native-ttf --enable-wddx --enable-soap

期間報錯:configure:error:no acceptable cc found in $path

解決方式:yum install gcc gcc-c++ gcc-g77

第五步 編譯 make

期間報錯: 錯誤: 提領指向不完全類型的指針*/php*/ext/dom/node.c:1955:5: 錯誤: 提領指向不完全類型的指針

解決方式: curl -o php-5.3.28.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt

cd php-5.3.28

patch -p0 -b < ./php-5.3.28.patch

再走一遍編譯make,報錯 libtool: link: `ext/date/php_date.lo' is not a valid libtool object

解決方式:make clean

再走一遍make

第六步 安裝make install

執行成功后,cp /usr/local/php/etc/php-fpm.conf.default php-fpm.conf

cp /root/php-5.3.28/php.ini-development /usr/local/php/etc/php.ini-development

cp /usr/local/php/etc/php.ini-development /usr/local/php/etc/php.ini

再將php-fpm的啟動程序 php-fpm 拷貝一份

cp /root/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

給權限

chmod +x /etc/init.d/php-fpm

加入開機啟動

chkconfig --add php-fpm

設置啟動等級

chkconfig --level 35 php-fpm on

第七步:

啟動service php-fpm start

期間又報錯,這里我已經崩潰了 Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running

解決方式:

ps -ef|grep php-fpm

先關掉所有進程

killall php-fpm

既然是pid 沒找到 ,那我進入/usr/php/etc/php-fpm.conf 這里面看看 找到 ;pid = run/php-fpm.pid 去掉前面的分號

再次啟動 發現又報錯

pm.max_spare_servers(0) must be a positive value在這里我已經不想再繼續了,完全凌亂了,再次找到百度大大,

解決方式:vi /usr/local/php/etc/php-fpm.conf

pm.start_servers=20

pm.min_spare_servers=5

pm.max_spare_servers=35

將這3行 的注釋去掉

,再次啟動 service php-fpm start

完美 手工 !!!

此篇文章獻給和我一樣奮斗在事業單位的程序員們,因為事業單位大多數老系統,不能隨意更換。大家一起加油!

 

ps:php -V 查看不到php版本 ,那是因為你沒有把php放在環境變量里面 export PATH=$PATH:/usr/local/php/bin

再次echo $PATH,可以看到成功了。新建個php文件 php php文件 運行php 發現有結果證明成功了。寫到這里 nginx 和 mysql 直接yum 安裝吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM