2015-10-20 2 views
0

Прежде всего: мне было поручено развернуть сайт Drupal на Azure.Как отлаживать PHP в MS Azure

Локально я использую OS X, работающий с Apache, и все работает нормально. Когда я развертываю проект в Azure, я получаю сообщение об ошибке. После некоторых отладки я изолировали ошибку в этом фрагменте кода:

private function getToken(){ 
    $ch = curl_init($this->host . $this->clientId . "&client_secret=" . $this->clientSecret); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('accept: application/json',)); 
    $response = json_decode(curl_exec($ch)); 
    curl_close($ch); 
    $token = $response->access_token; 
    dvm($response, $name = NULL); 
    return $token; 
} 

dvm() является функцией Drupal Devel, но достаточно сказать, что это своего рода print_r для Drupal на стероидах.

Проблема, которую я получаю, заключается в том, что по какой-то причине $result возвращается NULL. Когда я запускаю тот же код на своем локальном компьютере и в Linux/Debian, все работает как ожидалось (я получаю объект в результате curl).

Это приводит к заключению, что Azure не нравится в этом фрагменте кода. Проблема в том, чтобы выяснить, что. Есть идеи?

+0

запустите phpinfo и проверьте, включен ли завиток, проверьте значения $ this-> variables –

+0

Curl включен. Что вы понимаете под '$ this-> variables'? Простите мое невежество, но я не специалист по PHP. – WagnerMatosUK

+0

@ LuckyChingi означает, что вы можете проверить, не являются ли переменные, заданные в 'curl_init', нулевыми или правыми. –

ответ

1

Для среды prod display_errors задано off в среде исполнения PHP в Azure Web Apps. Мы можем открыть настройку для отладки с помощью изменения встроенных PHP-конфигураций.

Вот простые шаги:

1, добавьте .user.ini файл в корневой каталог.

2, добавьте настройки конфигурации в файл .user.ini, используя тот же синтаксис, который вы использовали бы в файле php.ini. С вашим требованием, ваш файл .user.ini будет содержать этот текст:

display_errors = On

3, Развертывание веб-приложений.

4, Перезагрузите веб-приложение.

Для получения дополнительной информации вы можете прочитать official guide.

Кроме того, мы можем войти в консоль Kudu на наших сайтах, чтобы управлять нашими сайтами. URL-адрес консоли Kudu должен быть следующим: https://{your_web_site_name}. scm.azurewebsites.net и нажмите Tools =>Diagnostic dump, чтобы загрузить диагностические журналы.

Дополнительное, мы можем использовать WebMatrix, чтобы прямо изменить ваш код в Azure Web Apps.

+0

Спасибо за помощь. Последний вопрос, который я получил, - это сделать с помощью электронной почты через php. Не могли бы вы представить, как заставить его работать? Ошибка, которую я получаю, будет решена, если я должен установить 'sendmail' в Linux. Как я могу заставить его работать над Azure? – WagnerMatosUK

+1

Поскольку эта проблема немного относительно этой темы, я предлагаю вам открыть новую тему, которая будет полезной для других сообществ, имеющих аналогичную проблему. –

Смежные вопросы