2016-01-26 4 views
0

J'essaie de me connecter à mon instance MySQL RDS via un PDO de mon instance EC2. Cependant, la console (sur tous les navigateurs) affiche une erreur «status 500». Voici mon code (checkit.php), comme pris de their tutorial:Connexion à un serveur Amazon RDS via une instance EC2 avec PHP PDO (Erreur 500)

<?php 
$error = 0; 
try { 
    $dbhost = $_SERVER['RDS_HOSTNAME']; 
    $dbport = $_SERVER['RDS_PORT']; 
    $dbname = $_SERVER['RDS_DB_NAME']; 

    $dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname}"; 
    $username = $_SERVER['RDS_USERNAME']; 
    $password = $_SERVER['RDS_PASSWORD']; 

    $dbh = new PDO($dsn, $username, $password); 

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
} 
catch (Exception $e){$error = $e->getMessage();} 
echo $error; 
?> 

Retrait de la ligne $dbh = new PDO($dsn, $username, $password); (et les autres lignes impliquant l'erreur $dbh supprime 500 avertissement, je sais qu'il est à faire avec la déclaration AOP

.

J'ai cherché un certain temps et les questions qui semblent être des doublons de ce ne me aide pas:

  • PHP est définitivement installé. bash php --version et 5.6.17 imprime
  • pré-installé dans cette version viens de PDO de PHP (je crois, mais je ne l'ai pas testé cette)
  • je peux SSH se connecter à la base de données signifie que
    • Les informations d'identification sont corrects
    • Le groupe de sécurité est configuré correctement

Le code PHP ci-dessus est AJAX'ed en utilisant ceci:

$('#user').on('submit', function(e) { 
    e.preventDefault(); 
    $.ajax({ 
    url: "checkit.php", 
    type: "POST", 
    data: $(this).serialize(), 
    success: function(data) { 
     errors = data; 
    } 
    }); 
}); 

Et cette forme (simplifié):

<form id="user" action="" method="POST" target="_self" autocomplete="on" novalidate> 
    <input name="create" type="checkbox"> 
    <button type="sumbit" name="submit">Submit</button> 
</form> 

Navigation vers http://<ip address>/checkit.php renvoie l'erreur 500 statut, donc je doute que ce soit quelque chose à voir avec AJAX, mais néanmoins j'ai posté le code juste au cas où.

Des idées sur par où commencer?

+0

Que contient le journal des erreurs? –

+0

@AlexBlex Impossible d'y accéder. 'Permission Denied' – jaunt

+0

Et vous n'êtes pas sudoer, êtes-vous? Puis au moins le montrer sur la page: 'ini_set ('display_errors', 1);' et error_reporting (E_ALL); ' –

Répondre

0

Cela est dû au fait que PDO utilise une méthode de connexion différente du serveur RDS qui, par défaut, n'est pas autorisée dans le système. L'exécution de ce qui suit devrait le réparer:

setsebool -P httpd_can_network_connect=1