2014-06-10 70 views
0

使用fedora 20並安裝了php 5.5.8 phpinfo沒有顯示任何與opcache。我的opcache在哪裏,使用fedora並安裝了php 5.5.8

添加以下爲php.ini

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 

但在我的瀏覽器中打開一個PHP文件用的phpinfo不顯示我的任何opcache,甚至沒有我添加的設置(是的,我重新啓動httpd和改變其他設置在相同的文件中反映在phpinfo的輸出中)。

尋找cache php打動了我:

PHP-opcache.x86_64:在Zend OPcache

很奇怪,因爲根據documentation opcache只能被編譯爲一個共享的擴展。

如果已禁用的默認擴展的建築 - 禁用所有,必須在編譯PHP使用--enable-opcache選項OPcache可用的。

回答

2

事實上,在F20中的php-opcache被構建爲共享擴展:

[[email protected] local]# rpm -q -l php-opcache 
/etc/php-zts.d/opcache-default.blacklist 
/etc/php-zts.d/opcache.ini 
/etc/php.d/opcache-default.blacklist 
/etc/php.d/opcache.ini 
/usr/lib64/php-zts/modules/opcache.so 
/usr/lib64/php/modules/opcache.so 

我有點困惑,你仍可以修改php.ini文件,而不是/etc/php.d - 這是當天的菜在幾年裏。您應該在phpinfo的「附加.ini文件解析」部分中有opcache.ini。考慮到你已經修改了php.ini,我相信你已經有了很久的php.ini,它已經存在了很長時間,並且不再適合最新的PHP。

0

以供將來參考:

它看起來像安裝php-opcache.x86_64將重新安裝所有PHP軟件包。因此,「正常」的PHP二進制文件帶有--disable-all標誌,因此安裝opcache將需要安裝新的二進制文件。

我不知道這是否是正確的,但運行

yum install php-opcache.x86_64 

(請注意,我用的x86_64的)架構,因此可能會根據您的架構不同,裝fedora版本32/64 x86版)

之後安裝的我現在已經在我的php.ini opcache:

這個程序可以使用Zend腳本語言引擎:Zend的 引擎V2.5.0,Copyrig HT(c)中1998至2014年Zend技術 與Zend OPcache v7.0.4-dev的,版權(C)1999至2014年,由Zend技術 與Xdebug的V2.2.5,版權(C)2002年至2014年,由德里克Rethans的

+0

php-opcache不需要新的二進制文件。它只依賴於php二進制文件。 –

+0

@ user3713667 yum已經安裝了php 5.5。*,但這些二進制文件必須已經被編譯而沒有opcache。安裝php-opcahce.x86_64安裝了所有已安裝的二進制文件。 – HMR

+0

在F20中用php編譯所有的擴展名,然後把.so文件放在相關的rpms中,在php上加載動態鏈接。所以在配置中安裝和列出。檢查SRPM中的php.spec。 –