【问题标题】:How to load php_redis.dll when running post deployment script in Kudu Console在 Kudu 控制台中运行部署后脚本时如何加载 php_redis.dll
【发布时间】:2016-04-27 16:39:28
【问题描述】:

我有一个在 Azure 应用服务上运行的 web 应用。我正在尝试在 Kudu Debug CMD 控制台中测试部署后脚本。

php -d extension=php_redis.dll -f postdeploy.php

这是我的 postdeploy.php 文件

<?php

ini_set('error_reporting', -1);
ini_set("display_errors", 1);

function exception_handler($exception) {
    echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');

$redis = new Redis();

...

?>

我收到以下错误

Fatal error: Class 'Redis' not found in D:\home\site\deployments\tools\PostDeploymentActions\postdeploy.php on line 13
PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\Program Files (x86)\PHP\v5.6\ext\php_redis.dll' - The specified module could not be found.
in Unknown on line 0

我将正确版本的 php_redis.dll 上传到 PostDeploymentActions 文件夹。这与 web 应用程序通过门户 PHP_EXTENSIONS = bin\php_redis.dll 中的应用程序设置使用的二进制文件相同。但是,我不确定如何为此脚本加载它。

有没有办法可以在 Kudu 部署后脚本中加载 php_redis.dll?

我尝试了php -d extension=./php_redis.dll -f postdeploy.phpphp -d extension=%~dp0php_redis.dll -f postdeploy.php 和其他奇怪的组合,但没有成功。

【问题讨论】:

  • 作为第一步,我建议按照this document 隔离到更简单的 Kudu 控制台场景。

标签: php azure phpredis kudu


【解决方案1】:

请尝试通过ini设置添加PHP扩展,参考https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-enable-extensions-in-the-default-php-runtimeConfigure via ini settings部分。

一般:

  1. 使用键PHP_INI_SCAN_DIR 和值d:\home\site\ini 将应用设置添加到您的Web 应用
  2. d:\home\site\ini 中创建一个名为extensions.ini 的配置文件
  3. 使用相同的方法将配置设置添加到extensions.ini 文件中 您将在 php.ini 文件中使用的语法。例如:扩展 = php_redis.dll。
  4. 重新启动 Web 应用服务。

通过这种方法,您可以将 PHP 扩展配置到 Kudu 控制台站点的 PHP 运行时。而通过App Settings 配置只会将扩展配置到 IIS 中。

如有任何疑问,请随时告诉我。

【讨论】:

  • 根据引用的链接,对第 3 步进行了轻微更改 - 我将 php_redis.dll 上传到 d:\home\site\ext 文件夹并在 extensions.ini 文件中添加了 extension=d:\home\site\ext\php_redis.dll。将部署后命令修改为php postdeploy.php。一切正常。谢谢。
猜你喜欢
  • 2023-03-19
  • 2015-05-04
  • 1970-01-01
  • 2015-01-16
  • 2017-07-16
  • 1970-01-01
  • 2015-05-11
  • 1970-01-01
  • 2015-05-13
相关资源
最近更新 更多