php | 捕夢網 Blog https://blog.pumo.com.tw 網路安全、資安服務、雲端主機、主機租賃、主機代管、虛擬主機、網站代管專家 Wed, 14 Nov 2018 09:24:44 +0000 zh-TW hourly 1 https://wordpress.org/?v=6.5.5 邁向生命末了,php 5年底終止安全更新。幾百萬網站恐陷入風險。 https://blog.pumo.com.tw/archives/932 https://blog.pumo.com.tw/archives/932#respond Tue, 13 Nov 2018 09:45:13 +0000 http://blog.pumo.com.tw/?p=932 根據php官方列出的php各版本更新支援時程表,php 5.6安全性...

The post 邁向生命末了,php 5年底終止安全更新。幾百萬網站恐陷入風險。 first appeared on 捕夢網 Blog.

]]>
根據php官方列出的php各版本更新支援時程表,php 5.6安全性更新,即將在2018今年底停止支援了。這意謂使用php 5.6或之前版本的網站,任何安全性的漏洞或bug都將不再更新。

較新版的php 7.0同時將於2018年12月起停止支援,不再提供安全性更新。php 7.1版也將在12月停止主要更新,2019之後結束安全更新。

假設駭客發現並利用了php舊版本的漏洞,全世界幾百萬網站及數不清的網站用戶將會陷入風險當中。

 

php官方網站的支援版本及時程表:

php版本

發行日期

主要更新

停止日期

安全更新

停止日期

5.6

2014.02

2017.01

(已停止)

2018.12.21

(即將停止)

7.0

2015.12

2017.12

(已停止)

2018.12.03

(即將停止)

7.1

2016.12

2018.12.01

(即將停止)

2019.12.01

 

7.2

2017.11

2019.11.30

 

2020.11.30

 

 

資料來源:php官方網站

 

根據國外網路科技應用的調查公司W3Techs統計指出,在他們研究的網站樣本中,使用php比例高達78.9%,而使用php5 (包含5.6及更舊的版本)的網站比例又占了60.7%。資料來源:調查公司W3Techs

這代表您的網站如果是用php 5.6或更舊的版本寫成的,明年2019年1月1日起,將被停止支援安全性更新,屆時陷入被駭或被植入惡意程式的風險。

 

捕夢網提醒您

請即刻查看您所使用的php版本,如需升級請立即更新。或洽捕夢網客服或業務,我們將協助您應對。

 

如何查看你的php版本

如果你使用的虛擬主機後台是 cpanel 管理介面

登入帳密→點「多 PHP 管理器」→即可查看php版本

如果你使用的虛擬主機後台是 plesk  管理介面

登入帳密→點「PHP 設定」→即可查看php版本

The post 邁向生命末了,php 5年底終止安全更新。幾百萬網站恐陷入風險。 first appeared on 捕夢網 Blog.

]]>
https://blog.pumo.com.tw/archives/932/feed 0
新版PHP 7效能實測:Drupal 7能快70%,碎形計算大勝Ruby和Python https://blog.pumo.com.tw/archives/689 https://blog.pumo.com.tw/archives/689#respond Wed, 29 Jun 2016 03:21:44 +0000 http://blog.pumo.com.tw/?p=689 效能翻倍是PHP 7最大特色,但到底能快多少呢?Zend公司展開了一...

The post 新版PHP 7效能實測:Drupal 7能快70%,碎形計算大勝Ruby和Python first appeared on 捕夢網 Blog.

]]>

效能翻倍是PHP 7最大特色,但到底能快多少呢?Zend公司展開了一場新舊版效能實測大車拼,來看看Drupal、WordPress、Laravel、Zend框架換新版PHP後的效能如何

PHP 7才剛在12月3日正式釋出,網頁開發框架Zend公司立刻發表了一份PHP新舊版效能大車拼報告,除了PHP 7和PHP 5.6之外,也把HHVM 3.7版納入一起比較。

Zend公司選擇了幾套知名軟體和框架來比較,包括了電子商務平臺Magento、開源CRM軟體SugarCRM、CMS系統Drupal和WordPress、開發框架Laravel和Zend Framework,甚至還用同一套碎形演算法來和其他熱門動態語言如Ruby、Python、Perl相比。

