5

我刚刚安装Opcache,一切看起来都很好,但是当我在其中添加一个 PHP 文件opcache.preloadphp.ini重新启动时,Apache 服务器没有启动。另一方面,在 CLI SAPI 中预加载工作正常!

当我注释掉opcache.preload并重新启动时,Apache 服务器工作

由于这个问题没有发出任何错误,我查找了 Apacheerror_log文件,结果发现问题是我没有定义 opcahe 预加载用户

致命错误“opcache.preload_user”尚未定义

但是根据PHP文档

出于安全原因,不允许以 root 身份预加载代码。该指令有助于让预加载以另一个用户身份运行。

我正在使用在WSL下运行 Ubuntu 的个人计算机

所以请指导我该怎么做?我应该添加什么用户?

4

1 回答 1

7

Ubuntu 上 Web 服务器的默认用户是www-data

你需要做的就是

opcache.preload_user=www-data

如果你想检查预加载

var_dump(opcache_get_status()['preload_statistics']); 

它将列出所有预加载的文件以及它们消耗的内存

至于为什么我没有定义预加载用户时Apache拒绝启动?

我其实不知道为什么。这可能是一个错误,但不确定。


虽然 PHP 文档中的声明并不完整,但请注意:

默认情况下不允许在 root 下预加载,但允许显式 使用 opcache.preload_user=root

于 2019-12-13T15:41:37.607 回答