如何在 Kudu 控制台中 运行 post 部署脚本时加载 php_redis.dll
How to load php_redis.dll when running post deployment script in Kudu Console
我在 Azure 应用服务上有一个网络应用 运行。我正在尝试在 Kudu Debug CMD 控制台中测试 Post 部署脚本。
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 文件夹。这与 webapp 通过门户 PHP_EXTENSIONS = bin\php_redis.dll
中的应用程序设置使用的二进制文件相同。但是,我不确定如何为这个脚本加载它。
有没有办法在 Kudu post 部署脚本中加载 php_redis.dll?
我尝试了 php -d extension=./php_redis.dll -f postdeploy.php
、php -d extension=%~dp0php_redis.dll -f postdeploy.php
和其他奇怪的组合,但没有成功。
请尝试通过 ini 设置 添加 PHP 扩展,请参阅 Configure via ini settings
部分的 https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-enable-extensions-in-the-default-php-runtime。
一般:
- 使用键
PHP_INI_SCAN_DIR
和值 d:\home\site\ini
将应用设置添加到您的 Web 应用
- 在
d:\home\site\ini
中创建名为 extensions.ini
的配置文件
- 使用相同的方法将配置设置添加到
extensions.ini
文件
php.ini 文件中使用的语法。例如:扩展=
php_redis.dll.
- 重新启动 Web 应用程序服务。
通过这种方法,您可以将 PHP 扩展配置到 Kudu 控制台站点的 PHP 运行时。通过 App Settings
配置只会将扩展配置到 IIS。
如有任何疑问,请随时告诉我。
我在 Azure 应用服务上有一个网络应用 运行。我正在尝试在 Kudu Debug CMD 控制台中测试 Post 部署脚本。
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 文件夹。这与 webapp 通过门户 PHP_EXTENSIONS = bin\php_redis.dll
中的应用程序设置使用的二进制文件相同。但是,我不确定如何为这个脚本加载它。
有没有办法在 Kudu post 部署脚本中加载 php_redis.dll?
我尝试了 php -d extension=./php_redis.dll -f postdeploy.php
、php -d extension=%~dp0php_redis.dll -f postdeploy.php
和其他奇怪的组合,但没有成功。
请尝试通过 ini 设置 添加 PHP 扩展,请参阅 Configure via ini settings
部分的 https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-enable-extensions-in-the-default-php-runtime。
一般:
- 使用键
PHP_INI_SCAN_DIR
和值d:\home\site\ini
将应用设置添加到您的 Web 应用
- 在
d:\home\site\ini
中创建名为extensions.ini
的配置文件
- 使用相同的方法将配置设置添加到
extensions.ini
文件 php.ini 文件中使用的语法。例如:扩展= php_redis.dll. - 重新启动 Web 应用程序服务。
通过这种方法,您可以将 PHP 扩展配置到 Kudu 控制台站点的 PHP 运行时。通过 App Settings
配置只会将扩展配置到 IIS。
如有任何疑问,请随时告诉我。