Masz pytania? Zadzwoń: +48 42 299 67 33
Konfiguracja Nginx dla Wordpress

Konfiguracja Nginx dla Wordpress

Łukasz Firaza
2016-08-09

Bardzo często, uruchamiając naszą stronę internetową nie przywiązujemy większej wagi do konfiguracji serwera, na którym będzie utrzymywana. Nie ma w tym nic złego, gdy dopiero raczkujemy w świecie Internetu, a ruch na stronie jest niewielki. W takich warunkach w zasadzie każde rozwiązanie, które spowoduje, że aplikacja będzie działać prawidłowo jest jak najbardziej w porządku. Natomiast w momencie gdy nasza strona zdobywa popularność a ruch na niej wrasta, warto bliżej przyjrzeć się środowisku w jakim jest uruchomiona, co może pozwolić nam w znacznym stopniu optymalizować zasoby potrzebne do jej utrzymywania. Jako, że jednym z najpopularniejszych obecnie CMSów jest WordPress postaram się pokazać na jego przykładzie jak można uruchomić opartą o niego aplikacje w lekkim środowisku z Nginxem.

Czym jest Nginx i kiedy warto z niego korzystać?

Jest to usługa systemowa, której zadaniem jest obsługiwanie żądań kierowanych do serwera i zwracanie adekwatnych do rodzaju zgłoszonego żądania danych. W momencie gdy wpisujemy w przeglądarce jakiś adres internetowy, generujemy takie właśnie żądanie. Na jego podstawie zostaje zwrócona nam strona internetowa. Obecnie w dalszym ciągu najpopularniejszym na serwerach hostingowych, szczególnie serwach stron www, jest Apache. Apache i Nginx w dużym uproszczeniu służą więc do tego samego. Czemu w takim razie nie pozostać przy Apache? To proste! Nginx jest wydajniejszy. Przekłada się to w prost na liczbę zapytań, jakie może obsłużyć nasz serwer przy stałych zasobach sprzętowych. Szczególnie duże różnice w wydajności zaobserwujemy w przypadku wielu jednoczesnych połączeń. Ilość połączeń jaką będzie wstanie obsługiwać Nginx, może być prawie 4 razy większa niż w przypadku Apache. Oczywiście różnice takie biorą się z innej architektury tych usług, w tym wpisie nie będziemy się w to jednak zagłębiać.

Najważniejszym wnioskiem, jaki się nasuwa jest to, że przy zastosowaniu Nginxa można obsłużyć większy ruch na stronie lub pozwolić sobie na słabszy (a zarazem tańszy) serwer.

Taka optymalizacja może być bardzo opłacalna pod względem finansowym i wizerunkowym, szczególnie gdy Twoje strony stają się coraz bardziej popularne. Pamiętaj jednak, że zmiana serwera www nie rozwiąże problemów z wydajnością jeśli leżą one po stronie samej aplikacji. Dlatego przed podjęciem takiej decyzji warto w pierwszej kolejności upewnić się, że sama aplikacja działa poprawnie i jest zoptymalizowana.

Nginx a konfiguracja przez użytkownika

Jedną z największych różnić, z jaką możemy się spotkać rezygnując z Apache na rzecz Nginxa, jest fakt, iż ten drugi nie obsługuje znanych plików .htaccess, jak również nie wspiera składni mod_rewrite. Oczywiście wszystkie konfiguracje związane z przekierowaniami da się wykonać, nie mniej trzeba je wprowadzać bezpośrednio w konfiguracji serwera i w nieco inny sposób niż w przypadku Apache. Oznacza to, że użytkownik aplikacji nie jest w stanie wprowadzić żadnej zmiany w działaniu serwer, może to zrobić tylko administrator. Poza tym Nginx nie oferuje tylu dodatkowych modułów co jego główny konkurent (większość z nich i tak nie jest szeroko stosowana). Jednak powyższe to cena, jaką warto zapłacić za dużo wyższą wydajność.

Jak zainstalować środowisko i uruchomić WordPress'a?

Gdy decydujemy się na Nginxa, zwykle mamy już jakiś serwis posiadający duży ruch. W takich sytuacjach zwykle przeznaczamy pod obsługę danej strony cały serwer. Dokładnie z takim założeniem pokażę jak szybko uruchomić naszego WordPress'a w wydajnym środowisku.

