Я получил этот код, чтобы получить подписанный URL-адрес от CloudFront.
<?php
use Aws\CloudFront\CloudFrontClient;
$path = dirname(__FILE__);
set_include_path($path);
require 'start.php';
$expiry = new DateTime('+10 minutes');
$cloudfront = CloudFrontClient::factory([
'private_key' => 'xxx.pem',
'key_pair_id' => 'xxx',
'region' => 'ap-southeast-2',
'version' => 'latest'
]);
$mp4 = 'https://d3w37wgr89tnmz.cloudfront.net/test.mp4';
//this piece of code in the comment block is killing the page
/*
$url = $cloudfront -> getSignedUrl([
'url' =>"$mp4",
'private_key' => 'xxx.pem',
'key_pair_id' => 'xxx',
'expires' => $expiry->getTimestamp()
]);
echo $url;
*/
?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Playback</title>
</head>
<body>
<video controls width="720" >
<source src=<?php echo $url?> type="video/mp4">
</video>
</body>
</html>
Когда я запускаю это как скрипт PHP, он работает как я ожидал и возвращает подписанный URL.Однако, если запустить его с помощью сервера MAMP, он покажет пустую страницу, на которой ничего нет, и вернет ошибку HTTP 500.
HTTP500: SERVER ERROR - The server encountered an unexpected condition that prevented it from fulfilling the request.
GET - http://localhost/video/video_on_Demand.php
Кто-нибудь знает, что с ним происходит?Кажется, что коды имеют синтаксические ошибки.Однако, если у него есть синтаксические ошибки, как он все еще может работать как скрипт и по-прежнему возвращать правильный URL?
Я новичок в PHP, и это меня сильно смутило