2012-04-03 4 views
0

Я получаю 500 Внутренняя ошибка сервера в Windows Azure (на локальном хосте тоже), если развернуть простую программу, которая подключается к хранению Blob:Azure хранения BLOB дает 500 внутренняя ошибка

<?php 
$blob = new Microsoft_WindowsAzure_Storage_Blob(
    'blob.core.windows.net', 
    '##storage_account##', 
    '##storage_key##' 
); 

$blob->createContainerIfNotExists('img'); 

$blob->listBlobs('img'); 
?> 

Если я не использую блоб но только SQL-доступ или простой phpinfo(), чем все в порядке.

+0

Set display_errors = на на вашем php.ini, чтобы увидеть ошибки реального PHP ... – Baba

ответ

0

Убедитесь, что вы включили файлы SDK phpAzure.

Это будет что-то вроде следующего в верхней части файла:

require_once 'Microsoft/WindowsAzure/Storage/Blob.php'; 

Для этого вы должны иметь phpAzure SDK (http://phpazure.codeplex.com/) где-то в вашем пути поиска или в текущем каталоге.

Надеюсь, что это поможет!

+0

гм, да ... Я SDK скачал его (извлеченный), но где я должен поставить его? Я положил его в F: \ PHPAzure-4.1.0 (F, где установлен win7). В файле php.ini я помещаю: include_path = f: \ PHPAzure-4.1.0 \. Теперь ошибка: Предупреждение: require_once (Microsoft/WindowsAzure/Storage/Blob.php): не удалось открыть поток: нет такого файла или каталога в F: \ inetpub \ wwwroot \ blob \ index.php в строке 3 Неустранимая ошибка: require_once(): Сбой открытия необходимо «Microsoft/WindowsAzure/Storage/Blob.php» (include_path = 'f: \ PHPAzure-4.1.0 \') в F: \ inetpub \ wwwroot \ blob \ index.php в строке 3 – tesy

+0

ok , кажется, все нормально сейчас ... – tesy

+0

Если вы считаете, что ответ помог, пожалуйста, отметьте ответ как правильный ответ. Это поможет будущим пользователям, столкнувшимся с одной и той же проблемой. –

0

Ниже приведен простой пример из демонстрации, которую я использую как часть презентации PHP плюс Azure, которую я дал несколько раз. Возможно, это может быть полезно. Обратите внимание, что в качестве написанного он возьмет файл, который был отправлен в th скрипт, и напишет его в локальный контейнер хранения с именем «sampleblobs». Как указывает Томас, вам нужно убедиться, что вы загружаете PHP SDK для Azure, который я использую, используя строку require_once в верхней части моего фрагмента кода.

<?php 

require_once('Microsoft/AutoLoader.php'); 

if (!empty($_FILES['userfile']['name'])) 
{ 
    $container = 'sampleblobs'; 
    $filename = "somefolder/".$_FILES['userfile']['name']; 

    $blobStorageClient = new Microsoft_WindowsAzure_Storage_Blob(); 
    $blobStorageClient->createContainerIfNotExists($container); 

    $blobStorageClient->putBlob(
     $container, // container name 
     $filename, // name in storage 
     $_FILES['userfile']['tmp_name'], // object to upload 
     array('createdby' => 'CodeMash', 'FileType' => 'jpg') // metadata 
    ); 

    echo "<br>file uploaded."; 
} 
Смежные вопросы