我在专用服务器上 - 在各自的虚拟目录中运行多个门户。一些以前加载的网站正在使用 Zend 操作码缓存。而我的新商务门户使用基于 APC 的缓存,我已将此网站迁移到新服务器。
我的内部服务器经常出现 500 错误并崩溃。
我有以下配置:
- PHP 5.4.27 和 APC 3.1.13,
- Centos 服务器,内存约 4 GB,
- APC 使用 php-fpm
Zend 操作码缓存配置:
Opcode Caching Up and Running
Optimization Enabled
Startup OK
Shared memory model mmap
Cache hits 71322
Cache misses 1049
Used memory 13544916
Free memory 42838688
Wasted memory 10725260
Cached scripts 298
Cached keys 309
Max keys 3907
APC 配置:shm_size = 2024M ..等等...
这可能是崩溃的原因吗?我需要禁用其中一个还是可以同时运行它们。我担心禁用 zend 不会对其他网站造成问题 - 所以只是想确定一下?
答案1
这是导致崩溃的一个非常可能的原因。如果您的软件不使用 apc 密钥缓存,而只使用 opcache,那么升级到 Zend OPcache 应该就可以了。如果您使用 apc 密钥缓存,那么将涉及一些编程以迁移到其他密钥缓存解决方案(如 memcached)。从 php 5.4 及更高版本开始,大多数基准测试都显示使用 Zend OPcache 比使用 APC 的速度有合理的提升。
答案2
我可以想象如果你尝试同时运行两个操作码缓存会发生什么。它看起来很像这样。
因此,您应该运行一个操作码缓存,并且只运行一个。
这可能会让你感到惊讶,但你需要摆脱 APC,并保留 Zend OPcache。原因是 APC 非常容易崩溃。它独自的可能是导致你的 PHP 崩溃的原因,就像我和其他许多人一样。
除非您的新商业门户确实很奇怪,否则它应该可以与 Zend OPcache 很好地配合使用。