Instalacja Nginx (LEMP) w CentOS 8

Stos technologiczny LEMP jest powszechnie używany do hostowania aplikacji webowych.
LEMP składa się z: systemu operacyjnego Linux, serwera Nginx (Engine-X), bazy danych MySQL/MariaDB oraz interpretera języka skryptowego PHP. W tym wpisie pokazujemy jak zainstalować stack LEMP na CentOS 8.

Zainstalujemy Nginx, MariaDB oraz PHP z oficjalnych repozytoriów CentOS. Jeśli potrzebujemy najnowszych wersji tych pakietów można skorzystać z dodatkowych repozytoriów dla CentOS 8

Jak zawsze najpierw zaktualizujemy system.

dnf update

Instalacja Nginx

Nginx jest dostępny w domyślnym repozytorium (AppStream) CentOS 8.
Instalujemy poleceniem:

dnf install nginx
=======================================================================================================================
 Package                            Arch          Version                                       Repository        Size
=======================================================================================================================
Installing:
 nginx                              x86_64        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream        570 k
Installing dependencies:
 ...
 nginx-all-modules                  noarch        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         23 k
 nginx-filesystem                   noarch        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         24 k
 nginx-mod-http-image-filter        x86_64        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         35 k
 nginx-mod-http-perl                x86_64        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         45 k
 nginx-mod-http-xslt-filter         x86_64        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         33 k
 nginx-mod-mail                     x86_64        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         64 k
 nginx-mod-stream                   x86_64        1:1.14.1-9.module_el8.0.0+184+e34fea82        AppStream         85 k
 ...
Enabling module streams:
 nginx                                            1.14                                                                

Transaction Summary
=======================================================================================================================
Install  23 Packages

Total download size: 4.8 M
Installed size: 15 M
Is this ok [y/N]: 

Po instalacji startujemy Nginx oraz upewniemy się, że będzie się on uruchamiał podczas startu systemu.

systemctl enable --now nginx

Sprawdzamy status:

systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-10-30 13:33:31 UTC; 7s ago
  Process: 7484 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 7430 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 7423 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 7508 (nginx)
    Tasks: 3 (limit: 11524)
   Memory: 7.4M
   CGroup: /system.slice/nginx.service
           ├─7508 nginx: master process /usr/sbin/nginx
           ├─7510 nginx: worker process
           └─7511 nginx: worker process
...

Zezwalamy na dostęp do portów 80 i 443
W firewalld odblokowujemy porty: 80 (HTTP) oraz 443 (HTTPS)

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

Możemy sprawdzić czy Nginx działa odwiedzając adres http://IP_SERWERA/.

Instalacja MariaDB

Aby zainstalować MariaDB w CentOS 8 wydajemy polecenie:

dnf install mariadb-server

Po instalacji uruchamiamy oraz upewniamy się, że MariaDB będzie startować wraz z uruchamianiem systemu.

systemctl enable --now  mariadb

Następnie uruchamiamy skrypt zabezpieczający, który pozwala usunąć anonimowych użytkowników, testową bazę, zabronić zdalnego logowania oraz ustawić hasło roota mysql.

mysql_secure_installation

Sprawdzamy działanie MariaDB:

[root@centos8 ~]# mysql -u root -p -e "show databases;"
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+

Teraz już możemy zalogować się do serwera MariaDB, tworzyć użytkowników i bazy.

Instalacja PHP

Instalujemy PHP oraz moduł do obsługi MySQL(MariaDB) poleceniem:

dnf install php php-fpm php-mysqlnd

Uruchamiamy PHP-FPM oraz ustawiamy tak, aby usługa startowała wraz z systemem:

systemctl enable --now php-fpm

Aby sprawdzić działanie PHP wraz z serwerem Nginx utworzymy plik /usr/share/nginx/html/info.php z zawartością:

<?php phpinfo(); ?>

… poniższym poleceniem:

echo "<?php phpinfo(); ?>" > /usr/share/nginx/html/info.php

Restartujemy Nginx:

systemctl restart nginx

… i odwiedzamy adres http://IP_SERWERA/info.php lub jeśli przeprowadzamy całą operację na lokalnym komputerze klikamy link http://127.0.0.1/info.php.
Wyświetli nam się informacja na temat aktualnej konfiguracji PHP.

Gotowe! Zainstalowaliśmy stack LEMP na serwerze z CentOS 8.
Warto jeszcze usunąć plik z informacjami o PHP.

rm /usr/share/nginx/html/info.php

Dodaj komentarz