问题描述
在App Service for Windows的环境中,当前只提供了PHP 7.4 版本的选择情况下,如何实现自定义PHP Runtime的版本呢? 如 PHP Version 8.1.9?
当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呢?
操作实现
是的,App Service for Windows支持自定义PHP Runtime Version。 可以通过以下四个步骤完成自定义操作。
第一步:下载合适的PHP for Windows版本,如本次实验中使用的8.1.9
下载地址:https://windows.php.net/download/
第二步:解压并修改php.ini文件
在解压后的文件夹中,找到 php.ini-development文件,打开并在On Windows下反注释掉 [extension_dir = "ext" ] 部分。然后修改文件名为 php.ini
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中即可
操作步骤动画如下:
第四步:修改App Service的 Handler mappings, 添加 *.php 扩展,并且指向第三步中目录中的 php-cgi.exe
在Path mappings选项卡中,添加 *.php 新扩展, Script Processor为: C:\home\site\wwwroot\php\php-cgi.exe
第五步:保存修改后,重新访问App Service默认URL,查看PHP Version的改变为8.1.9
自定义操作成功!
参考资料
PHP For Windows: https://windows.php.net/download/
[END]
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!
分类: 【Azure 应用服务】
标签: App Service, App service for Windows PHP, 自定义PHP Runtime 运行时版本, 设置PHP扩展 *.php, C:\home\site\wwwroot\php\php-cgi.exe