PHP本地主机到URL

时间:2016-04-23 15:26:43

标签: php mysql raspberry-pi lamp raspberry-pi2

我通过在Raspberry Pi上设置LAMP,在家庭网络上设置了本地Web服务器。在做我的PHP脚本并连接到MySQL数据库时,我一直在使用localhost。现在我在访问家庭网络之外的服务器时搞砸了,所以我设置了一个域名来访问服务器。 但我没有意识到我的代码仍然使用localhost登录MySQL数据库。所以我决定将其更改为我的域名,现在它声明无法找到数据库所以我假设它没有登录,因此没有选择数据库。

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的问题,还是防火墙问题(我在路由器上设置端口转发以访问服务器)?

感谢任何帮助,我是这个网络服务器的新手。

1 个答案:

答案 0 :(得分:1)

localhost是引用本地计算机的域名。

如果Web服务器和MySQL数据库服务器位于同一服务器上,则可以将localhost保留为“远程”数据库主机。 实际上,当您在服务器上运行脚本时,必须从DNS解析的所有地址都是从内部DNS服务器而不是从客户端DNS解决的。

从您向服务器发出请求的位置无关紧要。如果运行PHP的计算机的IP地址与数据库服务器的IP地址相同,则相对于Web服务器,数据库服务器的地址为localhost