php - 难以将其他扩展加载到 Azure 上的 php 实例中
问题描述
尝试将一个新扩展加载到 Azure 上的 php 实例。在阅读了几篇文章和教程后,我觉得我已经正确设置了一切。除了添加 dll,我还告诉文件更改包含/目录的位置。此外,我已经为应用程序尝试了 PHP7.2 和 7.3。
该更改有效,因此正在读取文件。但是 .dll 并没有与 phpinfo 一起显示,也没有显示所有已加载扩展的转储。我正在使用的 .ini 文件还为包含目录指定了一个新位置,这表明该文件正在被正确读取。但这不适用于 dll,而且我不知道我使用了错误版本的 dll,配置不佳或其他原因。
这是我第一次使用 Azure 进行牛仔竞技表演,所以到目前为止这是一个陡峭的学习曲线。
我已经尝试了多种细节变化,但还没有任何效果。目前,我有一个带有“PHP_INI_SCAN_DIR”的应用程序设置,它指向 d:\home\site\ext 的 D 驱动器中的目录。
我在 ini 目录中还有另一个用于实际扩展的 .ini 文件。其中唯一的一行指向 dll 位置 - zend_extension="d:\home\sites\ext\php_xdebug-2.7.2-7.2-vc15-nts.dll"
路径是正确的,据我所知,一切都是正确的 - 但扩展程序不会加载。我已经更改了位置,更改了文件名,更改了文件的构建版本,使用了“zend_extension”,并且只是简单的“扩展”,结果相似。也使用 32 位 nts 扩展。
没有看到错误消息 - 无论是在 Azure 日志中的屏幕上。我希望在使用 phpinfo() 的 wddx 之后将 xdebug 视为一个单独的部分,但没有显示任何内容。
任何帮助将不胜感激。提前致谢。
解决方案
听起来您已经阅读了官方文档的相关部分Configure PHP in Azure App Service
。
但是,我认为有一些重要的点是需要注意的。
- 在部分
How to: Change the built-in PHP configurations
中,请注意以下步骤。]
将 .user.ini 文件添加到您的根目录。
使用您在 php.ini 文件中使用的相同语法将配置设置添加到 .user.ini 文件。
重新启动应用程序。(重启是必要的,因为 PHP 读取 .user.ini 文件的频率由 user_ini.cache_ttl 设置控制,这是一个系统级设置,默认为 300 秒(5 分钟)。重启应用程序会强制 PHP 读取.user.ini 文件中的新设置。)
使用键 PHP_INI_SCAN_DIR 和值 d:\home\site\ini 向您的应用添加应用设置
使用 Kudu 控制台 (http://.scm.azurewebsite.net) 在 d:\home\site\ini 目录中创建一个 settings.ini 文件。
使用您在 php.ini 文件中使用的相同语法将配置设置添加到 settings.ini 文件。
要重新加载更改,请重新启动您的应用程序。
因此,重要的是在正确的路径中创建.user.ini
和settings.ini
文件,并重新启动您的应用程序以重新加载更改。
- 在 和 部分
How to: Enable extensions in the default PHP runtime
中How to: Use a custom PHP runtime
,为了兼容性,请使用具有VC9和非线程安全 (nts) 兼容版本的扩展,而不是VC15。
希望能帮助到你。
推荐阅读
- sql-server - 文字日期时间为 yyyy-mm-dd 引发异常
- python - 我在 django 中的静态文件不会被重新加载,除非我每次重新启动电脑时都重命名它们
- pentaho-spoon - 在 Javascript 修改值中将 Pentaho 日期值更改为一周的第一天和最后一天
- terminal - 以太坊摩卡终端错误 - “错误:找不到模块'randomhex'”
- django - 如何创建用于测试的临时文件结构
- javascript - 如何在javascript中填充平面数组
- list - Flutter 动态更新日期和时间
- sql - 如何为“ON DUPLICATE KEY UPDATE”修复此 SQL 问题“未知列”
- ionic-framework - 离子中的 NgrxPipe
- python - 带有键计数的 Python Sorted() 列表,给出奇怪的结果