Weboldal keresés

Az Nginx, MariaDB 10, PHP 7 (LEMP Stack) telepítése 16.10/16.04-ben


A LEMP verem egy mozaikszó, amely olyan csomagok csoportját jelenti (Linux OS, Nginx webszerver, MySQL\MariaDB adatbázis és PHP szerveroldali dinamikus programozási nyelv), amelyek dinamikus webalkalmazások telepítésére és telepítésére szolgálnak. weboldalak.

Ez az oktatóanyag végigvezeti Önt, hogyan telepíthet LEMP-vermet MariaDB 10, PHP 7 és HTTP 2.0 támogatásával Nginxhez az Ubuntu 16.10 és az Ubuntu 16.04 szerver/asztali kiadásokon.

Követelmények

  1. Az Ubuntu 16.04 Server Edition telepítése [az utasítások az Ubuntu 16.10 rendszeren is működnek]

1. lépés: Telepítse az Nginx webszervert

1. Az Nginx egy modern és erőforrás-hatékony webszerver, amelyet weboldalak megjelenítésére használnak a látogatók számára az interneten. Kezdjük az Nginx webszerver telepítésével az Ubuntu hivatalos lerakataiból az apt parancssor használatával.

sudo apt-get install nginx

2. Ezután adja ki a netstat és systemctl parancsokat annak ellenőrzésére, hogy az Nginx elindult-e, és kötődik-e a 80 porton.

netstat -tlpn

sudo systemctl status nginx.service

Miután megerősítette, hogy a szerver elindult, megnyithat egy böngészőt, és a HTTP-protokoll használatával navigálhat a szerver IP-címére vagy DNS-rekordjára, hogy meglátogassa az Nginx alapértelmezett weboldalát.

http://IP-Address

2. lépés: Engedélyezze az Nginx HTTP/2.0 protokollt

3. A HTTP/2.0 protokoll, amely alapértelmezés szerint be van építve az Nginx binárisok legújabb kiadásában az Ubuntu 16.04 rendszeren, csak az SSL-lel és az SSL-lel együtt működik. hatalmas sebességnövekedést ígér a webes SSL weboldalak betöltésében.

A protokoll engedélyezéséhez az Nginxben az Ubuntu 16.04 rendszeren, először keresse meg az Nginx elérhető webhelyeinek konfigurációs fájljait, és készítsen biztonsági másolatot az alapértelmezett konfigurációs fájlról az alábbi parancs kiadásával.

cd /etc/nginx/sites-available/
sudo mv default default.backup

4. Ezután egy szövegszerkesztővel hozzon létre egy új alapértelmezett oldalt az alábbi utasításokkal:

server {
        listen 443 ssl http2 default_server;
        listen [::]:443 ssl http2 default_server;

        root /var/www/html;

        index index.html index.htm index.php;

        server_name 192.168.1.13;

        location / {
                try_files $uri $uri/ =404;
        }

        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;

        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 Strict-Transport-Security "max-age=31536000;
        #includeSubDomains" always;


        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }

}

server {
       listen         80;
       listen    [::]:80;
       server_name    192.168.1.13;
       return         301 https://$server_name$request_uri;
}

A fenti konfigurációs kódrészlet lehetővé teszi a HTTP/2.0 használatát azáltal, hogy hozzáadja a http2 paramétert az összes SSL figyelési direktívához.

Ezenkívül a kiszolgálói direktívába zárt kivonat utolsó része az összes nem SSL-forgalom átirányítására szolgál az alapértelmezett SSL/TLS gazdagépre. Ezenkívül cserélje ki a server_name direktívát, hogy megfeleljen saját IP-címének vagy DNS-rekordjának (lehetőleg FQDN).

5. Miután befejezte az Nginx alapértelmezett konfigurációs fájljának szerkesztését a fenti beállításokkal, hozza létre és listázza ki az SSL-tanúsítványfájlt és -kulcsot az alábbi parancsok végrehajtásával.

Töltse ki a tanúsítványt saját egyéni beállításaival, és ügyeljen a Közös név beállításra, hogy megfeleljen a DNS FQDN rekordjának vagy a szerver IP-címének, amelyet a weboldal eléréséhez fog használni.

sudo mkdir /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
ls /etc/nginx/ssl/

6. Ezenkívül hozzon létre egy erős DH titkosítót, amely a fenti konfigurációs fájlban megváltozott az ssl_dhparam utasítássorban, az alábbi parancs kiadásával:

sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

7. Miután létrehozta a Diffie-Hellman kulcsot, ellenőrizze, hogy az Nginx konfigurációs fájl helyesen van-e megírva, és hogy az Nginx webszerver tudja-e alkalmazni, majd indítsa újra a démont, hogy tükrözze a módosításokat az alábbi parancsok futtatásával.

sudo nginx -t
sudo systemctl restart nginx.service

8. Annak teszteléséhez, hogy az Nginx használ-e HTTP/2.0 protokollt, adja ki az alábbi parancsot. A h2 hirdetett protokoll jelenléte megerősíti, hogy az Nginx sikeresen konfigurálva lett a HTTP/2.0 protokoll használatára. Minden modern, naprakész böngészőnek alapértelmezés szerint támogatnia kell ezt a protokollt.

