0
我已經在PHP中編寫了一個端點來查詢mysql數據庫並以JSON格式返回結果 - 它在本地工作,但在部署到AWS時無法工作。PHP獲取端點在本地工作,但不在服務器上
這裏有一個託管版本的網址:http://www.everythingproduct.com/getArticlesTest.php?type=All
和這裏的代碼;
<?php
header('Content-Type: application/json');
ini_set('display_errors', 'On');
error_reporting(E_ALL);
// Assign the post values to variables
// Types of request - E.g. 'All', 'Article' or a 'Tag-Search'
$type = $_GET["type"];
// If a specific article, what article?
$article = $_GET["article"];
// If a tag-search, what tag used?
$tag = $_GET["tag"];
// Define database parameters
$servername = "***********.cl8bq5gds2sn.us-east-2.rds.amazonaws.com:3306";
$username = "********";
$password = "********";
$dbname = "*********";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
If ($type == 'All') {
$sql = "SELECT * FROM articles ORDER BY datetime desc LIMIT 10";
$result = $conn->query($sql);
} elseif ($type == 'Article') {
$sql = "SELECT * FROM articles WHERE id = " . $article;
$result = $conn->query($sql);
} elseif ($type == 'Tag-search') {
$sql = "SELECT * FROM articles WHERE tags like '%" . $tag . "%' ORDER BY datetime desc LIMIT 10";
$result = $conn->query($sql);
}
mysqli_close($conn);
// Put the results into an array, and echo some json
$resultArray = array();
while($row = mysqli_fetch_assoc($result)) {
array_push($resultArray, array(
'id' => $row["id"],
'datetime' => $row["datetime"],
'source' => utf8_encode($row["source"]),
'title' => utf8_encode($row["title"]),
'description' => utf8_encode($row["description"]),
'img' => $row["img"],
'link' => $row["link"],
'tags' => $row["tags"]
)
);
}
$resultArray = json_encode($resultArray);
echo $resultArray;
?>
無視明顯的安全的東西(我所知道的),我不明白爲什麼我剛剛得到的託管版本504網關超時,但本地主機完美的作品。
您是否測試過託管版本和數據庫之間的連接,以及佔用您本地版本執行查詢的時間與託管版本的時間? – pah
我沒有測試託管到數據庫的連接,因爲我無法加載頁面(我將在一秒內創建一個簡化的數據庫連接php頁面)。但我認爲這個問題很可能與AWS的權限有關......我也在調查。 –
你在錯誤日誌中有什麼? –