2016-03-15 20 views
0

我在php中创建了一个应用程序,它使用twilio api向用户发送文本。它在XAMPP中完美工作,但php代码不在Azure中运行。每次我打电话时,都会收到一条错误消息,指出“无法加载资源:服务器响应的状态为500(内部服务器错误)”。为什么我的twilio web应用程序在XAMPP中工作,但不在AZURE中

有没有一种方法可以解决这个问题,而无需创建我自己的虚拟服务器?

+1

您将需要查看错误日志和/或启用错误报告来查看***具体***错误消息,而不是通常的“500”掩盖。 – deceze

+0

您应该编辑您的问题以显示有问题的代码。现在,你什么也没有显示。此外,你可能想提及*你在哪里运行你的代码(VM?Web App?web/worker角色?) –

回答

0

通常情况下,当我们得到500的响应,这意味着我们在服务器脚本上遇到一些错误。我们可以在我们的Azure Web应用程序的PHP运行时中设置display_errors=On,以便于排除故障。详情请参阅https://azure.microsoft.com/en-in/documentation/articles/web-sites-php-configure/#how-to-change-the-built-in-php-configurations

而且您可能会检查Azure Web Apps上的应用程序是否成功安装了twilio库。您可以利用composercomposer.json中配置sdk,然后当您通过Git将应用程序部署到Azure时,Azure服务将在部署任务期间自动在composer.json文件中安装依赖关系。 您可以利用require 'vendor/autoload.php'加载所有依赖关系。

在测试过程中的第一次,我得到了以下错误: Fatal error: Uncaught exception Services_Twilio_TinyHttpException with message SSL certificate problem...

所以它可能会在你身边的问题也一样,你可以在PHP中添加证书在Azure上的Web应用程序,请参见https://blogs.msdn.microsoft.com/azureossds/2015/06/12/verify-peer-certificate-from-php-curl-for-azure-apps/了解详细步骤。

否则,你可以简单地在twilio LIB编辑TinyHttp.php

添加CURLOPT_SSL_VERIFYPEER => FALSE,在$选择采用阵列。

有关同一问题,请参阅Twilio PHP - SSL certificate: self signed certificate in certificate chain

+0

Dude,你真棒! –

1

他们有许多候选条件:

  1. 在ISS服务器你Azure上运行PHP,那么你需要转换您的.htaccess文件Web.config中,简单,只是去网站在IIS和进口你的.htaccess文件,IIS会将你的.htaccess转换为web.config。

  2. 权限正在运行的文件夹。

  3. PHP版本,在xampp上检查您的PHP版本并与Azure上的PHP版本进行比较。您的代码可以在您的PHP Xampp中兼容,但不能在PHP Azure中兼容。

  4. 扩展PHP,也可能是您的XAMPP具有扩展PHP使您Azure的是不支持,像文档信息等...
相关问题