Strona w WordPress lokalnie z użyciem XAMPP

O tworzeniu strony w WordPress pisałem już wielokrotnie. W większości przypadków wystarczy skorzystać z instalacji strony dostępnej z poziomu hostingodawcy. Nie wymaga to większej wiedzy, ponadto jest to rozwiązanie szybkie, pewne i często oferujące dodatkowe korzyści np. aktualizację wielu stron z jednego miejsca czy backup.

Niemniej kiedy piszemy i testujemy wtyczki lepiej nie robić tego na działającym w Internecie serwisie. Tym bardziej, że w trakcie pisania kodu dobrze jest włączyć tryb debugowania, aby widzieć potencjalne problemy z działaniem naszego modułu i samego WordPressa. Niekoniecznie też chcemy się chwalić naszymi próbami z całym światem.. tym bardziej, że wtyczka nie raz całkowicie położy nam stronę (tak działa WordPress). Także zanim dodamy także zewnętrzną wtyczkę dobrze jest się upewnić, że działa ona prawidłowo i nie rozsypie nam strony.

XAMPP

XAMPP to darmowe i otwarte oprogramowanie, które służy jako lokalny serwer testowy do tworzenia i testowania stron internetowych. Jest to pakiet zawierający głównie Apache HTTP Server, MariaDB (wcześniej MySQL) oraz interpretery skryptów napisanych w językach PHP i Perl. XAMPP jest dostępny dla wielu systemów operacyjnych, w tym Windows, Linux i MacOS.

XAMPP pobieramy ze strony Apache. Instalacja jest standardowa, a sam program zainstaluje się domyślnie na dysku C w katalogu xampp. Po uruchomieniu programu wyświetli nam się taki interfejs:

Dla naszej strony potrzebujemy tylko moduły Apache oraz MySQL. Pierwszy pozwoli nam wyświetlić stronę lokalnie, drugi to baza danych MySQL używana domyślnie przez WordPress-a. Aby uruchomić serwery wystarczy kliknąć Start przy wybranych modułach. Z tego poziomu mamy także dostęp do plików konfiguracyjnych oraz logów serwera. Restartowanie serwera polega na kliknięciu Stop i ponownie Start – będziemy to czasami robić (np. jak wprowadzimy zmiany).

localhost

localhost to standardowy hostname (nazwa hosta) używany do odnoszenia się do tego samego komputera, na którym jest uruchomiona dana aplikacja lub usługa sieciowa. W kontekście sieci localhost zwykle odpowiada adresowi IP 127.0.0.1 w protokole IPv4 lub ::1 w protokole IPv6. Gdy odwołujesz się do localhost w przeglądarce internetowej lub w innej aplikacji sieciowej, komunikujesz się z serwerem lub usługą działającą na tym samym komputerze, z którego korzystasz.

Inaczej mówiąc – słówko localhost odnosi się do tej maszyny na której jest np. zainstalowana strona. Adresy stron internetowych są zamieniane zawsze na ciąg cyferek tzw. adres IP (przez serwer DNS). Jeżeli wpiszesz w przeglądarce http://localhost to system prawdopodobnie zamieni to na adres http://127.0.0.1 i będzie próbował wyświetlić stronę pod tym adresem.

Lokalny serwer DNS

Standardowo serwer DNS (zamieniający nazwy na cyferki) znajduje się na serwerach NASK. Wszystko (prawie) co wpisujemy w adresie w przeglądarce wysyłane jest tam, a w odpowiedzi otrzymujemy adres IP. Oczywiście dzieje się to transparentnie i nie widzimy całego procesu.

I teraz to co istotne dla Nas. Zanim przeglądarka się zapyta o wspomniany IP, sprawdza czy przypadkiem nie jest on już zapisany lokalnie na komputerze. Możemy więc samodzielnie wskazać jaki adres IP ma zwracać serwer jak wpiszemy coś w przeglądarce. W Windows robi się to edytując plik hosts. Plik ten znajduje się w katalogu systemowym. Aby się do niego dostać możemy użyć aliasu %WinDir%\System32\Drivers\Etc. Edytowanie i zapisywane pliku wymagać będzie praw administratora.

Zanim cokolwiek zrobimy, skopiujmy go na wszelki wypadek.

Teraz w pliku dodajmy następującą linię:

127.0.0.1 wordpress.localhost.com

Po zapisaniu pliku i wpisaniu w przeglądarce adresu http://wordpress.localhost.com, przeglądarka w odpowiedzi uzyska adres IP 127.0.0.1. W tym momencie pod tym adresem jeszcze nic nie ma, a za poprawne obsłużenie tego adresu odpowiada serwer Apache, który zainstalowaliśmy na początku.

Instalacja WordPress i konfiguracja serwera Apache

Nasze lokalne projekty (strony internetowe) domyślnie znajdują się w katalogu C:\xampp\htdocs. Zanim skonfigurujemy serwer pobierz najnowszą wersję WordPress. Po pobraniu rozpakują ją do powyższego katalogu i zmień nazwę katalogu na np. wordpress (domyślnie powinna być taka nazwa).

Teraz musimy sprawić, aby po wpisaniu http://wordpress.localhost.com, serwer wysyłał to co znajduje się we wspomnianym katalogu (domyślnie szuka najpierw pliku index.html lub index.php). Konfiguracja tego znajduje się w katalogu C:\xampp\apache\conf\extra w pliku httpd-vhosts.conf. Tradycyjnie zróbmy kopię pliku, a następnie dopiszmy do niego następujące linijki.

<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/wordpress"
ServerName wordpress.localhost.com
</VirtualHost>

Powyższe nie wymaga wielu wyjaśnień. Możemy w ten sposób dopisać inne wirtualne hosty np. z innymi stronami.

Teraz pozostaje zrestartować serwer (wyłącz i włącz Apache oraz MySQL), a po uruchomieniu wyświetli nam się strona instalacyjna WordPress.

Nim przejdziemy przez instalację musimy utworzyć bazę danych, która będzie używana przez WordPress-a. W tym celu wchodzimy ponownie do XAMPP i klikamy admin przy serwerze MySQL.

Logujemy się do phpmyadmin i klikamy na Nowa po lewej stronie. W nazwie bazy wpisujemy przykładowo wordpress i naciskamy Utwórz.

Jak mamy już bazę danych możemy przejść do instalacji WordPress-a. Pod http://wordpress.localhost.com klikamy Zaczynamy i w kolejnym kroku wypełniamy stosowne pola. Login do bazy to root, a hasła nie ustawiamy wcale.

Jeżeli wszystko przebiegło pomyślnie otrzymamy komunikat, który pozwoli nam na rozpoczęcie i zakończenie instalacji.

Na zakończenie dodam tylko, że na tej samej bazie danych możemy zainstalować wiele instancji WordPress-a, ale musimy pamiętać o zmianie prefiksa dla każdej z nich (domyślnie wp_). Generalnie zmiana prefiksa (ze względów bezpieczeństwa) jest w zasadzie wskazana i dla dobrze napisanych wtyczek nie będzie stanowiła problemu.