PHP 7中的“分配JIT内存失败,PCRE JIT将被禁用”警告

fruv7luv  于 2023-02-11  发布在  PHP
关注(0)|答案(5)|浏览(482)

我正在将我的网站从安装在共享虚拟主机帐户(DreamHost)上的PHP v.5转换到PHP 7.3.11上。转换后,我开始注意到偶尔会收到以下警告:
警告:preg_match_all():分配JIT内存失败,PCRE JIT将被禁用。这可能是由安全限制引起的。请授予PHP分配可执行内存的权限,或设置pcre.jit = 0
最后一个来源于这行代码,它应该替换我发布的页面HTML中的特殊标记:

if(preg_match_all("/\[".$tagBegin."(\S)+\]/U", $html, $matches, PREG_OFFSET_CAPTURE) !== false)

我需要在v.7.3中做些什么来避免这个警告吗?

3pvhb19x

3pvhb19x1#

您应该可以通过使用ini_set更改警告消息本身建议的配置值来避开此警告:

ini_set("pcre.jit", "0");

确保在使用正则表达式之前运行这行代码。

4nkexdtk

4nkexdtk2#

对我来说,我已经添加了pcre.jit=0到php.ini文件中的[Pcre],这工作得很好。

ncgqoxb0

ncgqoxb03#

1.在管理您网站的任何系统中搜索:cPanel的文件管理器,你的网络主机的管理面板你的电脑磁盘-用于'php.ini'。在与你的网站或应用程序有关的地方,不会有很多文件以这样的名字命名,并给你一个错误信息。
1.编辑该php.ini文件,找到部分**[Pcre]**,并在该部分的底部添加以下行:pcre.jit=0
它应该看起来像这样:

1.保存更改并重新加载页面或应用程序。

bq3bfh9z

bq3bfh9z4#

打开php.ini文件(C:\xampp\php\php.ini)并搜索此设置:

;Enables or disables JIT compilation of patterns. This requires the PCRE
;library to be compiled with JIT support.
;pcre.jit=1

删除注解并确保将其设置为1

pcre.jit=1

重新启动Apache服务器,警告将消失,并设置正确的权限。

fbcarpbf

fbcarpbf5#

a有xampp和以前版本php。我通过观看youtube上的一段视频修复了这个错误,视频名为:在.\libraries\classes\Config\FormDisplay中出现错误警告。php#
基本上他所做的是他去了phpadmin页面的底部,下载了一个新版本,然后他在phpadmin文件夹内的配置文件(在mac),并删除所有文件,然后粘贴新的php管理的新文件沿着配置。它的工作很好,我和他。伙计们,这就是为什么视频是有益的太

相关问题