以每秒可處理的請求數來比較Drupal和WordPress在不同環境中的執行效能,可以看出Drupal 7效能提升最大,而且光從PHP 5.6換成PHP 7幾乎可以增加70%的效能。而Druapl 8本身效能優化成效不錯,因此在新舊版PHP上的影響差異較小。而WordPress執行環境從5.6換成新版PHP 7後,明顯效能可以倍增。另外不論是Drupal或WordPress的那個版本,PHP 7也都以些微差異贏過了HHVM 3.7。

PHP 7對開源CRM軟體SugarCRM的效能改善則是超過了100%,甚至也大幅贏過使用HHVM 3.7環境的效能。電子商務平臺Magento也能藉助新版來提高效能。

Zend公司自家的PHP開發框架Zend Framework和熱門的PHP前端框架Laravel都能獲得不小的效能改善,而且PHP 7對這兩個框架的加速效果也大幅贏過HHVM 3.7。

最後一項大車拼是和其他語言的比較。Zend公司使用PHP 7、Ruby 2.1、Python 2.7.8和Perl 5.18.4來執行同一個碎形演算法,計算時間越短表示速度越快,實測結果也是PHP 7大勝。

文章來源:http://www.ithome.com.tw/news/100771

圖片來源:https://pixabay.com

 

The post 新版PHP 7效能實測:Drupal 7能快70%,碎形計算大勝Ruby和Python first appeared on 捕夢網 Blog.

]]>
https://blog.pumo.com.tw/archives/689/feed 0
PHP核心開發者告訴你PHP 7的五大效能密技 https://blog.pumo.com.tw/archives/615 https://blog.pumo.com.tw/archives/615#respond Mon, 13 Jun 2016 05:53:20 +0000 http://blog.pumo.com.tw/?p=615 PHP 7最大亮點是效能提升,但若只是現有網站的舊版PHP環境升級到...

The post PHP核心開發者告訴你PHP 7的五大效能密技 first appeared on 捕夢網 Blog.

]]>
php_7

PHP 7最大亮點是效能提升,但若只是現有網站的舊版PHP環境升級到新版,還不足以充分發揮PHP 7的能耐,PHP 7 主要開發者惠新宸公開了5個PHP開發者一定要知道的新版效能密技

743_feng_mian_4_p26-27-box-960

PHP 7主要開發者惠新宸表示,PHP 7是近10年來最大的版本升級,他同時也使用Zend Framework、Drupal及Laravel等多種框架,分別在PHP 5.6及PHP 7兩種環境進行測試。 而測試結果顯示,使用PHP 7有顯著的效能成長,像是Zend Framework及WordPress的效能增進甚至達1倍之譜。(圖片來源/惠新宸)

標榜十年來最大改版的PHP 7,最大亮點是翻倍的效能提升,但若只是現有網站的舊版PHP環境升級到新版,還不足以充分發揮PHP 7的能耐。

 密技1  啟用Zend Opcache

PHP 7 主要開發者惠新宸也公開了5個PHP開發者一定要知道的新版效能密技。

Opcache是一個將預先編譯的腳本程式快取在共用記憶體的功能,但PHP預設設定會關閉這項功能,因此,很多開發者會忘了善用這個優化機制。即使不啟用Opcache,PHP 7的效能已可超越5.6版,啟用後還可以更快。可以直接在php.ini檔中加入以下設定來啟用Opcache。

密技2  使用新版編譯器

要將PHP腳本程式編譯成二進位檔時,惠新宸推薦使用GCC 4.8版以上的編譯器。他解釋,因為GCC 4.8版以上才會開啟Global Register對opline和execute_data的支援,有助於提高5%的效能。儘管舊版GCC支援,但舊版這項支援功能還有臭蟲,因此,惠新宸建議GCC得升級到4.8版以上。

 密技3  啟用HugePage

啟用Linux系統的HugePage(大型暫存分頁機制)可讓PHP的Text段落和記憶體中的分頁都改用HugePage來儲存,來減少TLB(Translation Lookaside Buffer)遺失而提高效能。原本系統記憶體多以4KB來分頁,但啟用HugePage後則改以2MB來分頁。

CPU存取記憶體時,得查表才能得知虛擬定址和記憶體定址間的轉換,CPU會透過TLB暫存來加速查表。

若分頁單位越小,分頁筆數就越多,查表時就會得建立越多TLB,容易造成暫存資料的遺失而得重查,啟用了大型HugePage分頁設定就能減少TLB數量而降低遺失的問題。

