我在php中创建了一个应用程序,它使用twilio api向用户发送文本。它在XAMPP中完美工作,但php代码不在Azure中运行。每次我打电话时,都会收到一条错误消息,指出“无法加载资源:服务器响应的状态为500(内部服务器错误)”。为什么我的twilio web应用程序在XAMPP中工作,但不在AZURE中
有没有一种方法可以解决这个问题,而无需创建我自己的虚拟服务器?
我在php中创建了一个应用程序,它使用twilio api向用户发送文本。它在XAMPP中完美工作,但php代码不在Azure中运行。每次我打电话时,都会收到一条错误消息,指出“无法加载资源:服务器响应的状态为500(内部服务器错误)”。为什么我的twilio web应用程序在XAMPP中工作,但不在AZURE中
有没有一种方法可以解决这个问题,而无需创建我自己的虚拟服务器?
通常情况下,当我们得到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库。您可以利用composer
在composer.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。
Dude,你真棒! –
他们有许多候选条件:
在ISS服务器你Azure上运行PHP,那么你需要转换您的.htaccess文件Web.config中,简单,只是去网站在IIS和进口你的.htaccess文件,IIS会将你的.htaccess转换为web.config。
权限正在运行的文件夹。
PHP版本,在xampp上检查您的PHP版本并与Azure上的PHP版本进行比较。您的代码可以在您的PHP Xampp中兼容,但不能在PHP Azure中兼容。
您将需要查看错误日志和/或启用错误报告来查看***具体***错误消息,而不是通常的“500”掩盖。 – deceze
您应该编辑您的问题以显示有问题的代码。现在,你什么也没有显示。此外,你可能想提及*你在哪里运行你的代码(VM?Web App?web/worker角色?) –