问题描述

在App Service for Windows的环境中,当前只提供了PHP 7.4 版本的选择情况下,如何实现自定义PHP Runtime的版本呢? 如 PHP Version 8.1.9?

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_App Service

当App Service创建号值后,并且在门户上设置PHP Version版本位 PHP 7.4, 然后进入Kudu站点中,进入 C:\home\sites\wwwroot目录中,创建一个index.php 文件,文件内容为:

<?php

echo "Hello World! This is phpinfo result! ";

phpinfo();

文件保存后,访问App Service的默认URL: https://<yourappservicename>.chinacloudsites.cn , 得出当前PHP Version 为 7.4.28, 如果这里需要使用8.1.*的版本,而App Service有没有提供这个版本? 应该如何自定义PHP呢?

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_App Service_02

 

操作实现

是的,App Service for Windows支持自定义PHP Runtime Version。 可以通过以下四个步骤完成自定义操作。

第一步:下载合适的PHP for Windows版本,如本次实验中使用的8.1.9 

下载地址:​​https://windows.php.net/download/​

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_设置PHP扩展 *.php_03

 

第二步:解压并修改php.ini文件

在解压后的文件夹中,找到 php.ini-development文件,打开并在On Windows下反注释掉 [extension_dir = "ext" ] 部分。然后修改文件名为 php.ini

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_设置PHP扩展 *.php_04

 PS: 如果项目中,有需要其他PHP扩展,可以直接在 php.ini 文件中启用这些扩展。 

 

第三步:打开Kudu站点,在wwwroot目录下创建一个php目录,并把第二步中问价夹中的全部文件上传到wwwroot中的php目录中

1)进入App Service的kudu 站点(https://<yourappservicename>.scm.chinacloudsites.cn),选择Debug Console --> C:\home\site\wwwroot> 目录

2)在目录中创建一个php文件夹

3)把第二步中的所有文件打包为zip文件,然后通过拖拽方式,放入kudu站点上php文件夹的右上部分,kudu会自动解压zip文件到当前目录

PS: 这一步也可以通过其他部署方式实现,如FTP, Git等,只要能把本地php runtime文件全部上传到wwwroot中即可

操作步骤动画如下:

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_App Service_05

 

第四步:修改App Service的  Handler mappings, 添加 *.php 扩展,并且指向第三步中目录中的 php-cgi.exe

在Path mappings选项卡中,添加 *.php 新扩展, Script Processor为: C:\home\site\wwwroot\php\php-cgi.exe

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_设置PHP扩展 *.php_06

 

第五步:保存修改后,重新访问App Service默认URL,查看PHP Version的改变为8.1.9

【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法_设置PHP扩展 *.php_07

自定义操作成功!

 

 

 

参考资料

PHP For Windows: ​​https://windows.php.net/download/​

 

 

[END]

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!