2016-04-23 10 views
-1

自分のホームネットワークにローカルWebサーバーを設定しました.Laspberry PiにLAMPを設定しました。私のPHPスクリプトを実行してMySQLデータベースに接続するとき、私はlocalhostを使っています。今では私のホームネットワークの外にあるサーバーにアクセスするのが面倒なので、サーバーにアクセスするためのドメイン名を設定しました。 しかし、私のコードではまだlocalhostを使ってMySQLデータベースにログインしています。だから私は自分のドメイン名に変更することにしました。そして、データベースが見つからないので、ログオンしていないと仮定しているため、データベースが選択されていないと仮定しています。URLへのPHPローカルホスト

PHPスクリプト:

<?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); 
?> 

が、この代わりにlocalhostのサーバーを経由してのMySQLにログインするか、ファイアウォールの問題だろうとの問題です(私は、サーバーにアクセスするために私のルーターのポート転送を設定しました) ?

何か助けていただければ幸いです。私はこのウェブサーバーのことを初めて知りました。

+0

Raspberry Piとは別のサーバーでホストされているMySQLにアクセスしようとしていますか?それはあなたの質問の私の解釈でしたが、これまでの2つの答えはそうでないと仮定しています。 – MortimerCat

+0

** deprecatedを使用して停止し、PHP7の削除** mysql_ *機能を使用します。 PDOに移行し、Prepared Statementの使用を開始します。 –

+0

@MortimerCat MySQLがRpiでホストされているわけではありませんが、私はサーバ名を使う方が良いと思っていましたが、 'localhost'を使っても問題ないと思います。 – EoinScully

答えて

1

localhostは、ローカルマシンを参照するドメイン名です。

WebサーバーとMySQLデータベースサーバーが同じサーバー上にある場合は、localhostを「リモート」データベースホストとして残すことができます。 実際には、サーバー上でスクリプトを実行しているときに、DNSから解決する必要があるすべてのアドレスは、内部DNSサーバーから解決され、クライアントDNSからは解決されません。

サーバーへの要求はどこからでもかまいません。 PHPを実行するマシンのIPアドレスがデータベースサーバーと同じ場合、データベースサーバーのアドレスはWebサーバーを基準にしてlocalhostです。

関連する問題