Skocz do zawartości

Apache + Php Na Jednym Komputerze, Mysql Na Drugim


pujan

Rekomendowane odpowiedzi

Witam.

Mam postawiony Apache + PHP + mysql na Fedorze 11 x64. Lokalnie wszystko ładnie chodzi, ale jak chcę się połączyć z mysql na komputerem w sieci LAN poprzez PHP, to nie może się połączyć. Ale poprzez polecenie:

mysql  -h 192.168.0.10 -u user -p haslo

Mogę buszować po bazach.

Na drugim komputerze też jest Fedora 11 x64, ale bez iXów.

Szukałem w sieci, ale nic pomocnego nie znalazłem. Czyżby to była wina konfiguracji Apache'a?

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

<?php
$connect = mysql_connect('192.168.0.10:3306', 'user', 'pass');
mysql_selectdb('database');
?>

 

Co wyświetla?

 

Dla każdej tabeli nadaj użytkownika oraz odpowiednie ograniczone uprawnienia do użytkownika i tabeli. Musisz również umożliwić łączenie się z Twojego IP w bazie danych (to prawdopodobnie już masz, bo inaczej byś się nie zalogował).

Odnośnik do komentarza
Udostępnij na innych stronach

Uruchomiłem skrytp, który podałeś, oczywiście zmieniając użytkownika, hasło oraz bazę na jaką ma zmienić. W przeglądarce wyświetlił się komunikat:

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '192.168.0.10' (13) in /var/www/html/pujan/test.php on line 2

 

Jeżeli dorzucą IFa

if($connect)
    echo 'Połączono<br />';
else
    echo 'Nie połączono<br />';

 

To wyświetla się dodatkowo: Nie połączono.

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm - z tego co piszesz z mojego punktu widzenia to nazwał bym to rzeczą prawie niemożliwą.

Jedyne teraz co mi przychodzi do głowy to to, że SELinux albo jakiś firewall (klienta i/lub serwera) blokuje dostęp do serwera mysql przy pomocy apacha (php). Zobacz w logach obu komputerów czy nie ma jakiś informacji (/var/log/myslqd.log i logi w /var/log/httpd/). Nie musisz ich wrzucać dla publiki, chyba że twierdzisz coś ciekawego.

Odnośnik do komentarza
Udostępnij na innych stronach

Zapomniałem dodać do pierwszego postu, że port 3306 na komputerze z MySQL jest otwarty.

 

Przeglądnąłem logi, ale nic nie znalazłem.

 

Włączyłem System->Administracja->SELinux Managament

W Zmienna logiczna zaznaczyłem moduł (?) dla apache httpd_can_network_connect_db wczytałem testowy skrypt i wyświetliło się:

Połączono

Sprawdziłem na innej stronie i działa. Wielkie dzięki!

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...