2016-04-23 3 views
-1

Ich habe einen lokalen Webserver in meinem Heimnetzwerk eingerichtet, indem ich eine LAMP auf meinem Raspberry Pi eingerichtet habe. Wenn ich meine PHP-Skripte mache und mich mit der MySQL-Datenbank verbinde, verwende ich localhost. Jetzt mache ich mich daran, auf den Server außerhalb meines Heimnetzwerks zuzugreifen, also habe ich einen Domainnamen eingerichtet, um auf den Server zuzugreifen. Aber was ich nicht bemerkt habe ist, dass mein Code immer noch die localhost verwendet, um sich in die MySQL-Datenbank einzuloggen. Also habe ich beschlossen, es zu meinem Domain-Namen zu ändern und jetzt sagt es, dass die Datenbank nicht gefunden werden kann, also gehe ich davon aus, dass es sich nicht anmeldet und deshalb keine Datenbank ausgewählt wird.PHP lokaler Host zu URL

PHP Script:

<?php 
     //thermReading1.php 
     $servername = "myservername.com"; //example URL 
     $username = "user"; 
     $password = "password"; 
     $dbname = "database"; 
     //create connection 
     $db_handle = mysql_connect($servername,$username,$password); 
     $db_found = mysql_select_db($dbname,$db_handle); 
     $thermID = "'T00'"; 
     $userID = "'1'"; 
     if($db_found) 
     { 
       $sql = "SELECT * FROM tblTempReading" 
       $result = mysql_query($sql); 
       while($db_field = mysql_fetch_assoc($result)) 
       { 
         echo "<p>" . $db_field['temp'] . "&deg;C</p>"; 
         echo "<p>" . $db_field['tempTimeStamp'] . "</p>"; 
       } 
     } 
     else 
     { 
       echo "<p>Database NOT Found</p>"; 
     }//endif 
     mysql_close($db_handle); 
?> 

Ist das ein Problem mit statt localhost über den Server in MySQL anmelden oder wäre es Firewall-Probleme (ich habe Port-Forwarding auf meinem Router eingerichtet, um auf den Server zugreifen) ?

Jede Hilfe ist willkommen, ich bin neu in diesem Web-Server Zeug.

+0

Möchten Sie auf MySQL zugreifen, die auf einem anderen Server als Ihr Raspberry Pi gehostet wird? Das war meine Interpretation Ihrer Frage, aber die beiden Antworten gehen bisher davon aus. – MortimerCat

+0

Beenden Sie die Verwendung der ** veralteten und ab PHP7 entfernten ** mysql_ * -Funktionen. Migrieren Sie zu PDO und verwenden Sie vorbereitete Anweisungen. –

+0

@MortimerCat Nein die MySQL ist auf dem Rpi gehostet, ich dachte, es wäre besser gewesen, den Server-Namen zu verwenden, aber ich denke, es kann in Ordnung sein, 'localhost' zu verwenden – EoinScully

Antwort

1

localhost ist ein Domänenname, der sich auf den lokalen Computer bezieht.

Wenn sich der Webserver und der MySQL-Datenbankserver auf demselben Server befinden, können Sie localhost als "entfernten" Datenbankhost belassen. Wenn Sie ein Skript auf einem Server ausführen, werden alle Adressen, die aus DNS aufgelöst werden müssen, vom internen DNS-Server und nicht vom DNS des Clients gelöst.

Es spielt keine Rolle, von wo Sie die Anfrage an den Server stellen. Wenn die IP-Adresse der Maschine, auf der PHP ausgeführt wird, mit der des Datenbankservers übereinstimmt, lautet die Adresse des Datenbankservers localhost relativ zum Webserver.