openssl s_client -connect localhost:443 -nextprotoneg ''

3. lépés: Telepítse a PHP 7 Interpretert

Az Nginx használható a PHP dinamikus feldolgozó nyelvi értelmezőjével dinamikus webtartalom létrehozására a FastCGI folyamatkezelő segítségével, amelyet a php-fpm bináris csomag telepítésével szereztek meg az Ubuntu hivatalos tárhelyeiből.

9. A PHP7.0 és a PHP-nek az Nginx webszerverrel való kommunikációját lehetővé tevő további csomagok megragadásához adja ki az alábbi parancsot a szerverkonzolon:

sudo apt install php7.0 php7.0-fpm 

10. Miután a PHP7.0 értelmezőt sikeresen telepítette a gépére, indítsa el és ellenőrizze a php7.0-fpm démont az alábbi kibocsátással. parancs:

sudo systemctl start php7.0-fpm
sudo systemctl status php7.0-fpm

11. Az Nginx jelenlegi konfigurációs fájlja már be van állítva a PHP FastCGI folyamatkezelő használatára a dinamikus tartalom kiszolgálásához.

Az alábbi kivonatban bemutatjuk azt a szerverblokkot, amely lehetővé teszi az Nginx számára a PHP interpreter használatát, így nincs szükség az alapértelmezett Nginx konfigurációs fájl további módosítására.

location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

Az alábbiakban egy képernyőkép látható arról, hogy milyen utasításokat kell törölnie és módosítania kell egy eredeti Nginx alapértelmezett konfigurációs fájl esetében.

12. Az Nginx webszerver kapcsolatának teszteléséhez a PHP FastCGI folyamatkezelővel hozzon létre egy PHP info.php tesztkonfigurációs fájlt az alábbi parancs kiadásával, és ellenőrizze a beállításokat a konfigurációs fájl meglátogatásával az alábbi cím használatával: http://IP_or domain/info.php.

sudo su -c 'echo "<?php phpinfo(); ?>" |tee /var/www/html/info.php'

Ellenőrizze azt is, hogy a szerver hirdeti-e a HTTP/2.0 protokollt. Ehhez keresse meg a $_SERVER['SERVER_PROTOCOL'] sort a PHP Variables blokkon, ahogy az alábbi képernyőképen látható.

13. További PHP7.0 modulok telepítéséhez használja az apt search php7.0 parancsot a PHP modul megkereséséhez és telepítéséhez.

Próbálja meg telepíteni a következő PHP modulokat is, amelyek jól jöhetnek, ha WordPress vagy más CMS telepítését tervezi.

sudo apt install php7.0-mcrypt php7.0-mbstring

14. A PHP extra moduljainak regisztrálásához indítsa újra a PHP-FPM démont az alábbi parancs kiadásával.

sudo systemctl restart php7.0-fpm.service

4. lépés: Telepítse a MariaDB adatbázist

15. Végül a LEMP veremünk befejezéséhez szükségünk van a MariaDB adatbázis-összetevőre a webhelyadatok tárolására és kezelésére.

Telepítse a MariaDB adatbázis-kezelő rendszert az alábbi parancs futtatásával, és indítsa újra a PHP-FPM szolgáltatást, hogy a MySQL modult használja az adatbázis eléréséhez.

sudo apt install mariadb-server mariadb-client php7.0-mysql
sudo systemctl restart php7.0-fpm.service

16. A MariaDB telepítésének biztonsága érdekében futtassa az Ubuntu tárolókból származó bináris csomag által biztosított biztonsági szkriptet, amely megkéri a root jelszó beállítására, az anonim felhasználók eltávolítására, a root bejelentkezés távoli letiltására és a tesztadatbázis eltávolítására.

Futtassa a szkriptet az alábbi parancs kiadásával, és válaszoljon minden kérdésre igen-el. Használja az alábbi képernyőképet útmutatóként.

sudo mysql_secure_installation

17. Ha úgy szeretné konfigurálni a MariaDB-t, hogy a közönséges felhasználók rendszer- sudo jogosultságok nélkül hozzáférhessenek az adatbázishoz, nyissa meg a MySQL parancssori felületet root jogosultságokkal, és futtassa az alábbi parancsokat a MySQL interpreteren:

sudo mysql 
MariaDB> use mysql;
MariaDB> update user set plugin=’‘ where User=’root’;
MariaDB> flush privileges;
MariaDB> exit

Végül jelentkezzen be a MariaDB adatbázisba, és futtasson egy tetszőleges parancsot root jogosultságok nélkül az alábbi parancs végrehajtásával:

mysql -u root -p -e 'show databases'

Ez minden! Mostantól egy LEMP verem van konfigurálva az Ubuntu 16.10 és az Ubuntu 16.04 szerveren, amely lehetővé teszi összetett dinamikus webalkalmazások telepítését, amelyek képesek együttműködni az adatbázisokkal.