Jak zainstalować Nginx, Mariadb 10, PHP 7 (stos LEMP) w 16.10/16.04

Jak zainstalować Nginx, Mariadb 10, PHP 7 (stos LEMP) w 16.10/16.04

LEMP Stack to akronim, który reprezentuje grupę pakietów (system OS Linux, serwer WWW Nginx, baza danych MySQL \ Mariadb i język dynamiczny serwera PHP), które są używane do wdrażania dynamicznych aplikacji internetowych i stron internetowych stron internetowych.

Ten samouczek poprowadzi Cię, jak zainstalować stos Lemp z Mariadb 10, PHP 7 I HTTP 2.0 Wsparcie dla Nginx NA Ubuntu 16.10 I Ubuntu 16.04 Edycje serwera/komputerów stacjonarnych.

Wymagania

  1. Instalacja Ubuntu 16.04 Server Edition [Instrukcje również działają Ubuntu 16.10]

Krok 1: Zainstaluj serwer WWW Nginx

1. Nginx to nowoczesny i wydajny serwer WWW używany do wyświetlania stron internetowych dla odwiedzających w Internecie. Zaczniemy od zainstalowania serwera WWW Nginx z oficjalnych repozytoriów Ubuntu za pomocą wiersza poleceń Apt.

$ sudo apt-get instaluj nginx 
Zainstaluj Nginx na Ubuntu 16.04

2. Następnie wydaj polecenia NetStat i SystemCtl, aby potwierdzić, czy Nginx jest uruchamiany i wiązań na porcie 80.

$ netstat -tlpn 
Sprawdź połączenie portów sieciowych Nginx
$ sudo systemCtl status nginx.praca 
Sprawdź status usługi Nginx

Po potwierdzeniu, że serwer zostanie uruchomiony, możesz otworzyć przeglądarkę i przejść do adresu IP serwera lub rekordu DNS za pomocą protokołu HTTP w celu odwiedzenia domyślnej strony internetowej Nginx.

http: // ip-address 
Sprawdź stronę Nginx

Krok 2: Włącz Nginx HTTP/2.0 protokół

3. HTTP/2.0 protokół, który jest domyślnie budowany w najnowszej wersji Nginx binarie Ubuntu 16.04 Działa tylko w połączeniu z SSL i obiecuje ogromną poprawę prędkości w ładowaniu stron internetowych SSL.

Aby włączyć protokół w Nginx ON Ubuntu 16.04, Najpierw przejdź do plików konfiguracyjnych dostępnych witryn Nginx i zapasuj kopię zapasową domyślnego pliku konfiguracyjnego, wydając poniższe polecenie.

$ cd/etc/nginx/witryny-dostępna/$ sudo mv domyślnie domyślnie.kopia zapasowa 
Plik konfiguracyjny witryn nginx tworzenia kopii zapasowych

4. Następnie za pomocą edytora tekstu Utwórz nową domyślną stronę z poniższymi instrukcjami:

serwer Słuchaj 443 SSL http2 default_server; Posłuchaj [::]: 443 SSL http2 default_server; root/var/www/html; indeks indeksu.Indeks HTML.Indeks HTM.php; Server_name 192.168.1.13; lokalizacja / try_files $ uri $ uri / = 404;  ssl_certificate/etc/nginx/ssl/nginx.crt; SSL_Certificate_Key/etc/nginx/ssl/nginx.klucz; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_prefer_server_ciphers on; SSL_CIPHERS EECDH+CHACHA20: EECDH+AES128: RSA+AES128: EECDH+AES256: RSA+AES256: EECDH+3DES: RSA+3DES:!MD5; ssl_dhparam/etc/nginx/ssl/dhparam.pem; SSL_SESSION_CACHE SHARED: SSL: 20m; ssl_session_timeout 180m; Resolver 8.8.8.8 8.8.4.4; add_header scransport-security „max-ee = 31536000; #includesubdomains” zawsze; Lokalizacja ~ \.php $ obejmują fragmenty/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.skarpetka;  Lokalizacja ~ /\.ht odmów wszystkich;  serwer Słuchaj 80; Posłuchaj [::]: 80; Server_name 192.168.1.13; return 301 https: // $ server_name $ request_URI;  
Włącz protokoł Nginx HTTP 2

