Wprowadzenie
Cześć! Ostatnio poświęciłem bardzo dużo czasu na testowanie różnych konfiguracji WordPressa na Coolify i zdecydowałem się napisać przystępny, techniczny poradnik abyś nie musiał przechodzić tej samej drogi co ja. Zatem jeśli chcesz dowiedzieć się jak dobrze zainstalować WordPressa na Coolify to zapraszam! 😁
Omówienie Coolify i jego możliwości
Coolify to platforma open-source, która upraszcza wdrażanie i zarządzanie aplikacjami, bazami danych i innymi usługami. Zaprojektowana z myślą o programistach, oferuje intuicyjny interfejs webowy i wsparcie dla aplikacji kontenerowych dzięki Dockerowi. Niezależnie od tego, czy hostujesz statyczną stronę, wdrażasz złożony backend, czy konfigurujesz aplikację full-stack, Coolify eliminuje wiele ręcznych kroków konfiguracji.
Co osiągniesz na końcu tego poradnika?
Po ukończeniu tego przewodnika będziesz mieć w pełni funkcjonalną stronę WordPress połączoną z osobną bazą danych MySQL, wdrożoną na Coolify. Dowiesz się również, jak zabezpieczyć swoją witrynę za pomocą HTTPS, uzyskać dostęp do plików WordPressa oraz zarządzać bazą danych. Taka konfiguracja będzie nie tylko solidna, ale również łatwa do utrzymania i rozbudowy w miarę wzrostu potrzeb. 😁
No ale mógłbyś powiedzieć. „Ale moment.. przecież Coolify ma już resource 'Wordpress’, to o czym tu dyskutować”.
Tak, ma, ale my zrobimy to lepiej i zaraz opowiem ci dlaczego.
Dlaczego warto skonfigurować WordPressa i MySQL jako osobne zasoby?
Chociaż Coolify oferuje wygodny zasób „WordPress z MySQL”, wybierzemy inną metodę, tworząc dwa oddzielne zasoby: jeden dla WordPressa i drugi dla MySQL. Takie podejście ma kilka kluczowych zalet.
Po pierwsze, rozdzielenie usług to dobra praktyka w nowoczesnych wdrożeniach. Na przykład można niezależnie aktualizować lub konserwować bazę danych bez wpływu na instancję WordPressa i odwrotnie. Dodatkowo można zainstalować wiele instancji WordPress przy jednej bazie danych.
Po drugie, wybierając samodzielny zasób MySQL, zyskujemy dodatkowe funkcje Coolify, takie jak automatyczne kopie zapasowe, które nie są dostępne w przypadku połączonego zasobu „WordPress z MySQL”. Te kopie zapasowe są kluczowe dla zachowania integralności danych i spokoju ducha w razie nieoczekiwanych problemów.
A po trzecie, możemy łatwo migrować nasz backend wordpressa na inne silniki i nie będzie mialo to wpływu na naszą bazę danych! (tak szykuje się artykuł o LiteSpeed)
Setting Up WordPress and MySQL Resources
Zacznijmy od stworzenia nowego projektu. Ja nazwałem swój „tutorial-project”.
Następnie dodajmy dwa zasoby: „WordPress without database” oraz „MySQL”.
Po ich utworzeniu warto zmienić domyślne nazwy na bardziej przyjazne użytkownikowi. Możemy to zrobić, edytując pola „Name” lub „Service Name” w ustawieniach każdego z zasobów.
TIP1: Jeśli chcesz mieć dostęp do swoich plików z poziomu serwera VPS (tam gdzie jest Coolify), możesz zmapować pliki WordPress.
W tym celu w Coolify kliknij na „Configuration” -> „General” i po kliknięciu na „Edit compose file” ustaw na przykład:
volumes:
- '/var/wordpress-sites/website.com:/var/www/html'
Nie zapomnij utworzyć folderu dla plików WordPress za pomocą mkdir -p /var/wordpress-sites/website.com
na twoim serwerze VPS. To właśnie tutaj „przemapują” się pliki WordPress.
Teraz uruchommy oba zasoby. Otwórz każdy z nich i kliknij „Start” lub „Deploy”. 🛫
TIP2: Gdy oba zasoby staną się zielone, możesz wyświetlić nowo utworzone kontenery Docker za pomocą polecenia:
docker container ls --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
Na załączonym zrzucie ekranu łatwo zauważysz dwa nowe kontenery dla WordPressa i MySQL. 🐬
Konfigurowanie zasobów
Zapewne myślisz, że teraz po prostu uruchomimy instalator WordPressa i gotowe. Masz rację, ale najpierw musimy połączyć nasze zasoby w tę samą sieć. 🛜
Aby to lepiej wyjaśnić, użyjemy polecenia docker inspect
na naszym serwerze Coolify, aby sprawdzić nowe kontenery. Zauważysz, że w sekcji „Networks” nie ma jednej sieci o tej samej nazwie dla obu kontenerów. 📦
Oznacza to, że kontenery nie „widzą się” w sieci, co uniemożliwia kontenerowi WordPress korzystanie z bazy danych MySQL z innego kontenera.
Naprawimy to, zaznaczając opcję „Connect to predefined Network” i wybierając „Restart” w zasobie WordPress. 🔁
Skonfigurujmy domenę dla naszej witryny WordPress. Otwórz zasób WordPressa, a następnie kliknij „Settings” w sekcji „Services”.
Jeśli poprawnie ustawiłeś rekord A w strefie DNS swojej domeny
, możesz teraz wpisać swoją domenę w polu „Domains”, np. http://moja-strona.pl,https://moja-strona.pl
.
Coolify automatycznie zajmie się przekierowaniami i gdy wykryje ruch przychodzący na dowolny z tych adresów, przekieruje go bezpośrednio do zasobu WordPress. 🛠️
(Nie zapomnij ponownie uruchomić zasobu po zapisaniu zmian.) 🫡
W ostatnim kroku musimy utworzyć nową bazę danych dla instancji WordPressa i nadać odpowiednie uprawnienia.
Aby to zrobić, otwórz zasób MySQL na Coolify i zanotuj pola „Root password”, „Normal user” oraz „Normal user password”. Użytkownik „Normal user” będzie użytkownikiem, którego użyjemy w WordPress.
Otwórz linię komend swojego serwera Coolify i wykonaj następujące polecenia:
docker exec -it <MYSQL_CONTAINER_NAME> mysql -uroot -p'<ROOT_PASSWORD>' -e "CREATE DATABASE wordpress;"
docker exec -it <MYSQL_CONTAINER_NAME> mysql -uroot -p'<ROOT_PASSWORD>' -e "GRANT ALL PRIVILEGES ON wordpress.* TO 'mysql'@'%'; FLUSH PRIVILEGES;"
Te polecenia utworzą bazę danych o nazwie wordpress
i przyznają użytkownikowi mysql
(Normal user) niezbędne uprawnienia do jej używania. 🔑
Teraz w końcu możemy rozpocząć ze standardową instalacją WordPressa 😁
Instalowanie WordPressa
Otwórz wcześniej skonfigurowaną domenę w przeglądarce, a zobaczysz ekran powitalny instalatora WordPress.
Podczas konfiguracji wprowadź mysql
jako nazwę użytkownika, odpowiednie hasło oraz wordpress
jako nazwę bazy danych. Host bazy danych powinien być nazwą Twojego kontenera MySQL.
I… mamy to! 🚀
Darmowe bonusowe treści!
Jeśli chcesz odebrać za darmo mój skrypt do automatycznego patchowania takiego serwera z Coolify, zapisz się do mojego newslettera!
Napisałem taki skrypt, żeby robić to szybko i jednym kliknięciem. Po zapisie otrzymasz link do sekcji bonusowych moich artykułów.
Dzięki!
Konfigurowanie HTTPS dla bezpiecznego dostępu
Aby wymusić HTTPS na naszej domenie, przejdź do ustawień WordPressa i zmień adres URL witryny na taki z https
. 🗝️
Po tej zmianie Twoja strona może przestać działać. Aby to naprawić, uzyskaj dostęp do linii komend i wprowadź następujące polecenia:
docker exec -it <WORDPRESS_CONTAINER_NAME> /bin/bash
apt update && apt install nano
nano wp-config.php
Dodaj $_SERVER['HTTPS']='on';
w odpowiedniej sekcji pliku:
Aby zapisać zmiany, naciśnij CTRL+X
, potem Y
, a następnie Enter
. I to wszystko! 🎉
Zarządzanie plikami WordPress
Czasami możesz potrzebować przesłać, zmodyfikować lub pobrać plik znajdujący się w katalogu Twojej witryny WordPress. 📂
Mamy na to dwa sposoby.
Sposób pierwszy to po prostu instalacja wtyczki WordPress „WP File Manager” i zarządzanie plikami z poziomu panelu administracyjnego WordPress.
Sposób drugi to połączenie się do naszego serwera VPS przez SSH i dostęp do plików na poziomie /var/wordpress-sites
Zarządzanie bazą danych MySQL
Podobnie jak w przypadku plików, czasami przydaje się wygodny sposób dostępu do bazy danych.
phpMyAdmin
Jeśli chcesz użyć phpMyAdmin, po prostu dodaj nowy zasób w Coolify o nazwie „phpMyAdmin”. 🪪
Tak jak wcześniej, wybierz „Connect to predefined Network” i skonfiguruj odpowiednią (i inną) domenę.
Ważne jest jednak, aby pamiętać, że phpMyAdmin wystawiony na internet może być celem nieautoryzowanego dostępu lub botów próbujących zalogować się do Twojej bazy danych.
Jeśli musisz korzystać z tego rozwiązania, upewnij się, że zasób phpMyAdmin jest domyślnie wyłączony i aktywuj go tylko w razie potrzeby. To działanie minimalizuje potencjalne luki bezpieczeństwa i chroni Twoje dane.
Tunelowanie portu SSH (zalecane)
Moim ulubionym sposobem jest SSH tunneling.
Polega on na tym, że będziemy łączyć się do naszej bazy danych za pomocą programu zainstalowanym na naszym systemie (np. dbBeaver).
Proces wygląda w ten sposób, że najpierw otwieramy połączenie SSH za pomocą odpowiedniej komendy, następnie SSH tuneluje port 3306 z serwera VPS na nasz lokalny port np. na Windows, a następnie łączymy się do bazy danych w dbBeaver na localhost:3306
Uwaga! Jeśli chcesz wykorzystać to rozwiązanie, nalegam, a wręcz rozkazuję abyś zablokował port 3306 na poziomie firewalla dostawcy VPS (np. w panelu Hetzner).
W następnym kroku będziemy „otwierać” port 3306 w Coolify, więc bez blokady na firewallu, nasza baza moze być dostępna „ze świata” – czego bardzo nie chcemy!
Zatem jeśli już zablokowałeś port 3306 na firewallu, to przejdź do Coolify, do resource z MySQL i w polu „Port mappings” wpisz: 3306:3306
. Teraz zrestartuj usługę.
Teraz jedyne co musimy zrobić, to na naszym systemie lokalnym (np. Windows) otworzyć połączenie do naszego serwera SSH dodając parametr -L 3306:localhost:3306
Na przykład:
ssh -L 3306:localhost:3306 [email protected]
I to wszystko! Teraz możesz otworzyć program dbBeaver i zalogować się jako root do bazy danych pod localhost:3306 (hasło w panelu Coolify)
Podsumowanie
Postępując zgodnie z tym przewodnikiem, udało Ci się pomyślnie skonfigurować WordPressa z osobną bazą danych MySQL na Coolify. W trakcie konfiguracji wdrożyliśmy HTTPS, umożliwiliśmy łatwe zarządzanie plikami oraz omówiliśmy sposoby wygodnego dostępu do bazy danych.
Rozdzielenie WordPressa i MySQL na oddzielne zasoby zwiększa elastyczność i odblokowuje dodatkowe funkcje, takie jak automatyczne kopie zapasowe, co pomaga w zabezpieczeniu danych. Takie podejście jest zgodne z najlepszymi praktykami nowoczesnych wdrożeń, wspierając łatwość utrzymania i długoterminową stabilność.
Teraz, gdy Twoja strona jest gotowa i poprawnie skonfigurowana, możesz skupić się na jej budowaniu i rozwijaniu swojej obecności w sieci. 🎉
[2025-07] To jeszcze nie wszystko!
W kolejnym artykule zajmiemy się maksymalną optymalizacją naszego hostingu.
Jeśli zależy Ci na osiągnięciu 99% w GTMetrix/PageSpeed i poprawie SEO, warto śledzić nasze wpisy na bieżąco.
Już wkrótce przejdziemy na serwer LiteSpeed i skonfigurujemy wtyczkę LiteSpeed Cache. 🔥
PS: Jeśli chcesz skonfigurować kopie zapasowe S3 w swojej instancji Coolify, sprawdź mój inny artykuł
➡️ Jak Skonfigurować Hosting S3 na Własnym Serwerze | hasto