Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Łączenie się z lokalną bazą danych XAMPP

04 Mar 2019 12:38 459 6
  • Poziom 3  
    Bardzo proszę o pomoc w rozwiązaniu problemu. Skopiowałem pliki ze strony i bazy msql z serwera zewnętrznego. Zainstalowałem xampp. Założyłem bazę danych i zaimportowałem kopię bazy danych. Pliki strony umieściłem w katalogu : xampp/htdocs/. Uruchomiłem serwer Apache i MySQL, obie usługi są uruchomione i działają. W pliku config.php ustawiłem parametry podłączenia się do bazy danych którą mam w phpMyAdmin. I tutaj jest problem, bo strona nie uruchamia się - Serwer localhost nie może teraz obsłużyć tego żądania, HTTP ERROR 500 ale po usunięciu w pliku config.php wpisu jaka to ma być baza strona otwiera się normalnie ale nie jestem połączony z bazą. Czy ktoś ma jakiś pomysł w jaki sposób można rozwiązać problem ? Na serwerze zewnętrznym wszystko działa bez problemu. Chciałem podziałać lokalnie, ponieważ będę wykonywał modernizacje, a nie chciałbym czegoś uszkodzić na serwerze zewnętrznym.

    Łączenie się z lokalną bazą danych XAMPP Łączenie się z lokalną bazą danych XAMPP
  • Poziom 1  
  • Poziom 15  
    Masz wyświetlanie błędów ustawione na off - zmień na on, by dowiedzieć się, także z logów, gdzie może leżeć problem. Tu przyczyn może być tysiące, lecz analiza logu może powiedzieć coś więcej - np. - skrypt łączy się z serwerem, do którego nie ma dostępu (np. z zewnętrznym hostem MySQL).
    Ma łączyć się z lokalnym? OK - ale czy zdefiniowany użytkownik bazy ma uprawnienia do łączenia się? Jak nie ma - nie połaczysz się z bazą.
    Jeśli plik htaccess jest nieprawidłowo skonfigurowany na obsługę hostingu, wewnętrzny błąd serwera będzie także występował. Pracujesz lokalnie - dla testu zabezpiecz a potem skasuj plik htaccess i sprawdź, czy czasem już nie zadziała, o ile nie masz tam ważnych dla działania skryptów definicji.
    Musisz włączyć zgłaszanie błędów i odświeżyć stronę - i sprawdź wtedy co w plikach logów się dopisało.
  • Poziom 3  
    Anmedia nie podałem żadnych innych informacji dlatego, że jeżeli w pliku config,php nie ujmę do jakiej bazy danych chce się połączyć to wtedy serwis się uruchamia. W bazie mam konta użytkowników, ich loginy i hasła, kiedy próbuje się zalogować to użytkownik nie widnieje więc wiem, że nie połączyłem się z lokalną bazą. Wszystko mam zainstalowane, wersja jest nawet taka sama jak wersja, która mam na serwerze zewnętrznym, na mojej stronie. Więc myślę, że lokalnie to powinno również bez żadnego problemu działać. W phpMyAdmin wszedłem w bazę, którą utworzyłem, potem zaimportowałem dane z pobranej z serwera bazy, potem dodałem uprawnienia nowemu użytkownikowi, wszystkie globalne + opcja przyznanie wszystkich uprawnień do bazy danych
  • Poziom 15  
    Mając środowisko Windows, możesz przetestować to nie tylko na XAMPP - wyłącz go. U mnie zdecydowanie lepiej sprawdza się EasyPHP, możesz pobrać i zainstalować to z linku: https://www.easyphp.org/save-easyphp-devserver-latest.php
    Po instalacji:
    a/ wyłącz Skype, czasami blokuje konieczne porty;
    b/ Po uruchomieniu run-devserver.exe znajdziesz ikonę w systray, więc kliknij w nią prawym przyciskiem myszy i wybierz Servers -> Start/Restart All Servers - czyli serwerów PHP i bazy danych; Otwórz OpenDashboard by skonfigurować parametry PHP oraz bazy danych.
    c/ Po udanej instalacji znajdź katalog EasyPHP, a w nim podkatalog /eds-www/. W nim zaloż katalog np. mojprojekt i w nim zainstaluj skrypt;
    d/ Dodaj bazę, użytkownika, uprawnienia i zaimportuj dane;

    W ten sposób może dowiesz się, czy czegoś nie pominąłeś, czy problem nie leży czasem w XAMPP skoro powinno działać, a nie działa.
    A dwa środowiska "emulujące" działanie serwera PHP i baz danych - warto mieć zawsze do testów - to się przydaje - oczywiście, uruchamiaj tylko jedno do pracy.

    W OpenDashboard na stronie, znajdziesz "zębatkę" ustawień i konfiguracji, zarówno PHP jak i baz. Tam znajdziesz też linki do logów.
    Zobacz, co będzie tam zapisane, gdy włączysz sobie raportowanie błędów.

    Warto przejrzeć phpinfo - to na serwerze i to lokalne - i je porównać.
    Pamiętam, jak kiedyś pół nocy spędziłem nad uruchomieniem skryptu, ponieważ po nowej instalacji localhosta, miałem wyłączony w php.ini parametr mod_rewrite - i jego stan wyłączenia na off, również dawał mi błąd 500.
    Napisz, co masz w logach.
  • Poziom 3  
    Dziękuję za poradę dekRe

    Zrobiłem wszystko tak jak opisałeś ale niestety występuję ten sam błąd co na xampp. Próbowałem pozmieniać trochę w kodzie ale nic nie udało mi się zdziałać. Niestety nie tworzyłem tej aplikacji więc nie do końca wiem co jest od czego a plików jest masa. Poniżej log z błędem i plik dotyczący błędu.
    Łączenie się z lokalną bazą danych XAMPP Łączenie się z lokalną bazą danych XAMPP
  • Poziom 15  
    Powodem braku uruchomienia do działania serwera MySQL mogą być różne przyczyny:
    a/ błędnie przepisane do plików konfiguracyjnych dane logowania do bazy, hasło, nazwa użytkownika, brak właściwego poziomu uprawnień;
    b/ na komputerze z systemem operacyjnym niby antywirus o nazwie AVAST/AVG - lub podobny z gatunku Internet Security, który blokuje port połączeniowy z bazą danych - pomoże pełne odinstalowanie AVAST i oczyszczenie systemu z jego pozostałości, najlepiej deinstalatorem do AVAST'a;
    c/ zablokowany port połączeniowy z bazą danych na ścianie ogniowej Windows w samym firewallu;
    d/ blokowany port przez program Skype (z reguły pomaga wyłączenie Skype), lub program np. do fakturowania w oparciu o SQL, mający swój proces na tym samym porcie;
    e/ inna wersja MySQL'a niż ta na serwerze - najczęściej pomagało przełączenie w konfiguracji MySQL do działania tej starszej wersji.

    Sprawdź, czy na tym localhost jesteś w stanie postawić inny skrypt działający z MySQL. Ja proponuję do testu fajny CMS o nazwie Concrete 5, bowiem podczas instalacji on wyświetli, czy wszystko masz ok z obsługą MySQL - załóż nową bazę ze swoimi nazwami - pobierz archiwum z linku i rozpakuj w założonym folderze np. concrete5 -> ( https://www.concrete5.org/download oraz dokumentacja: https://documentation.concrete5.org/developers/installation/installation ).

    Jeśli uruchomisz w folderze ten skrypt po skonfigurowaniu bazy - to wiele z przyczyn niedziałania sama się wykluczy - albo pomoże zlokalizować Twój problem - wiele dowiesz się, np. czy MySQL może tu działać.

    Sprawdziłbym, czy zastosowanie tej samej wersji MySQL'a, co istniała oryginalnie na serwerze nie jest rozwiązaniem problemu - bo często okazywało się, że było źródłem podobnych problemów.