授予 PHP 分配可执行内存的权限

授予 PHP 分配可执行内存的权限

我在安装 iTop 时收到了此消息。如果你谷歌一下,它会出现在商业网站的内容上方。

警告:filter_var():JIT 内存分配失败,PCRE JIT 将被禁用。这可能是由于安全限制。请授予 PHP 执行内存的权限,或在 /var/www/html/itop/web/application/utils.php 的第 338 行中设置 pcre.jit=0。

警告消息中包含了“修复”,但我想了解更多有关正在发生的事情的信息。也许我希望 PHP 分配可执行内存。任何见解都将不胜感激。

答案1

PHP、systemd 和 selinux 的最新版本对 PHP(和 php-fpm)等对系统资源的访问或动态分配施加了限制和安全阻止。对于生产目的,最安全的设置是在 .ini 配置中禁用它(pcre.jit=0),但是如果您想从 selinux 中“解除阻止”它:

setsebool -P httpd_execmem on

对于 systemd 上的 php-fpm 7.4,php-fpm 服务文件中设置了一些限制,可能位于 /lib/systemd/system/php-fpm.service,具体取决于您的操作系统。这些限制通过该文件中的注释记录下来。

相关 PHP 错误跟踪器在这里:https://bugs.php.net/bug.php?id=78630

相关内容