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

PHP代码在本地工作,但不在Azure上工作,php,azure,sparkpost,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,

我已经使用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 repo at上SparkPost库的要求,它需要高于
5.5
的PHP版本。因此,您可以修改Azure Web应用程序的PHP版本,有关详细步骤,请参阅。

查看错误日志以了解有关该应用程序的详细信息。并非php中的所有内容都可以被尝试/捕获,例如致命的解析错误。php中可能存在无法看到的空格,或者是上面的某个原因导致它/出现在不同的页面上。您是否处于无限循环的while循环中?请在require路径(和其他位置)中检查大写字母。local/dev/prod可能对casseu敏感/不敏感使用.user.ini方法查看服务器上的错误,我发现这是原因,这让我更难理解:致命错误:无法在第118行的D:\home\site\wwwroot\assets\vendor\sparkpost\php sparkpost\lib\sparkpost\sparkpost.php中的写上下文中使用函数返回值。我部署到的Azure实例使用PHP5.4,而sparkpost库需要PHP5.5或更高版本才能运行。这可能是根本原因。我在评论中也建议使用PHP版本作为原因。我最终证实了这是原因,所以我将你的回答标记为正确答案。