PHP5.5中的Opcache不缓存任何内容

PHP5.5中的Opcache不缓存任何内容,php,lamp,opcache,Php,Lamp,Opcache,我在Ubuntu 14.04上有一个灯系统 我在php.ini的路径/etc/php5/apache2/php.ini中做了更改 我在php.ini中做了以下更改 opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=120 我

我在Ubuntu 14.04上有一个灯系统

我在php.ini的路径/etc/php5/apache2/php.ini中做了更改 我在php.ini中做了以下更改

opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=120
我之所以将opcache.enable_cli=1,是因为我在php-I中遇到了以下错误

Opcode Caching => Disabled
Optimization => Disabled
Startup Failed => Opcode Caching is disabled for CLI

opcache.enable => On => On
opcache.enable_cli => Off => Off
Zend OPcache

Opcode Caching => Up and Running
Optimization => Enabled
Startup => OK
Shared memory model => mmap
Cache hits => 0
Cache misses => 0
Used memory => 10707944
Free memory => 123509784
Wasted memory => 0
Cached scripts => 0
Cached keys => 0
Max keys => 3907
OOM restarts => 0
Hash keys restarts => 0
Manual restarts => 0

Directive => Local Value => Master Value
opcache.blacklist_filename => no value => no value
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.fast_shutdown => 1 => 1
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.inherited_hack => On => On
opcache.interned_strings_buffer => 8 => 8
opcache.load_comments => 1 => 1
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 2500 => 2500
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.optimization_level => 0xFFFFFFFF => 0xFFFFFFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => 0 => 0
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 90 => 90
opcache.revalidate_path => Off => Off
opcache.save_comments => 1 => 1
opcache.use_cwd => On => On
opcache.validate_timestamps => On => On
在输入opcache.enable_cli=1之后,我在php-I中得到了以下内容

Opcode Caching => Disabled
Optimization => Disabled
Startup Failed => Opcode Caching is disabled for CLI

opcache.enable => On => On
opcache.enable_cli => Off => Off
Zend OPcache

Opcode Caching => Up and Running
Optimization => Enabled
Startup => OK
Shared memory model => mmap
Cache hits => 0
Cache misses => 0
Used memory => 10707944
Free memory => 123509784
Wasted memory => 0
Cached scripts => 0
Cached keys => 0
Max keys => 3907
OOM restarts => 0
Hash keys restarts => 0
Manual restarts => 0

Directive => Local Value => Master Value
opcache.blacklist_filename => no value => no value
opcache.consistency_checks => 0 => 0
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.fast_shutdown => 1 => 1
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.inherited_hack => On => On
opcache.interned_strings_buffer => 8 => 8
opcache.load_comments => 1 => 1
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 2500 => 2500
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 128 => 128
opcache.optimization_level => 0xFFFFFFFF => 0xFFFFFFFF
opcache.preferred_memory_model => no value => no value
opcache.protect_memory => 0 => 0
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 90 => 90
opcache.revalidate_path => Off => Off
opcache.save_comments => 1 => 1
opcache.use_cwd => On => On
opcache.validate_timestamps => On => On

Opcache正在运行,但未缓存任何内容。第一次加载页面,然后在90秒内刷新页面后,我看到一个不同的页面

您误解了什么是opcache。PHP文件只是纯文本。它们不是机器代码。因此PHP必须解析该文本并生成机器代码(操作代码,简称为操作代码)。一旦有了操作码,它就可以运行你的程序了

Opcache只存储操作码。当底层代码变化不大时,它有助于节省开销


您所说的是web服务器存储发送给客户端的内容。

您看到不同页面是什么意思?操作码缓存不会缓存HTML输出,而是缓存PHP操作码。如果您的数据库内容更改,页面将更改。谢谢您的回复。你必须原谅我,因为我是新的php和缓存。所以Opcache不会缓存html输出?PHP操作码到底是什么?我有一个300万行的数据库,其中包含用户在不同php页面中看到的不同类别的数据。我有一个RSS提要,每1小时在数据库中添加一次数据。那么,缓存html页面的方法是什么呢?请参见各种方法的示例。有很多方法可以在PHP中缓存HTML输出。您需要实现一个—有许多类和现有解决方案用于存储到文件、内存存储(如Redis/memcached)、数据库等。那么,OpCache中的命中和未命中数字是什么APC操作码缓存具有一些可用于执行输出缓存的功能(类似的功能)但是你必须用这些函数自己实现它。我相信缓存/命中数指的是那些调用和操作码缓存本身的命中/未命中。i、 e.第一次访问
index.php
将是未命中,但随后的访问将是命中。当您更改文件时,操作码缓存会通知您,您将再次错过。感谢您的回复。所以html缓存和操作码缓存是两件不同的事情。我的代码也不会一直更改,但mysql中的数据每次都会更改。所以我想我应该看看你提到的一些输出缓存。