centos下升級php5.3到php5.6
檢視並刪除原有的php5.3
原文地址:http://blog.csdn.net/na_beginning/article/details/53414122
檢視原有的php版本:
php -V
- 1
- 2
檢視已經安裝的php的包:
yum list installed | grep php
- 1
- 2
可以看到如下原有的安裝包:
php-common.x86_64 0:5.3.3-38.el6
php-gd.x86_64 0:5.3.3-38.el6
php-ldap.x86_64 0:5.3.3-38.el6
php-mysql.x86_64 0:5.3.3-38.el6
php-odbc.x86_64 0:5.3.3-38.el6
php-pdo.x86_64 0:5.3.3-38.el6
php-pear.noarch 1:1.9.4-4.el6
php-pecl-apc.x86_64 0:3.1.9-2.el6
php-pecl-memcache.x86_64 0:3.0.5-4.el6
php-pgsql.x86_64 0:5.3.3-38.el6
php-soap.x86_64 0:5.3.3-38.el6
php-xml.x86_64 0:5.3.3-38.el6
php-xmlrpc.x86_64 0:5.3.3-38.el6
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
全都是5.3.3-38.el6版本的。
如果不刪除原有的5.3的包,安裝php5.6的包時會報衝突的錯誤。
刪除5.3的包:
yum remove php.cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mysql.x86_64 php-odbc.x86_64 php-pdo.x86_64 php-pear.noarch php-pecl-apc.x86_64 php-pecl-memcache.x86_64 php-pgsql.x86_64 php-soap.x86_64 php-xml.x86_64 php-xmlrpc.x86_64
- 1
- 2
刪除後可以確認一下是否已經完成刪除:
yum list installed | grep php
- 1
- 2
結果應該為空。
安裝php5.6的包
由於centos 6.* 原有的rpm中不包含5.6的包的資源,所以需要先安裝匯入php的安裝源:
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
- 1
- 2
然後安裝5.6相關的包:
yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-odbc.x86_64 php56w-xml.x86_64 php56w-xmlrpc.x86_64 php56w-soap.x86_64
- 1
- 2
全部安裝成功後確認一下:
yum list installed | grep php
- 1
- 2
結果如下:
php56w.x86_64 5.6.27-1.w6 @webtatic
php56w-cli.x86_64 5.6.27-1.w6 @webtatic
php56w-common.x86_64 5.6.27-1.w6 @webtatic
php56w-gd.x86_64 5.6.27-1.w6 @webtatic
php56w-ldap.x86_64 5.6.27-1.w6 @webtatic
php56w-mbstring.x86_64 5.6.27-1.w6 @webtatic
php56w-mysql.x86_64 5.6.27-1.w6 @webtatic
php56w-odbc.x86_64 5.6.27-1.w6 @webtatic
php56w-pdo.x86_64 5.6.27-1.w6 @webtatic
php56w-soap.x86_64 5.6.27-1.w6 @webtatic
php56w-xml.x86_64 5.6.27-1.w6 @webtatic
php56w-xmlrpc.x86_64 5.6.27-1.w6 @webtatic
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
重啟php-fpm:
/usr/local/php/sbin/php-fpm restart
- 1
- 2
然後執行:
php -v
- 1
- 2
應當顯示 5.6.
升級完畢。
不過存在一個疑問:
直接在伺服器執行php -v的版本是5.6,但是在nginx伺服器寫一個info.php,內容如下:
<?php
phpinfo();
?>
- 1
- 2
- 3
- 4
然後再瀏覽器訪問:http://ip:port/info.php,顯示的頁面卻還是舊的5.3版本。這個問題還沒有搞清楚。
對於上述疑問,追蹤進展為:
上面雖然刪除安裝了php的依賴包,但是舊的php版本本身沒有刪除,也就是說centos上存在兩個版本的php,升級php依賴包後,執行 php
-v 只不過系統訪問的路徑預設訪問的是5.6版本的包,但是通過其他應用,比如nginx去訪問的時候訪問的還是舊的5.2版本的php。
檢查過程如下:
執行php -v: 5.6
檢視系統所有版本的php:
find / -name php
- 1
- 2
顯示結果中可以找到下面兩個命令:
/usr/local/php/bin/php
/etc/bin/php
- 1
- 2
- 3
分別執行 /usr/local/php/bin/php -v 和 /etc/bin/php -v 可以看到,一個是5.2版本,一個是5.6版本,這就是為什麼上面php -v 看到的是5.6版本,而phpinfo看到的是5.2版本的直接原因。
根本原因:通過nginx訪問php請求,nginx轉發到127.0.0.1:9000,監聽9000埠的php-fpm接收到請求後,將請求轉交給對應的php直譯器進行處理,也就是說使用的是哪個版本的php是由php-fpm決定,而php-fpm只是php的一個補丁,通過編譯安裝php時configure時加上引數
–enable-fpm
安裝php-fpm,所以安裝php時就已經決定了php-fpm呼叫的是哪一個版本的php,如果需要改變使用的php版本,只能重新下載更新版本的php原始碼,然後重新編譯安裝帶上–enable-fpm引數,這樣才能成功改變phpinfo()顯示的版本。
重新安裝php5.6的方法參考linux安裝nginx和mysql和php.md。
另外,想要找到系統採用的當前php.ini配置檔案的話,可以通過下面的方式查詢:
find / -name php.ini
- 1
- 2
這樣可能會顯示多個php.ini路徑,然後執行如下命令可以獲取當前被系統採用的php.ini配置檔案:
php -i | grep php.ini
相關文章
- php5.6 升級至7.2.7PHP
- php5.3升級指令碼PHP指令碼
- CentOS升級MySQL到5.5CentOSMySql
- centos 升級nginx到1.10.2CentOSNginx
- Centos8升級到Centos 8 stream教程。CentOS
- Centos7 升級openssh到最高版本CentOS
- CentOS6.9下升級預設的OpenSSH操作記錄(升級到OpenSSH_7.6p1)CentOS
- 4、CentOS6.5下安裝php5.3CentOSPHP
- CentOS 6下gcc升級的操作記錄(由預設的4.4.7升級到6.4.0版本)CentOSGC
- 從CentOS 7.0升級到7.7版本CentOS
- 在CentOS中Gitlab升級,6.0到6.5CentOSGitlab
- centos 下如何正確升級pythonCentOSPython
- Linux環境下CRS升級到10.2.0.4.2 Database升級到10.2.0.4.3LinuxDatabase
- Centos 7升級 PHP7 到 PHP8CentOSPHP
- CentOS 6.9 升級 glibc 2.12 到 2.17(qbit)CentOS
- Centos6.5 python2.6.6 升級到2.7.5CentOSPython
- centos下升級git版本的操作記錄CentOSGit
- CentOS GCC 升級 6.0CentOSGC
- CentOS 8 升級核心CentOS
- Centos 升級 pythonCentOSPython
- centos7 openssl升級版本到OpenSSL 1.1.1nCentOS
- Windows下Mysql5.6升級到5.7WindowsMySql
- Centos下給PHP一鍵升級高版本7.2.0CentOSPHP
- Centos5.6簡單方法升級php到php5.3.3CentOSPHP
- centos 5.6核心升級到 linux-3.2.23 報錯!CentOSLinux
- CentOS 7核心升級教程。CentOS
- centos 7 版本升級nginxCentOSNginx
- CentOS系統核心升級CentOS
- centos7 核心升級CentOS
- [c++/gcc] Centos 7.9升級 gcc 4.8.5 到 gcc11 [轉]C++GCCentOS
- spring升級到3.1.1 hibernate升級到4備忘Spring
- wdcp升級php5.3無法安裝PDO_MySQL的解決PHPMySql
- Mac 下 Homestead 3.0.0 升級到 Homestead 6.3.0Mac
- windows 下oracle從10.2.0.1升級到10.2.0.4WindowsOracle
- CentOs下手動升級node版本CentOS
- CentOS6.X 升級核心CentOS
- centos-6.7 核心升級(轉)CentOS
- centos 6.7 python 版本升級CentOSPython