Powyższy fragment konfiguracji umożliwia użycie HTTP/2.0 dodając HTTP2 parametr wszystkich dyrektyw słuchania SSL.

Ponadto ostatnia część fragmentu zawartego w dyrektywie serwera służy do przekierowania całego ruchu bez SSL do domyślnego hosta SSL/TLS. Wymień także Nazwa serwera dyrektywa w celu dopasowania własnego adresu IP lub rekordu DNS (najlepiej FQDN).

5. Po zakończeniu edytowania domyślnego pliku konfiguracyjnego Nginx z powyższymi ustawieniami generuj i wyświetl plik certyfikatu SSL i klucz, wykonując poniższe polecenia.

Wypełnij certyfikat własnymi niestandardowymi ustawieniami i zwróć uwagę Nazwa zwyczajowa ustawienie w celu dopasowania rekordu DNS FQDN lub adresu IP serwera, który zostanie użyty do dostępu do strony internetowej.

$ sudo mkdir/etc/nginx/ssl $ sudo openssl req -x509 -nodes -Days 365 -Newkey RSA: 2048 -Keyout/etc/nginx/ssl/nginx.klawisz -ut/etc/nginx/ssl/nginx.crt $ ls/etc/nginx/ssl/ 
Wygeneruj certyfikat SSL i klucz dla Nginx

6. Stwórz także silny DH Cypher, który został zmieniony w powyższym pliku konfiguracyjnym SSL_DHPARAM Wiersz instrukcji, wydając poniższe polecenie:

$ sudo openssl dhparam -out/etc/nginx/ssl/dhparam.PEM 2048 
Utwórz klucz diffie-Hellman

7. Kiedyś Diffie-Hellman Klucz został utworzony, sprawdź, czy plik konfiguracyjny Nginx jest poprawnie zapisany i może być stosowany przez Nginx Web Server i ponownie uruchomić demon, aby odzwierciedlić zmiany, uruchamiając poniższe polecenia.

$ sudo nginx -t $ sudo systemctl restart nginx.praca 
Sprawdź konfigurację Nginx

8. Aby sprawdzić, czy Nginx używa HTTP/2.0 Protokół Wydaj poniższe polecenie. Obecność H2 Reklamowany protokół potwierdza, że ​​Nginx został pomyślnie skonfigurowany do używania HTTP/2.0 protokół. Wszystkie nowoczesne aktualne przeglądarki powinny domyślnie obsługiwać ten protokół.

$ openssl s_client -Connect LocalHost: 443 -Nextprotoneg "
Test nginx http 2.0 protokół

Krok 3: Zainstaluj interpreter PHP 7

Nginx może być używany z PHP Dynamic Processing Language Interpreter do generowania dynamicznej zawartości sieci za pomocą FastCGI Process Manager uzyskanego przez instalację PHP-FPM Pakiet binarny z oficjalnych repozytoriów Ubuntu.

9. Aby złapać Php7.0 oraz dodatkowe pakiety, które pozwolą PHP komunikować się z serwerem WWW Nginx, poniższe polecenie na konsoli serwera:

$ sudo apt Zainstaluj php7.0 php7.0-fpm 
Zainstaluj PHP 7 i PHP-FPM dla Ngin

10. Kiedyś Php7.0 Interpreter został pomyślnie zainstalowany na twoim komputerze, uruchom i sprawdź php7.0-fpm Demon, wydając poniższe polecenie:

$ sudo systemctl start php7.0-fpm $ sudo Systemctl Status PHP7.0-fpm 
Rozpocznij i sprawdź usługę PHP-FPM

11. Obecny plik konfiguracyjny Nginx jest już skonfigurowany do użycia PHP Fastcgi Menedżer procesów w celu serwowania treści dynamicznej.

Blok serwerowy, który umożliwia Nginx korzystanie z interpretera PHP, jest prezentowany na poniższym fragmencie, więc nie są wymagane dalsze modyfikacje domyślnego pliku konfiguracyjnego Nginx.

