php7從推出到現在,前兩天官方已經發佈到7.2版本,把自己升級和安裝php7中遇到的問題和解決方法做一個筆記,內容主要包括:1) mysql2) php3) nginx4) memcache擴展5) redis擴展 由於內容很長,會分為多篇文章來講述,當然你可能遇到比我更多的問題需要解決,因為我們 ...
php7從推出到現在,
前兩天官方已經發佈到7.2版本,
把自己升級和安裝php7中遇到的問題和解決方法做一個筆記,
內容主要包括:
1) mysql
2) php
3) nginx
4) memcache擴展
5) redis擴展
由於內容很長,
會分為多篇文章來講述,
當然你可能遇到比我更多的問題需要解決,
因為我們伺服器環境不一樣。
升級安裝php7要考慮的幾個方面
1) 性能提升
這一點無需質疑,
php7的性能比之前的版本,
性能至少提升一倍,
php7核心開發人員鳥哥也明確的說到這一點。
有人給鳥哥留言說,
升級到php7後,
公司節省了30台伺服器。
還有人說升級到php7後,
一年的KPI指標就已經完成了。
雖然php7性能明顯提高,
但是很多人也不會馬上升級,
因為原來的系統還可以用,
一直不願意動手。
子恆老師也是因為換伺服器,
才升級安裝到php7的。
二、 php擴展相容性
在使用php的web中,
絕大部分都用到了php擴展,
由於php7版本的架構,
有很大的變化,
所以一些以前的php擴展在php7里是不能夠使用,
或者需要把擴展也進行升級更新。
有下麵特別明顯的幾個:
2.1) mysql擴展
php7里已經不支持mysql擴展,
所以如果你的老系統里,
使用的是mysql來操作資料庫,
那麼需要改為mysqli,PDO之類的操作。
2.2) memcache擴展
memcached是很多web伺服器用到的一個緩存系統,
以前老版本的php的memcache擴展是無法安裝到php7上的,
需要一個新的memcache擴展,
子恆老師會在後面分享怎麼安裝。
三、 php函數相容性
升級到php7後,
以前的一些函數無法使用或者需要進行相應的調整。
3.1) 不支持ereg_replace()函數
很多人使用以前老版本的php開發時,
使用ereg_replace()函數,
php7後不支持,
解決的方法一般是把ereg_replace()使用preg_replace()函數替換
3.2) php7.1後不支持mcrypt系列函數
mcrypt其實也是一個php擴展,
主要用來加密和解密數據,
php7.1版本後,
就不支持mcrypt擴展的函數。
如果你的網站中,
有使用到mcrypt相關函數,
最多升級到php7.0.*的版本,
如果升級到php7.1以上版本時,
需要自己重新寫相關的加密解密函數,
官方推薦使用openssl_*系列的函數替換mcrypt系列函數
這是升級安裝php7要總體考慮的內容。