若以CentOS 6.5為例,可透過sudo sysctl vm.nr_hugepages=512指令,來分配512個預留的大型暫存分頁,然後在php.ini設定檔中加入 opcache.huge_code_pages=1的敘述就能啟用。

 ★ 延伸閱讀密技3 《讓你的PHP 7更快之Hugepage》

 密技4  Opcache檔案快取

開啟了Opcache File Cache功能後,可以將Opcache將Opcode暫存到外部檔暗中,有助於改善某些腳本程式的效能。

只需在php.ini設定檔中加入opcache.file_cache=/tmp,就可以在/tmp目錄下快取Opcode二進位檔案,可跨PHP生命周期存在。

 密技5  使用PGO預執行最佳化

如果PHP環境只用於執行單一程式,例如只來執行WordPress或Drupal,惠新宸建議,使用者可重新編譯PHP 7並使用GCC的PGO預執行最佳化機制,來編譯出一個專為你量身打造的特定PHP 7版本,來提高效能。

例如要優化WordPress 4.1時,可下達make prof-gen指令後,先用hp-cgi執行100次WordPress首頁程式來產生Profile資訊,再執行make prof-clean和make prof-use && make install,來編譯出一個量身打造的專屬高效能PHP 7版本。

 

資料來源:http://www.ithome.com.tw/news/101602
圖片來源:https://pixabay.com

The post PHP核心開發者告訴你PHP 7的五大效能密技 first appeared on 捕夢網 Blog.

]]>
https://blog.pumo.com.tw/archives/615/feed 0
10年漫長等待,PHP 7終於問世 https://blog.pumo.com.tw/archives/607 https://blog.pumo.com.tw/archives/607#respond Mon, 13 Jun 2016 03:37:23 +0000 http://blog.pumo.com.tw/?p=607 經過10年的漫長等待,PHP 7終於正式問世了。這個影響全球8成網站...

The post 10年漫長等待,PHP 7終於問世 first appeared on 捕夢網 Blog.

]]>
經過10年的漫長等待,PHP 7終於正式問世了。這個影響全球8成網站的開發語言,一舉從5.0版,跳過了功敗垂成的6.0版,一舉進入了7.0時代

743_feng_mian_2_p25-960

 

這個版本,PHP開發者們足足等了10年。

繼2004年的PHP 5之後,PHP官網終於發布了磨劍10年的PHP 7.0新版本。這是189位開源開發者,花了兩年時間,送出超過1萬次程式碼更新,才完成的新版本。

20年前初夏,1995年6月8日,一位愛解決問題的C語言軟體工程師,苦於不知如何用C來做一個自己的個人首頁。因為在網頁開發技術剛起步的這個時候,沒有人提供出C語言版的網頁開發環境。

他索性決定自己來寫一個,並命名為Personal Home Page Tools,簡稱PHP Tool。這就是日後用來開發出Facebook、Yahoo等全球2億多個網站的PHP語言最初的版本。而這位開發者,就是日後揚名開發界的PHP之父Rasmus Lerdorf。

PHP隨著網際網路從1996年開始起飛,也迅速成為開發人員打造網站的首選技術。

2008年,光在臺灣每4個網站就有一個採用PHP

PHP語言一路跟著作業系統,從32位元架構開始跨入64位元,在2004年推出的PHP 5更是一個體質大改造的版本,順利地跨入了物件導向架構的世界,穩坐網站開發技術龍頭。即使微軟打著容易上手為號召,以ASP網站開發技術搶攻市場,PHP仍是許多網站開發者心目中的首選。2008年時,光在臺灣,每4個網站,至少有1個是採用PHP開發。

不過,在快速進化的IT世界中,越早出現的技術,往往也背負了越重的轉型包袱。

2005年時,PHP在Unicode的支援過程上,重重摔了一跤。Unicode支援原本要成為PHP 6的主打特色,但在開發社群中對多國語言支援的爭論,和PHP效能議題的質疑,衍生出了漫長的拉扯論戰,也延宕了PHP 6的發展,甚至PHP 5.3的小改版都搶先在2009年支援了PHP 6的大部分功能(除了Unicode支援外),隔年春天,PHP 6計畫正式宣告失敗而終止,也讓PHP技術的發展,蒙上了一層陰霾。

全球2.4億個網站後端開發語言是PHP

