如何在MS Azure中调试PHP

时间:2015-10-20 16:16:46

标签: php azure drupal drupal-7

首先要做的事情是:我被赋予了在Azure上部署Drupal网站的任务。

本地我使用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函数,但足以说明Drupal对类固醇的print_r类型。

我遇到的问题是,无论出于何种原因,$result都会回来NULL。当我在本地计算机和Linux / Debian框上运行相同的代码时,所有代码都按预期工作(我得到了curl的结果。

这导致结论Azure不喜欢这段代码。问题是找出什么。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

对于prod环境,在Azure Web Apps上的PHP运行时中display_errors设置为off。我们可以通过更改内置PHP配置来打开调试设置。

以下是简单的步骤:

1,将.user.ini文件添加到根目录。

2,使用您在php.ini文件中使用的相同语法将配置设置添加到.user.ini文件。根据您的要求,您的.user.ini文件将包含以下文字:

display_errors = On

3,部署您的网络应用。

4,重新启动网络应用。

您可以阅读official guide了解详情。

此外,我们可以登录我们网站的Kudu控制台来管理我们的网站。 Kudu控制台的URL应该是:https://{your_web_site_name}. scm.azurewebsites.net,然后点击Tools => Diagnostic dump下载诊断日志。

另外,我们可以使用WebMatrix直接修改Azure Web Apps上的代码。