2016-04-23 3 views
-1

Я установил локальный веб-сервер в своей домашней сети, установив LAMP на моем малиновом Pi. При выполнении моих PHP-скриптов и подключении к базе данных MySQL я использовал localhost. Теперь я возился с доступом к серверу за пределами моей домашней сети, поэтому я настроил доменное имя для доступа к серверу. Но я не понял, что мой код по-прежнему использует localhost для входа в базу данных MySQL. Поэтому я решил изменить его на свое доменное имя, и теперь он заявляет, что база данных не может быть найдена, поэтому я предполагаю, что она не входит в систему, поэтому база данных не выбрана.PHP локальный хост по URL

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

Является ли это проблема с регистрацией в MySQL через сервер вместо localhost или было бы вопросы брандмауэра (я настроить перенаправление портов на маршрутизаторе для доступа к серверу) ?

Любая помощь приветствуется, я новичок в этом материале веб-сервера.

+0

Вы пытаетесь получить доступ к MySQL, размещенному на другом сервере, к вашему малиновому Pi? Это была моя интерпретация вашего вопроса, но два ответа до сих пор предполагают иное. – MortimerCat

+0

Прекратить использование ** устаревшего и с PHP7 удаленных ** mysql_ * функций. Перейдите к PDO и начните использовать подготовленные отчеты. –

+0

@MortimerCat нет MySQL размещен на Rpi, я подумал, что лучше использовать имя сервера, но я думаю, что это может считаться подходящим для использования 'localhost' – EoinScully

ответ

1

localhost - это доменное имя для ссылки на местный компьютер.

Если веб-сервер и сервер базы данных MySQL находятся на одном сервере, вы можете оставить localhost «удаленным» узлом базы данных. Фактически, когда вы запускаете скрипт на сервере, все адреса, которые должны быть разрешены из DNS, решаются с внутреннего DNS-сервера, а не из DNS-клиента.

Не имеет значения, откуда вы делаете запрос на сервер. Если IP-адрес машины, на которой запущен PHP, совпадает с сервером базы данных, адрес сервера базы данных: localhost, относительно веб-сервера.

Смежные вопросы