【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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!