我在专用服务器上,我的网站托管在虚拟目录中。其他几个网站托管在不同的虚拟目录中。我安装了 APC 和 APCu。当我重新启动 PHP-FPM 时,我收到以下错误:
PHP 警告:模块‘apc’已加载到未知的第 0 行
我的APC和APCu配置如下:
- APC.ini 配置
; 启用 apc 扩展模块 extension = apc.so ; APC 模块版本 >= 3.1.3 的选项 apc.enabled=1 apc.shm_segments=1 apc.shm_size=2024M
- APCu.ini 配置
; 启用 apcu 扩展模块 extension = apcu.so
;APCu 模块版本 >= 4.0.0 的选项 apc.enabled=1 apc.shm_segments=1 apc.shm_size=2024M ..等等
我在 Centos 上运行 PHP 5.4.27 和 APC 3.1.13
我的网站经常出现崩溃问题,因此不得不多次重启 PHP-FPM。我仍然在摸索可能是什么问题。APC 和 APCu 同时安装会不会有问题?如果是,正确的方法是什么?
答案1
您只能在 PHP 5.4 安装中使用 APC。APC 包含 PHP 文件的用户变量缓存和操作码缓存。
APCu 旨在通过添加用户变量缓存来补充 PHP 5.5 的集成操作码缓存。
因此,您应该卸载 APCu,它可能会导致您描述的问题。
答案2
为了进一步回答崩溃问题,只是为了社区的利益 - 这是一个独特的问题,它给我带来了严重破坏,在我对这个问题的广泛搜索中,我没有发现任何关于这种情况的例子被问到或回答过。
频繁出现内部服务器错误的原因是 - 在迁移使用 APC 缓存的新电子商务网站之前,我的服务器上安装了 PHP 5.4.27 和 Zend Opcache。这导致某处发生冲突并引发内部服务器错误。
删除 Zend Opcache 后,另一个因素是 apc.include_once_override 被设置为“1”。这导致页面失真,我曾在某处读到过这方面的内容,因此能够立即找到原因并将其设置为“0”。
现在它运行良好,非常顺畅!经过一个月的斗争,我感觉如释重负。