PHP代码在本地工作但不在Azure上工作

时间:2016-04-04 15:32:08

标签: 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无法加载某些东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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