當前位置: 首頁>>技術教程>>正文


PHP5.4+ 使用Zend OpCache加速,性能提升30%【實測有效】

本文介紹的PHP性能優化方法,我們在阿裏雲centos網站服務器(nginx + php 5.4)上做了實測。在之前沒有安裝其他PHP加速工具的情況下,簡單安裝Zend Opcache之後,係統CPU負載大概從33%降低到了23%,優化幅度在30%+,非常可觀,值得推薦。

以下是優化前後的截圖:

圖一:安裝OpCache前的CPU負載,大約維持在33%。
cpu負載優化

圖二、安裝OpCache之後的CPU負載,大約維持在23%。
cpu負載優化

以下是轉載的文章,具體介紹了如何安裝Zend OpCache,以及如何重啟服務器,最終使得PHP網站的性能優化生效。

關於 Zend Opcache

Zend Opcache 原來叫做 Optimizer+ 是一款閉源但是可以免費使用的 PHP 優化加速組件, 後來 Zend 在 PHP Licence 下將其開源並改名為 Zend Opcache。

之所以要切換到 Zend Opcache,是因為各種評測結果都顯示 Zend Opcache 性能優於 APC,尤其是對 wordpress 的加速更是經過驗證的,而且從 PHP5.5 開始已經綁定了 Zend Opcache.

有關 Zend Opcache 的介紹和優點,網上已經有很多文章,我這裏就不再贅述了。不了解的同學可以看一下 這篇文章,也可以通過這篇文章了解PHP OpCache的工作原理

我的服務器環境

我的 Web 服務器環境是: CentOS 6.5 Final x86_64 + Nginx 1.4.4 + Apache 2.2.15 + PHP 5.4.28

之前裝有 APC、Zend Guard Loader 和 ionCube Loader.

以上軟件都是通過 YUM + remi 源安裝的(如今在我所有的 VPS 上都是采用這種方式來安裝軟件,一般不再編譯安裝,主要是速度快,便於升級)。

相信很多朋友還用的是 PHP 5.3, 建議升級 PHP5.4 吧,且不說短數組語法、閉包支持已經內置的開發用 Web server,哪怕隻是為了 wordpress 運行更快,也值得升級。當然隻是建議, PHP5.2, 5.3 都是可以用 Zend Opcache 的。

安裝 Zend Opcache

如果有安裝 eAccelerato, XCache, APC 等其它的優化加速組件,最好先卸載,就像在電腦上裝 XX 電腦管家必須先卸載 OO 安全衛士 或者 JJ 衛士等同類工具一樣,都保留的話不但沒有意義,而且會衝突。

我這裏沒卸載,主要是因為 Zend Opcache 沒有數據緩存 API,我在沒有 Memcached 的時候都會用 APC 來做 Laravel 的緩存驅動。

如果要卸載的話,執行:

yum erase php-pecl-apc

然後安裝 PHP Opcache【關鍵步驟】:

yum install php-pecl-zendopcache

安裝完成以後,在 /etc/php.d 目錄下會自動添加 Zend Opcache 的配置文件 opcache-default.blacklistopcache.ini.

打開 opcache.ini, 根據需要修改一下,下麵是我的:

zend_extension=/usr/lib64/php/modules/opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

正常來說,這樣就完成了 Zend Opcache 的安裝,通過 php -m 查看模塊是否正常加載,如果是apache服務器,執行 httpd -k restart, 性能優化就可以生效了。

特別注意:如果是nginx+php-fpm服務器,不需要修改上述配置,直接使用service nginx restart && server php-fpm restart重啟服務器的命令,就可以生效了。

擴展閱讀:Zend 擴展的加載順序

如果有多個 Zend Extension 同時安裝和使用,要注意加載順序。一般來說ionCube Loader要先加載,Zend Guard Loader可以放在最後。我這裏的加載順序是:

0-ioncube_loader.ini opcache.ini zend_guard_loader.ini

輸入 php -v, 看到:

PHP 5.4.28 (cli) (built: May  2 2014 19:09:57)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with the ionCube PHP Loader v4.6.1, Copyright (c) 2002-2014, by ionCube Ltd., and
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies

說明已經成功安裝和加載。然後 service httpd restart 重啟 Apache,打開瀏覽器訪問網站,驗證是否一切正常即可。

 

本文轉載自騰訊雲專欄博客:https://cloud.tencent.com/developer/article/1145876

更原始的版本來自:https://cloud.tencent.com/developer/article/1049821,但這個鏈接目前已經失效,所以隻能使用上述轉載的鏈接作為來源標注。

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4730.html,未經允許,請勿轉載。