由於要使用了laravel5.1,php要升級到5.5以上。具體環境是Aliyun Cent OS 7.0。由於阿裡的yum源lastest只有5.4,laravel5.1必須php5.5,加了幾個網上的yum源,各種各樣的問題,所以只能麻煩的編譯安裝了。
首先網上這類的文章非常多,每個人的升級目的,要升級的組件都不完全一樣。最好的說明文檔還是官方安裝文檔,如果php官網的安裝失敗,再去搜索相關問題。我最終靠的是官網上Apache 2.x on Unix systems這篇文檔。
1.下載
http://php.net/downloads.php
1 wget http://cn2.php.net/get/php-5.5.33.tar.gz/from/this/mirror 2 #下載完改一下名字 3 mv mirror php-5.5.33.tar.gz 4 tar -zxf php-5.5.33.tar.gz php-5.5.33 5 cd php-5.5.33
2.編譯安裝
#這一步出錯了#############################
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql
#這一步出錯率#############################
我在--with-apxs2=/usr/local/apache2/bin/apxs這一步出了問題,去掉這個參數即使安裝也是不行,這個參數編譯出libphp5.so並用在httpd.conf中,find / -name apxs2搜不到結果。我找了很久,發現是我的apache有問題,不知道為什麼5.3的時候沒有這個問題(不管了)。
yum install httpd-devel
雖然apxs2還是沒有,但能找到apxs了:
1 find / -name apxs2 2 find / -name apxs 3 /usr/bin/apxs
接下來幾步一點點來,比較耗時:
1 ./configure --with-apxs2=/usr/bin/apxs --with-mysql 2 make 3 make install
#之後發現單獨編譯pdo_mysql擴展有問題,換了這句重新編譯
#./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/bin/apxs
得到類似結果為安裝成功:
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20121212/ ... ... ... Wrote PEAR system config file at: /usr/local/etc/pear.conf You may want to add: /usr/local/lib/php to your php.ini include_path /usr/local/src/php-5.5.33/build/shtool install -c ext/phar/phar.phar /usr/local/bin ln -s -f phar.phar /usr/local/bin/phar Installing PDO headers: /usr/local/include/php/ext/pdo/
3.配置
復制php.ini
#這個位置一定不能錯,編譯.configure的時候我沒有制定php.ini的位置,默認就是這裡,
#如果跳過這一步,後面不會出問題,但是你將來該php.ini,比如安裝擴展什麼的,去修改/etc/php.ini(你原來的)的話都是無效的。
cp php.ini-development /usr/local/lib/php.ini
#這裡我建議把原來的php.ini改掉,這樣不會影響以後的find
#你的原來不一定是這裡,建議find一下
mv /etc/php.ini /etc/php.ini.back
修改httpd.conf
find / -name httpd.conf vi /etc/httpd/conf/httpd.conf #加入這兩句(310行左右) AddType application/x-httpd-php .php .php3 .phtml .inc AddType application/x-httpd-php-source .phps #可能是升級的原因,這一句我本來就有,沒有要加(50行左右) LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
重啟apache:
service httpd restart
測試一下:
php -v
新建一個phpinfo.php訪問一下:
<?php echo phpinfo();
結果完美:
可以需要安裝一些依賴,如gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap,這些就交給yum吧。
dreamingodd原創文章,如轉載請注明出處。