【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器

简介: 【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器

问题描述

在App Service for linux上创建一个PHP应用,通过 phpinfo() 查看PHP的扩展设置,发现JIT没有被开启, jit_buffer_size 大小为0.

那么,在App Service的环境中,如何开启JIT呢?

 

问题解答

PHP 8在PHP的内核中添加了JIT编译器,可以极大地提高性能。首先,仅在启用opcache的情况下,JIT才有效,这是大多数PHP安装的默认设置,但应确保opcache.enable在php.ini文件中将其设置为1 。通过opcache.jit_buffer_size 设置JIT。

在应用的 ini 设置文件中添加以下内容,如 phpext.ini

opcache.enable=1 
opcache.jit_buffer_size=100M
opcache.jit=1255

然后把 phpext.ini 文件与 项目文件一同,上传到App Service的 /home/site/wwwroot 目录中,并为ini设置文件单独放置一个目录为 ini。

当ini设置文件准备好之后,就需要配置App Service应用该配置文件。通过设置 PHP_INI_SCAN_DIR  来实现

PHP_INI_SCAN_DIR="/usr/local/etc/php/conf.d:/home/site/wwwroot/ini"

/usr/local/etc/php/conf.d 是 php.ini 所在的默认目录。 /home/site/ini 是自定义目录,你将在其中添加自定义 .ini 文件。 使用 : 分隔值。

配置页面

重启应用后,通过phpinfo()查看JIT配置是否生效。

 

【END】

 

附录1:php index page

<html>
 <head>
  <title>PHP Info</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?> 
 <hr>
 <?php phpinfo();?>
 </body>
</html>

 

 

 

参考资料

如何在PHP8中设置开启JIT : http://www.yinzhongnet.com/925.html

自定义 PHP_INI_SYSTEM 指令 : https://docs.azure.cn/zh-cn/app-service/configure-language-php?pivots=platform-linux#customize-php_ini_system-directives

 

相关文章
|
12天前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
37 11
|
13天前
|
JavaScript C++ 容器
【Azure Bot Service】部署NodeJS ChatBot代码到App Service中无法自动启动
2024-11-12T12:22:40.366223350Z Error: Cannot find module 'dotenv' 2024-11-12T12:40:12.538120729Z Error: Cannot find module 'restify' 2024-11-12T12:48:13.348529900Z Error: Cannot find module 'lodash'
37 11
|
7天前
|
缓存 容器 Perl
【Azure Container App】Container Apps 设置延迟删除 (terminationGracePeriodSeconds) 的解释
terminationGracePeriodSeconds : 这个参数的定义是从pod收到terminated signal到最终shutdown的最大时间,这段时间是给pod中的application 缓冲时间用来处理链接关闭,应用清理缓存的;并不是从idel 到 pod被shutdown之间的时间;且是最大时间,意味着如果application 已经gracefully shutdown,POD可能被提前terminated.
|
11天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
10天前
|
Java 开发工具 Windows
【Azure App Service】在App Service中调用Stroage SDK上传文件时遇见 System.OutOfMemoryException
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
|
10天前
|
安全 Apache 开发工具
【Azure App Service】在App Service上关于OpenSSH的CVE2024-6387漏洞解答
CVE2024-6387 是远程访问漏洞,攻击者通过不安全的OpenSSh版本可以进行远程代码执行。CVE-2024-6387漏洞攻击仅应用于OpenSSH服务器,而App Service Runtime中并未使用OpenSSH,不会被远程方式攻击,所以OpenSSH并不会对应用造成安全风险。同时,如果App Service的系统为Windows,不会受远程漏洞影响!
|
20天前
|
C#
【Azure App Service】使用Microsoft.Office.Interop.Word来操作Word文档,部署到App Service后报错COMException
System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).
|
21天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
PHP
为 PHP 应用提速、提速、再提速!
http://www.ibm.com/developerworks/cn/opensource/os-php-fastapps2/  ...
594 0
|
Web App开发 PHP Apache
为 PHP 应用提速 Xcache
PHP 是一种脚本语言,常用于创建 Web 应用程序。它易于掌握,并能迅速生成可视化结果。然而,由于 PHP 是以解释的方式执行的,所以 PHP 代码每次执行时都会被解析和转换成操作码(opcode)。
1081 0
下一篇
无影云桌面