首先要做的事情是:我被赋予了在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盒子上运行相同的代码时,所有代码都按预期工作(由于卷曲,我得到了一个Object).
这导致了Azure在这段代码中不喜欢的结论.问题是找出什么.有任何想法吗?
解决方法:
对于prod环境,display_errors在Azure Web Apps上的PHP运行时中设置.我们可以通过更改内置PHP配置来打开调试设置.
这是一个简单的步骤:
2,使用您在PHP.ini文件中使用的相同语法将配置设置添加到.user.ini文件.根据您的需求,您的.user.ini文件将包含以下文本:
display_errors = On
3,部署您的Web应用程序.
4,重新启动Web应用程序.
您可以阅读official guide以获取更多信息.
此外,我们可以登录我们网站的Kudu控制台来管理我们的网站. Kudu控制台的URL应该是:https:// {your_web_site_name}. scm.azurewebsites.net,然后单击工具=>诊断转储以下载诊断日志.