2016-04-04 37 views
1

我已经使用SparkPost为一个网站实施邮件投递服务。代码如下所示:在本地工作但不在Azure上的PHP代码

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无法加载的东西。

有什么想法?

+0

查看错误日志以获取关于500的详细信息。并非所有的php都可以尝试/抓取,例如,致命的解析错误。 –

+0

PHP中有空白的可能性,您无法看到或上面的内容导致它在不同的页面上。你是否处于无限循环的任何地方? – KDOT

+0

没有while循环。 –

回答

1

根据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以了解详细步骤。

+0

我曾建议PHP版本作为评论的原因。我终于确认这是原因,所以我将你的回答标记为正确答案。 –

相关问题