我已经在php中创建了一个应用程序,它使用twilio api将文本发送给人们。它在XAMPP中完美运行,但php代码不在Azure中运行。每次我调用它时都会收到一条错误消息,说“#34;无法加载资源:服务器响应状态为500(内部服务器错误)"。
有没有办法解决这个问题,而无需创建自己的虚拟服务器?
答案 0 :(得分:1)
他们有很多可能:
您的Azure在ISS服务器中运行PHP,然后您需要将.htaccess文件转换为web.config ,简单,只需转到IIS中的网站并导入.htaccess文件, IIS将在web.config中转换.htaccess。
权限。
PHP版,检查xampp上的PHP版本,并与Azure上的PHP版本进行比较。您的代码可以在PHP Xampp中兼容,但在PHP Azure中则不兼容。
答案 1 :(得分:0)
通常,当我们得到500响应时,这意味着我们在服务器脚本上会出现一些错误。我们可以在Azure Web Apps上的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 lib。您可以利用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...
因此,您可能也存在问题,您可以在Azure Web Apps上使用PHP添加证书,请参阅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,$ opts数组。
有关同一问题,请参阅Twilio PHP - SSL certificate: self signed certificate in certificate chain。