Instalacja LEMP czyli Linux Nginx MariaDB i PHP7

Autor: Rafal Marguzewicz
Opublikowany:
Kategorie: DevOps
Tagi:


maria db fundacjaJeżeli mamy zainstalowany system Linux możemy przejść do instalacji reszty zestawu LEMP Linux, NGINX, MariaDb i PHP7. Od momentu kiedy pierwszy raz zainstalowałem NGINX, Apache wydaje mi się przestarzałe. MariaDB zamiast MySQL wybrałem głównie pobudek technicznych ale również etycznych. A szybkość PHP7 poprawi podejście do tego języka. Wspólnie te połączenie jest naprawdę szybkie i ekonomiczne.


Instalacja PHP7 na Linux

sudo apt install php7.0 php7.0-fpm php7.0-mysql php7.0-cli php7.0-curl php7.0-json php7.0-gd php7.0-mcrypt php7.0-mbstring

Instalacja NGINX wersję stable

sudo apt install nginx

Instalacja MariaDb

sudo apt install mariadb-server

Jeżeli miałbyś jakieś problemy z instalacją MariaDb polecam odwiedzić tą stronę, wybrać swój system, ostatnią wersję stable MariaDB. W czasie pisania tego artykułu była to wersja 10.1. Ttrakcje instalacji zostaniesz zapytany o hasło do root. Jeżeli to developerski localhost, hasło możesz ustawić puste. Instalator zapyta się o hasło 3 razy.

Konfiguracja LEMP

Konfiguracja NGINX

nginxFolder gdzie będziemy trzymać pliki stron WWW to /home/<user>/Desktop/localhost. Jeżeli masz język polski do zamiast Desktop będzie Pulpit. Jeżeli to będzie serwer produkcyjny to proponuje trzymać pliki w folderze /home/www. Pamiętaj aby właścicielem tego folderu był user www-data.

sudo chown www-data:www-data -R /home/<user>/www/

NGINX trzyma pliki konfiguracyjne w folderze /etc/nginx/. Opis plików z mojej paczki:

  • nginx.conf – główny i startowy plik konfiguracyjny NGINX. Posiada ustawienia samego serwera HTTP jak i również ustawienia wszystkich serwer bloków. Aby nie robić jednego wielkiego pliku, nginx.conf includuje zawartość – server_blocks.conf (domyślnie jest inaczej)
  • server_blocks.conf – ustawienia wszystkich bloków serwera czyli ustawienia domenen, subdomen, przkierowań i podstron.
  • global.conf – optymalizacje
  • php.conf – możesz includować do konfiguracji domeny w przypadku potrzeby użycia PHP (ale tylko w przypadku domen głównych)
  • ssl.conf – możesz dołączać do konfiguracji lokalizacji gdy potrzebujesz HTTPS/2. Wcześniej musisz mieć jednak wygenerowane klucze SSL. Ja polecam darmowy letsencrypt.
  • Jeżeli konfigurujesz serwer z jednym użytkownikiem, nie potrzebujesz domyślnej koncepcji rozdzielania konfiguracji domen w oddzielnych plikach i w folderach sites-available lub conf.d.

    Czyli usuwamy nie potrzebne foldery

    sudo rm -fr /etc/nginx/conf.d/
    sudo rm -fr /etc/nginx/sites-available/
    sudo rm -fr /etc/nginx/sites-enabled/
    

    Przygotowałem dla ciebie paczkę którą możesz pobrać i skopiować do folderu NGINX.
    Jeżeli serwer lokalny/developerski to

    
    wget https://pceuropa.net/blog/wp-content/uploads/nginx_config_localhost.tar.gz && tar vxf nginx_config_localhost.tar.gz
    

    jeżeli produkcyjny/zdalny

    
    wget https://pceuropa.net/blog/wp-content/uploads/nginx_config_remote.tar.gz && tar vxf nginx_config_remote.tar.gz
    

    Nie zapomnij poprawić ścieżek w pliku server_blocks.conf. Możemy wrzucać pliki do folderu

    
    sudo cp *.conf /etc/nginx/
    

    Restart serwera NGINX dla zatwierdzenia zmian

    sudo service nginx reload 

    Zamiast podmieniać pliki metodą kopiownie, możesz edytować je po kolej, wklejając ctrl + shift + V tylko wybrane elementy :

    sudo nano /etc/nginx/nginx.conf
    sudo nano /etc/nginx/server_blocks.conf
    sudo nano /etc/nginx/global.conf
    sudo nano /etc/nginx/fastcgi.conf
    sudo nano /etc/nginx/php.conf
    sudo nano /etc/nginx/ssl.conf

    Konfiguracja dla localhost różni się od tej dla serwera produkcyjnego tym że na localhost przydatne jest wyświetlanie listy folderów. A na produkcji lepiej żeby po wpisaniu adresu IP serwera nie pokazywało nic. Dodatkowo różni się konfiguracja phpMyAdmin localhost od tej na serwerze zdalnym

Możliwe problemy

NGINX: błędne adresy folderów w konfiguracji, błędy składniowe konfiguracji. Obecność Apache w systemie.
Linux: uprawnienia (chmod lub chown) do folderów. Problem z instalacją pakietu.
SQL: podczas instalacji może Cię nie zapytać o hasło z powodu uruchomionej już usługi MySQL.

W przypadku wystąpienia problemów, potrzebuje więcej informacji:

Jeżeli to błąd składniowy pliku konfiguracji NGINX, wypisze Ci numery linii z błędami:

sudo nginx -t

błędne adresy folderów lub uprawnienia do folderów, logi powinny pomóc

sudo tail /var/log/nginx/error.log

W tedy albo trzeba ustawić własność folderu i grupę na www-data i/lub sprawdzić czy ścieżki folderów zgadzają się z tymi w konfiguracji.

W przypadku problemów ze strony serwera SQL sprawdź czy możesz się zalogować z poziomy terminala

mysql -u root -p

Jeżeli nie to wykonaj procedurę resetowania hasła root.

Instalacja LEMP czyli Linux Nginx MariaDB i PHP7
5 / 1 vote


Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Nazwa *
E-mail *

Przeczytaj poprzedni wpis:
Yii2 konfiguracja komponentów, modułów i framework’a

Plik konfiguracyjny Yii2 szablon podstawowy znajduje się pod adresem config/web.php. W przypadku konfiguracji Yii2 szablon zaawansowany, frontend i backend posiadają...

Zamknij