公司在做高併發壓測,fastcgi,apc,ocache,opcache,
幾經考慮,最終考慮用opcache,因爲作爲 zend-opcache合併爲php5.5的分支版本,xcache的前途堪慮,
在環境的安裝上竟然折騰了半個下午沒有搞定,這個作下問題記錄。
先說安裝,
http://php.net/manual/zh/opcache.installation.php
官網的說明,因爲 5.2 5,3 5,4也可以用pecl來安裝,試了下倒是安裝成功了但啓動後也沒有報錯,但info信息中一起沒有,安裝過程如下 :
sudo yum install php54w-pecl-zendopcache
sudo pecl install zendopcache-7.0.3
;extension=opcache.so extension=/usr/lib64/php/modules/opcache.so ; opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1 |
sudo service php-fpm restart
但啓動後一直報錯502,fastcgi的日誌也只有warning的報錯
WARNING: [pool www] child 30464 exited onsignal 11 (SIGSEGV) after 22.168325 seconds from start
有點找不到思路, 經過一番檢查也沒有發現什麼問題,遂決定手動編譯opcache模塊來看看,
中間安裝的過程有個安裝包提示升級php-common,思緒沒理好,竟然把php5.4給卸載了!!簡單2到家了~~~不過也因爲這個原因才發現了問題,
# 重裝PHP環境這裏不再鰲述,只是重裝後我的環境由因爲官網源升級php由原來的php5.4.34變成了5.4.36..
# sudo wget http://pecl.php.net/get/zendopcache-7.0.3.tgz
# sudo tar–xv zendopcache-7.0.3.tgz
# sudo cd zendopcache-7.0.3
# sudo phpize
# sudo ./configure --with-php-config=/usr/bin/php-config
# sudo make
# sudo make install
#sudo sudo service php-fpm restart
這裏有變化的地方: 看README
zend_extension=/usr/lib64/php/modules/opcache.so #原來這裏寫的是extension,因爲opcahe是由zend管理,so~~~,中文博客害死人.國內的整體IT行業還是顯得太過浮躁了,不得不說~ //這裏囉嗦下經驗之談,,爲了速度大家可以找中文博客(這裏也建議是那個個人博客或原創博客,51cto,csdn,oschina等大博攤子大後,質量真是下降不少),但爲了質量大家一家要找英文文檔或者官網.至今從業以來,被中文博客坑的不少也不淺.
opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1 memcached.use_sasl = 1 |
這裏有警告信息:
[eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.4.34. Rebuild it for your PHP version (5.4.36) or download precompiled binaries. |
查了下eAccelerator 和opcache實現的功能類似,只是原理有所區別,考慮到這裏php.ini中將eAccelerator相關配置全部註釋,再重啓 php-fpm
$ sudo service php-fpm restart
久違的success,
# php –v ###也顯示正常
PHP 5.4.36 (cli) (built: Dec 20 201414:09:43)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014Zend Technologies
with ZendOPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
phpinfo()頁面也總算顯示出來了
問題是解決了,但非常遺憾的是因爲時間的關係沒有找到問題根源…
給大家提供些php5.4.的技術上問題,同時也給大家提供些上網搜索問題的小技巧吧。
~~~~~~~~~~~~~~~~~~不得不再吐槽下上傳文檔的格式亂的一塌糊塗,體驗極差,也不知道這塊51是否有排計劃改造~