有预加载文件时 Apache 不启动
Apache doesn't start when there's a preloaded file
我刚刚安装了 Opcache
并且一切正常,但是当我在 php.ini
中的 opcache.preload
中添加一个 PHP 文件并重新启动 Apache 服务器时没有开始吧。另一方面,在 CLI 中 SAPI 预加载工作正常!
当我注释掉 opcache.preload
并重新启动时,Apache 服务器工作
由于这个问题没有发出任何错误,我查找了 Apache error_log
文件,结果发现问题是我没有定义 opcahe 预加载用户
Fatal Error "opcache.preload_user" has not been defined
Preloading code as root is not allowed for security reasons. This directive facilitates to let the preloading to be run as another user.
我正在 WSL
运行 Ubuntu 个人电脑上工作
所以请指导我该怎么做?我应该添加什么用户?
Ubuntu 上 Web 服务器的默认用户是 www-data
您只需
opcache.preload_user=www-data
如果您想检查预加载
var_dump(opcache_get_status()['preload_statistics']);
它将列出所有预加载的文件以及它们占用的内存
至于为什么我没有定义preload用户,Apache拒绝启动?
其实我也不知道为什么。这可能是一个错误,但不确定。
虽然 PHP 文档中的声明不完整,但请注意:
Preloading under root is not allowed by default, but explicit
use of opcache.preload_user=root is allowed
我刚刚安装了 Opcache
并且一切正常,但是当我在 php.ini
中的 opcache.preload
中添加一个 PHP 文件并重新启动 Apache 服务器时没有开始吧。另一方面,在 CLI 中 SAPI 预加载工作正常!
当我注释掉 opcache.preload
并重新启动时,Apache 服务器工作
由于这个问题没有发出任何错误,我查找了 Apache error_log
文件,结果发现问题是我没有定义 opcahe 预加载用户
Fatal Error "opcache.preload_user" has not been defined
Preloading code as root is not allowed for security reasons. This directive facilitates to let the preloading to be run as another user.
我正在 WSL
运行 Ubuntu 个人电脑上工作所以请指导我该怎么做?我应该添加什么用户?
Ubuntu 上 Web 服务器的默认用户是 www-data
您只需
opcache.preload_user=www-data
如果您想检查预加载
var_dump(opcache_get_status()['preload_statistics']);
它将列出所有预加载的文件以及它们占用的内存
至于为什么我没有定义preload用户,Apache拒绝启动?
其实我也不知道为什么。这可能是一个错误,但不确定。
虽然 PHP 文档中的声明不完整,但请注意:
Preloading under root is not allowed by default, but explicit use of opcache.preload_user=root is allowed