PHP 5持續改版推陳出新,但總是處於一種小改小修的優化,而鮮有從根本上革新的大進步。儘管語言進展緩慢,但PHP的影響力卻是持續不墜,甚至越來越大,2013年初,根據Netcraft網站統計,全球超過2.4億個網站的後端開發語言用的就是PHP。

743 封面2 (P25)-600-1

PHP之父Rasmus Lerdorf今年5月來臺演講時透露,Facebook為了自家網站速度而重新改寫了PHP編譯引擎的JIT作法,引起了PHP開發者對於PHP語言效能的再思考,也促使PHP 7的問世。(圖片來源/iThome)

 

臉書JIT優化作法促發了PHP重構計畫

Rasmus Lerdorf今年5月來臺演講時透露,Facebook為了自家網站速度而重新改寫了PHP編譯引擎的JIT作法,引起了PHP開發者對於PHP語言效能的再思考。

2014年,開始有一群PHP開發者(包括了來自中國現任職於鏈家網的惠新宸)展開PHP語言的重構,也就是PHP NG專案(PHP New Generation),為了提高效能,他們不惜重新檢視甚至改寫PHP語言原始碼,一試結果發現,PHP程式的效能大幅提升了30%。

舊版PHP語言的發展目標是希望盡可能地提供更多功能,來滿足任何網站開發的需求,但新的PHP 7,則是希望兼顧效能和功能。Rasmus Lerdorf這樣說。

但要對一個已經發展了10年,歷經了全球開源開發人員精心雕琢之後的開發語言,還想要找出很大效能突破的關鍵,不是一件容易的事。

也因此,PHP 5重構專案PHP NG的巨大成效,也獲得PHP開發社群支持,成了PHP 7的基礎,開發社群轉而細細地推敲每一行PHP程式碼,想辦法從各種地方找出效能優化的關鍵。

PHP核心開發團隊花了很多心力來縮減PHP程式執行時所需搬動的記憶體位元數,像是將PHP儲存變數的資料架構zval從24位元縮減至16位元。或是重新檢視CPU層級的程式碼運作過程,來確保PHP 7程式碼更能符合新一代的處理器架構。

以zval優化來說,Rasmus Lerdorf曾解釋,因為zval是用來儲存變數的PHP內部的C語言基礎資料結構,不論是整數、長整數、雙精度浮點數、浮點數、陣列及物件都會儲存在zval數值。

原本在PHP 5中zval所用的容量大小是76 位元組,但到了PHP 7,則將zval容量縮減為52位元組,Rasmus Lerdorf表示,這意味著,建立PHP 7的基本資料結構縮減了24 位元組,PHP程式「每次要搬動的資料單位變小了,所以可以執行得更快,這是其中一個關鍵改變。」Rasmus Lerdorf表示。

不過,Rasmus Lerdorf也強調,每一次修改的優化可能只改善不到0.5%的效能,但經過了數百次如此這樣斟酌推敲的成果,累積起來就讓PHP 7的效能足足比舊版提高了一倍。

儘管從PHP 5升級到7也不是一件容易的事,但對全球2億個用PHP開發的網站而言,PHP 7無疑是一個解決既有網站效能瓶頸的新救星。

PHP新版12項新特色

除了效能提升之外, PHP 7其他新特色如大幅減少了記憶體使用,抽象化語法樹、一致性的64位元支援、例外處理架構優化、將致命錯誤(fatal error)轉為例外處理、強化亂數產生器的安全性、移除舊式SAPI和例外處理,增加了null-coalescing操作符「??」、宣告方式上則新增了Return和Scaler型別,另外也增加了Anonymous Classes、Zero cost asserts等新特色。

PHP原始程式碼除了可在GitHub上取得,官網也提供了一個下載網址,而Windows環境的PHP 7執行檔下載網頁則是windows.php.net/download

不過,有不少PHP 7功能沒有向下相容,例如在PHP 5中的致命錯誤(fatal errors),在PHP 7中改成異常(exceptions)處理機制,因此一些舊有錯誤事件呼叫機制會失效。或像是foreach指令不再能更新陣列內部指標、list()函數不能反向分派數值、global不再支援可變變數等。PHP官網也提供了一份向下相容性問題的詳細說明。

資料來源:http://www.ithome.com.tw/news/101599
圖片來源:https://pixabay.com

The post 10年漫長等待,PHP 7終於問世 first appeared on 捕夢網 Blog.

]]>
https://blog.pumo.com.tw/archives/607/feed 0