2016-04-27 11 views
0

Ich habe eine Webanwendung auf Azure App Service ausgeführt. Ich versuche, ein Post-Bereitstellungsskript in der Kudu Debug CMD-Konsole zu testen.Wie php_redis.dll beim Ausführen von Post-Deployment-Skript in Kudu Console geladen wird

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

Hier ist meine postdeploy.php Datei

<?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(); 

... 

?> 

bekomme ich folgende Fehler

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 

ich die richtige Version von php_redis.dll zum PostDeploymentActions Ordner hochgeladen. Dies ist die gleiche Binärdatei, die die Webanwendung über die App-Einstellung im Portal PHP_EXTENSIONS = bin\php_redis.dll verwendet. Ich bin mir jedoch nicht sicher, wie ich das für dieses Skript laden soll.

Gibt es eine Möglichkeit, dass ich die php_redis.dll in Kudu Post-Deployment-Skript laden kann?

Ich versuchte php -d extension=./php_redis.dll -f postdeploy.php, php -d extension=%~dp0php_redis.dll -f postdeploy.php und andere seltsame Kombinationen ohne Glück.

+0

Als ersten Schritt, würde ich empfehlen, zu einem einfacheren Kudu-Konsole-Szenario zu isolieren, per [dieses Dokument] (https://github.com/projectkudu/kudu/wiki/Isolating-WebJobs-and-Deployment-script- Probleme). –

Antwort

0

Bitte versuchen Sie, die PHP-Erweiterung über ini Einstellungen hinzuzufügen, siehe https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-enable-extensions-in-the-default-php-runtime unter Configure via ini settings Abschnitt.

Allgemein:

  1. eine App, die auf Ihre Web App hinzufügen mit dem Schlüssel PHP_INI_SCAN_DIR und Wert d:\home\site\ini
  2. Erstellen Sie eine Konfigurationsdatei in d:\home\site\ini genannt extensions.ini
  3. Konfigurationseinstellungen auf die extensions.ini Datei hinzufügen die Verwendung von Gleiche Syntax, die Sie in einer php.ini-Datei verwenden würden. Zum Beispiel: Erweiterung = php_redis.dll.
  4. Starten Sie den Web Apps-Dienst neu.

Mit diesem Ansatz können Sie die PHP-Erweiterung in die PHP-Laufzeitumgebung der Kudu-Konsole konfigurieren. Und konfigurieren Sie über die App Settings wird nur die Erweiterung in IIS konfigurieren.

Alle weiteren Bedenken, bitte zögern Sie nicht, lassen Sie es mich wissen.

+0

Wie im Verweis auf den Link, habe ich eine kleine Änderung in Schritt 3 vorgenommen - ich habe die Datei php_redis.dll in den Ordner "d: \ home \ site \ ext" hochgeladen und "extension = d: \ home \ site \ ext \ php_redis.dll" hinzugefügt 'in der Datei extensions.ini. Geänderter Post-Deployment-Befehl zu 'php postdeploy.php'. Alles funktioniert perfekt. Vielen Dank. – smk