我有一个在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\u redis.dll到postdeploymentactions文件夹。这与webapp通过portal中的app设置使用的二进制文件相同 PHP_EXTENSIONS = bin\php_redis.dll
. 但是,我不知道如何加载这个脚本。
有没有一种方法可以在kudu后期部署脚本中加载php\u redis.dll?
我试过了 php -d extension=./php_redis.dll -f postdeploy.php
, php -d extension=%~dp0php_redis.dll -f postdeploy.php
还有其他奇怪的组合,但运气不好。
1条答案
按热度按时间nfg76nw01#
请尝试通过ini设置添加php扩展,请参阅https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-在
Configure via ini settings
部分。一般来说:
使用键将应用程序设置添加到web应用程序
PHP_INI_SCAN_DIR
和价值d:\home\site\ini
在中创建配置文件d:\home\site\ini
打电话extensions.ini
将配置设置添加到extensions.ini
与php.ini文件中使用的语法相同。例如:extension=php\u redis.dll。重新启动web应用服务。
通过这种方法,您可以将php扩展配置到kudu控制台站点的php运行时中。并通过
App Settings
只将扩展配置到iis。如有任何问题,请随时通知我。