Lokalizacja ~ \.php $ obejmują fragmenty/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.skarpetka;  

Poniżej znajduje się zrzut ekranu, jakie instrukcje potrzebujesz, aby porzucić i modyfikować to przypadek oryginalnego domyślnego pliku konfiguracyjnego Nginx.

Włącz php fastcgi dla nginx

12. Aby przetestować relację serwera WWW z PHP FastCGI Process Manager Utwórz PHP informacje.php Testuj plik konfiguracji, wydając poniższe polecenie i sprawdź ustawienia, odwiedzając ten plik konfiguracyjny za pomocą poniższego adresu: http: // ip_or domena/info.php.

$ sudo su -c 'echo "" | tee/var/www/html/info.php ' 
Utwórz plik informacyjny PHP Sprawdź informacje PHP FastCGI

Sprawdź także, czy HTTP/2.0 Protokół jest reklamowany przez serwer poprzez zlokalizowanie linii $ _Server ['server_protocol'] na zmiennych PHP blokuje ilustrowano na poniższym zrzucie ekranu.

Sprawdź HTTP 2.0 Informacje o protokole

13. Aby zainstalować dodatkowe Php7.0 moduły używają Apt Wyszukaj php7.0 polecenie, aby znaleźć moduł PHP i zainstalować go.

Spróbuj także zainstalować następujące moduły PHP, które mogą się przydać na wypadek, gdybyś planował zainstalować WordPress lub inne CMS.

$ sudo apt Zainstaluj php7.0-mcrypt php7.0-mbstring 
Zainstaluj moduły PHP 7

14. Aby zarejestrować dodatkowe moduły PHP, po prostu uruchom ponownie PHP-FPM Demon, wydając poniższe polecenie.

$ sudo systemctl restart php7.0-fpm.praca 

Krok 4: Zainstaluj bazę danych Mariadb

15. Wreszcie, aby ukończyć nasze LEMP Stos potrzebujemy komponentu bazy danych MariaDB do przechowywania i zarządzania danymi witryn internetowych.

zainstalować Mariadb System zarządzania bazą danych poprzez uruchomienie poniższego polecenia i ponowne uruchomienie PHP-FPM usługa w celu korzystania z modułu MySQL w celu uzyskania dostępu do bazy danych.

$ sudo apt Zainstaluj mariadb-server mariadb-client php7.0-Mysql $ sudo systemctl restart php7.0-fpm.praca 
Zainstaluj mariadb dla Nginx

16. Aby zabezpieczyć instalację MariaDB, uruchom skrypt bezpieczeństwa dostarczany przez pakiet binarny od repozytoriów Ubuntu, które zapytają ustawienie hasła root, usuń anonimowe użytkowników, zdalnie wyłączyć login root i usuń testową bazę danych.

Uruchom skrypt, wydając poniższe polecenie i odpowiedz na wszystkie pytania Tak. Użyj poniższego zrzutu ekranu jako przewodnika.

$ sudo mysql_secure_instalation 
Bezpieczna instalacja MariaDB dla Nginx

17. Aby skonfigurować MariaDB, aby zwykli użytkownicy mogli uzyskać dostęp do bazy danych bez systemu sudo uprawnienia, przejdź do interfejsu wiersza poleceń MySQL z uprawnieniami roota i uruchom poniższe polecenia na interpreter MySQL:

$ sudo mysql mariadb> Użyj mysql; Mariadb> Aktualizacja zestawu użytkownika Plugin = "gdzie user =" root "; mariadb> uprawnienia spłukające; mariadb> exit 
Uprawnienia użytkownika Mariadb

Wreszcie zaloguj się do bazy danych Mariadb i uruchom dowolne polecenie bez uprawnień root, wykonując poniższe polecenie:

$ mysql -u root -p -e 'pokaż bazy danych' 
Sprawdź bazy danych MariaDB

To wszystko! Teraz masz LEMP Stack skonfigurowany Ubuntu 16.10 I Ubuntu 16.04 serwer, który pozwala wdrażać złożone dynamiczne aplikacje internetowe, które mogą wchodzić w interakcje z bazami danych.