有预加载文件时 Apache 无法启动

Fat*_*ror 5 php apache php-7.4

我刚装了Opcache,一切似乎工作得很好,但是当我在添加一个PHP文件opcache.preloadphp.ini并重新启动Apache服务器无法启动。另一方面,在 CLI SAPI 中预加载工作正常!

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

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

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

但根据PHP 文档

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

我在我的个人电脑上工作,在WSL下运行 Ubuntu

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

Fat*_*ror 7

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

你需要做的就是

opcache.preload_user=www-data
Run Code Online (Sandbox Code Playgroud)

如果你想检查预加载

var_dump(opcache_get_status()['preload_statistics']); 
Run Code Online (Sandbox Code Playgroud)

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

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

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


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

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