У меня есть веб-приложение, работающее в службе приложений Azure. Я пытаюсь проверить сценарий развертывания Post в консоли 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. Это тот же двоичный файл, который веб-приложение использует в настройках приложения на портале. PHP_EXTENSIONS = bin\php_redis.dll
, Однако я не уверен, как загрузить это для этого сценария.
Есть ли способ, которым я могу загрузить php_redis.dll в сценарии развертывания Kudu?
Я старался php -d extension=./php_redis.dll -f postdeploy.php
, php -d extension=%~dp0php_redis.dll -f postdeploy.php
и другие странные комбинации без удачи.
Пожалуйста, попробуйте добавить расширение PHP через настройки ini, Ссылаться на https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-enable-extensions-in-the-default-php-runtime на Configure via ini settings
раздел.
В общем-то:
PHP_INI_SCAN_DIR
и значение d:\home\site\ini
d:\home\site\ini
называется extensions.ini
extensions.ini
файл с использованием того жеБлагодаря такому подходу вы можете настроить расширение PHP в среде исполнения PHP сайта консоли Kudu. И настроить через App Settings
будет только настроить расширение в IIS.
Любое дальнейшее беспокойство, пожалуйста, не стесняйтесь, дайте мне знать.
Других решений пока нет …