QNAP jako hosting strony WWW – nginx, php-fpm, mariadb

Jak wiadomo jestem od dawna zwolennikiem nginx. Niestety QNAP podaje strony z wykorzystaniem Apache. Jednak tutaj z pomocą przychodzi nam docker oraz Container Station (który uprzednio musimy mieć zainstalowany).

Docker został stworzony do „separacji”/uruchamiania tylko aplikacji, nie cały systemów, jednak można je linkować. Dzięki temu tworzymy aplikację która składa się z kilku osobnych kontenerów.

Zatem w pierwszej kolejności trzeba przygotować strukturę:

Czyli całość (pliki strony, bazy, konfiguracyjne oraz logi) będą trzymane na QNAP w /share/Web. Tworzę katalog 8px.pl jako domenę a w nim katalogi:

  • app – pliki strony
  • database – pliki MariaDB
  • fpm – pliki konfiguracyjne PHP-FPM
  • logs – logi nginx
  • nginx – konfiguracja serwera www

Teraz musimy przygotować wspomniane pliki konfiguracyjne, i tak PHP-FPM /share/Web/8px.pl/fpm/pool.conf

Jak widać instancja nazywa się www.8px.pl, będzie działać  na porcie 9000 z wykorzystaniem usera www-data. Sama konfiguracja nie jest domyślną.

Teraz serwer WWW i tak /share/Web/8px.pl/nginx/nginx.conf

To też nie jest konfiguracja domyślna, proszę też pamiętać  aby wykonać modyfikację pod swoje wymagania. Jeszcze ostatni plik z deklaracjami vhost /share/Web/8px.pl/nginx/default.conf

Teraz pozostaje nam uruchomić całe środowisko. Zatem wybieramy tworzenie nowego kontenera w CS na QNAP i tym razem nic nie szukamy, a klikamy tworzenie aplikacji:

Teraz w oknie dodajemy plik dla docker-compose który wykona zadanie:

Jaka widać mamy zdefiniowane usługi które mają być zainstalowane, voluminy do zamontowania oraz na końcu hasło do bazy SQL – proszę podać swoje, należy też ustawić porty serwera WWW.

Gotowa aplikacja:

Wynik phpinfo dla takiej aplikacji.


Tutaj tylko dodam, iż to jest dobry początek do dalszych prac, warto w przyszłości bliskiej pomyśleć o SSL/HTTP2 z wykorzystaniem nginx jako revers proxy dla kontenerów, letsencrypt


Linux, Qnap, WebDev