2017-10-22 30 views
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網關超時,但本地主機完美的作品。

Json displayed on localhost

504 Gateway on hosted version

+0

您是否測試過託管版本和數據庫之間的連接,以及佔用您本地版本執行查詢的時間與託管版本的時間? – pah

+0

我沒有測試託管到數據庫的連接,因爲我無法加載頁面(我將在一秒內創建一個簡化的數據庫連接php頁面)。但我認爲這個問題很可能與AWS的權限有關......我也在調查。 –

+0

你在錯誤日誌中有什麼? –

回答

0

固定!

必須將與RDS關聯的安全組的AWS入站規則更改爲接受來自EC2實例的流量。

相關問題