PHP 代码在本地运行但不能在 Azure 上运行

标签 php azure sparkpost

我已经使用 SparkPost 为网站实现了邮件递送服务。代码如下所示:

require '/vendor/autoload.php';

use SparkPost\SparkPost; use GuzzleHttp\Client;
use Ivory\HttpAdapter\Guzzle6HttpAdapter;
$httpAdapter = new Guzzle6HttpAdapter(new Client());
$sparky = new SparkPost($httpAdapter, ['key'=>'...']);
[...]
[...]
$results = $sparky->transmission->send($mailarray);

它在 WampServer 本地运行得很好,但是当我将它部署到 Azure 时,它​​就不行了。我无权访问 Azure 日志,但我设法将问题范围缩小到一行:

$sparky = new SparkPost($httpAdapter, ['key'=>'...']);

我只是得到了 500 错误,没有任何其他解释。奇怪的是,当我将它包裹在 try/catch 中时,除了空白屏幕和控制台上的 500 之外,我仍然没有得到任何东西。我怀疑它必须与/autoload.php 无法加载某些内容有关。

有什么想法吗?

最佳答案

根据 Github 存储库 https://github.com/SparkPost/php-sparkpost/blob/master/composer.json#L18 上 SparkPost lib 的要求,需要PHP版本高于5.5。所以您可以修改您的Azure Web Apps的PHP版本,请引用https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-configure/#how-to-change-the-built-in-php-version了解详细步骤。

关于PHP 代码在本地运行但不能在 Azure 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406885/

相关文章:

php - 将数据从 MYSQL 导入到网络服务器上的 JSON 文件

php - 更新 PHP 和 MySQL 服务器实例

azure - 从 Azure CosmosDb 加载 F# 脚本时缺少 DLL 异常

node.js - 如何防止 SparkPost 更改电子邮件中的 url?

php - ISPConfig 更改默认 PHP 版本

php - 添加数据到html表

c# - azure应用程序服务中的Google应用程序凭据(aspnet core web api)

azure - 了解 Milton WebDAV 服务器与云环境负载均衡器的配合使用

codeigniter - 如何在 Codeigniter 中配置 SparkPost SMTP?

sparkpost - 当 sandbox=true 时错误 "Fatal SparkPostError: Exceed Sending Limit"