W celu ułatwienia konfiguracji powstało wiele gotowych instalatorów i konfiguratorów. W przypadku konfiguracji opartej o Nginxa i PHP najpopularniejszym wydaje się być Centmin Mod [http://centminmod.com/]. Wykorzystamy to narzędzie do instalacji i konfiguracji naszego środowiska, ponieważ nawet średnio zapoznana z tematem osoba jest w stanie, przy jego pomocy, stosunkowo poprawnie skonfigurować serwer. Centmin Mod działa tylko na systemach CentOS 6.x oraz CentOS 7.x, dlatego też serwer z takim systemem będzie nam potrzebny. Bez problemu można go zainstalować na wszystkich sprzedawanych w Kylos.pl serwerach VPS [https://www.kylos.pl/serwery-vps/].

Gdy już zaopatrzymy się w nasz serwer VPS, logujemy się do niego z użyciem konsoli SSH na konto root'a i postępujemy zgodnie z dalszymi wskazówkami.

1. Aktualizacja systemu i instalacja Centmin Mod'a

W konsoli wydajemy polecenie:

yum -y update; curl -O https://centminmod.com/installer.sh && chmod 0700 installer.sh && bash installer.sh

 

Instalacja może potrwać około 1 godziny, zależne jest to od wydajności naszego serwera.

2. Zapisujemy dane do MySQL

Po zakończeniu instalacji zostaną wyświetlone dane wygenerowane podczas tego procesu. Najważniejsze z nich to dane do serwera MySQL. Warto je sobie zapisać.

Wyglądają one jak poniżej:

MySQL root password: HASŁO

3. Instalacja phpMyAdmina

W celu łatwiejszego zarządzania bazami danych warto zainstalować na serwerze phpMyAdmina. Najnowsza wersje pobieramy ze strony https://www.phpmyadmin.net/downloads/ i umieszczamy w folderze /usr/local/nginx/html/
Oczywiście możemy to zrobić bezpośrednio z serwera wykonując analogiczne polecenia do poniższych (pamiętając że w przypadku innej wersji mogą zmienić się linki i foldery):

 

cd /usr/local/nginx/html/
wget https://files.phpmyadmin.net/phpMyAdmin/4.6.3/phpMyAdmin-4.6.3-all-languages.tar.gz
tar -xvzf phpMyAdmin-4.6.3-all-languages.tar.gz

Warto również zmienić nazwę folderu, który utworzy się po wypakowaniu archiwum, na jakąś łatwiejsza do zapamiętania:

mv  phpMyAdmin-4.6.3-all-languages phpmyadmin

Powinniśmy też poprawić grupę i użytkownika plików:

chown -R nginx:nginx phpmyadmin

 

Zainstalowany phpMyAdmin powinien być teraz dostępny pod głównym adresem IP serwera.
Aby
się do niego dostać podajemy w przeglądarce adres http://IP_SERWERA/phpmyadmin

Dla przykładu może to wyglądać podobnie do http://127.0.0.0/phpmyadmin

 

4. Dodajmy użytkownika i bazę danych

Po uruchomieniu phpMyAdmian i wejściu na jego stronę, logujemy się do niego na konto root'a z zapisanym wcześniej hasłem.

Po zalogowaniu przechodzimy do meny Konta użytkowników.

  

 

 

Wybieramy opcje "Add user account"

 

Wypełniamy dane użytkownika w sekcji "Add user account". Jako hostaname dla bezpieczeństwa warto wybrać host lokalny – oznacza to że do tego użytkownika bazy danych, połączenia mogą być realizowane tylko bezpośrednio z serwera. Uzupełniamy hasło (lub je generujemy). Zaznaczamy kwadracik powodujący, iż automatycznie zostanie utworzona baza o nazwie takiej samej jak nazwa użytkownika. Czyli w tym przypadku będzie to wordpress.

 

Dane do połączenia dla pokazanej powyżej bazy będą następujące:
Nazwa użytkownika: wordpress
Nazwa bazy: wordpress
Host/Adres serwera: localhost lub 127.0.0.1
Hasło: jak ustawiono
Dane te warto zachować, gdyż będą potrzebne przy instalacji wordpress'a.


Aby utworzyć użytkownika i bazę, klikamy przycisk "Wykonaj".
Powinniśmy zobaczyć naszego użytkownika na liście dostępnych.

5. Podpinamy do serwera naszą domenę

 Wracamy do konsoli naszego serwera i wydajemy polecenie:

centmin

Powinniśmy po tym zobaczyć takie oto menu:

 

Wybieramy opcje z numerem 2 czyli Add Nginx vhost domain i odpowiadamy na kolejne pytania analogicznie do moich testowych danych (oczywiście pamiętając aby podawać swoją domenę):

Enter vhost domain name to add (without www. prefix): domenatestowa.kylos.pl

Podajemy domenę pod jaką ma działać WordPress

Create a self-signed SSL certificate Nginx vhost? [y/n]: n

Zaznaczamy "nie", by nie generować samopodpisanego certyfikatu SSL.

Create FTP username for vhost domain (enter username): wordpress

Tworzymy użytkownika FTP o podanej nazwie.

Auto generate FTP password (recommended) [y/n]: y

Decydujemy się, by hasło do FTP zostało wygenerowane.

 

Po stworzeniu naszego VirtualHosta, powinny wyświetlić się dane do połączenia z FTP:

FTP hostname : ADRES IP TWOJEGO SERWERA

FTP hostname : ADRES IP TWOJEGO SERWERA
FTP port : 21
FTP mode : FTP (explicit SSL)
FTP Passive (PASV) : ensure is checked/enabled
FTP username created for domenatestowa.kylos.pl : wordpress
FTP password created for domenatestowa.kylos.pl : HASŁO

 

Oraz informacja o pliku, w jakim znajduje się konfiguracja dla podpiętej właśnie domeny:

domain: http://domenatestowa.kylos.pl
vhost conf file for domenatestowa.kylos.pl created: /usr/local/nginx/conf/conf.d/domenatestowa.kylos.pl.conf

 

Dodatkowo informacja gdzie należy umieszczać pliki strony:

upload files to /home/nginx/domains/domenatestowa.kylos.pl/public

Dostaniemy też informacje gdzie będą odkładane logi dla tej domeny:

vhost log files directory is /home/nginx/domains/domenatestowa.kylos.pl/log

 

Po dodaniu naszej domeny, wychodzimy z menu Centmin Moda wpisując liczbę 24 i wciskając Enter.

 

Musimy pamiętać również, że aby nasza strona działała prawidłowo konieczne będzie skierowanie domeny na nasz serwer. W tym przypadku, jeżeli mamy już jakiś serwer DNS, najprościej jest skierować rekord A domeny na IP naszego nowego serwera z Nginxem.

Przydatny może okazać się wpis w naszej bazie wiedzy, który wyjaśni jak zmienić delegację DNS bez podpinania domeny do serwera. 

https://panel.kylos.pl/knowledgebase/182/Jak-zmienic-rekordy-DNS-domeny-bez-podpinania-jej-do-serwera.html

6. Edytujemy konfiguracje Nginxa

Aby nasz WordPress mógł poprawnie działać korzystając z "przyjaznych linków", musimy jeszcze wprowadzić zmianę w konfiguracji Nginxa.

Otwieramy w tym celu wcześniej wskazany nam plik konfiguracyjny wybranym edytorem:

nano /usr/local/nginx/conf/conf.d/domenatestowa.kylos.pl.conf

 

Wyszukujemy w nim sekcje location / { } i przed ostatnim nawiasem klamrowym dopisujemy:

try_files            $uri $uri/ /index.php?$args;

Po tej zmianie wykonujemy restart Nginxa poleceniem:

dla CentOS 6.x

service nginx restart 

dla CentOS 7.x

systemctl restart nginx

 

Wprowadzone zmiany powinny wystarczyć do uruchomienia większości WordPressów.

W przypadku bardziej rozbudowanych serwisów może okazać się konieczne wprowadzenie dodatkowych zmian. Nie mniej jeśli korzystamy z popularnych wtyczek, które wymagają zmian w konfiguracji serwera www, to ich dostawcy również zwykle na stronach umieszczają informacje jak należy skonfigurować serwer Nginxa. Twórcy samego WordPress'a również dostarczają w dokumentacji tego typu informacje https://codex.wordpress.org/Nginx np. w sytuacji korzystania z trybu MultiSite.

7. Uruchamiamy naszego WordPress'a

Po skonfigurowaniu serwera, możemy umieścić pliki WordPress'a we wcześniej wskazanym katalogu i przystąpić do jego instalacji. Jeśli już posiadamy aplikacje i chcemy ją zmigrować na nowy serwer, oczywiście również nic nie stoi na przeszkodzie. Pomocny w takiej sytuacji może być mój wpis odnośnie tego jak wykonać takie przeniesienie WordPress'a https://www.kylos.pl/blog/migracje-wordpress/


Po zakończeniu instalacji strona powinna być widoczna pod naszą domeną.

Mogą Cię również zainteresować

comments powered by Disqus