Kif Tinstalla Nginx, MariaDB 10, PHP 7 (LEMP Stack) f'16.10/16.04
Il-munzell LEMP huwa akronimu li jirrappreżenta huwa grupp ta 'pakketti (Linux OS, Nginx web server, MySQL\MariaDB database u PHP server-side programmar dinamiku lingwa) li huma wżati biex jintużaw applikazzjonijiet web dinamiċi u paġni web.
Dan it-tutorja jiggwidak dwar kif tinstalla munzell LEMP b'Sostenn MariaDB 10, PHP 7 u HTTP 2.0 għal Nginx fuq Ubuntu 16.10 u Ubuntu 16.04 server/edizzjonijiet desktop.
- Installazzjoni ta' Ubuntu 16.04 Server Edition [l-istruzzjonijiet jaħdmu wkoll fuq Ubuntu 16.10]
Pass 1: Installa l-Nginx Web Server
1. Nginx huwa server tal-web modern u effiċjenti fir-riżorsi użat biex juri paġni tal-web lill-viżitaturi fuq l-internet. Nibdew billi ninstallaw is-server tal-web Nginx minn repożitorji uffiċjali ta 'Ubuntu billi nużaw il-linja ta' kmand apt.
$ sudo apt-get install nginx
2. Sussegwentement, ħarġet il-kmandi systemctl sabiex tikkonferma jekk Nginx jinbedax u jorbotx fuq il-port 80.
$ netstat -tlpn
$ sudo systemctl status nginx.service
Ladarba jkollok il-konferma li s-server jinbeda tista 'tiftaħ browser u tinnaviga lejn l-indirizz IP tas-server tiegħek jew ir-rekord DNS billi tuża protokoll HTTP sabiex iżżur il-paġna web default ta' Nginx.
http://IP-Address
Pass 2: Ippermetti Nginx HTTP/2.0 Protokoll
3. Il-protokoll HTTP/2.0 li huwa mibni b'mod awtomatiku fl-aħħar rilaxx tal-binarji Nginx fuq Ubuntu 16.04 jaħdem biss flimkien ma 'SSL u jwiegħed titjib kbir fil-veloċità fit-tagħbija tal-paġni tal-web SSL tal-web.
Biex tippermetti l-protokoll f'Nginx fuq Ubuntu 16.04, l-ewwel innaviga lejn il-fajls ta 'konfigurazzjoni tas-siti disponibbli ta' Nginx u tagħmel backup tal-fajl ta 'konfigurazzjoni default billi toħroġ il-kmand ta' hawn taħt.
$ cd /etc/nginx/sites-available/ $ sudo mv default default.backup
4. Imbagħad, billi tuża editur tat-test, oħloq paġna awtomatika ġdida bl-istruzzjonijiet hawn taħt:
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; }
Is-snippet tal-konfigurazzjoni ta' hawn fuq jippermetti l-użu ta' HTTP/2.0 billi żżid il-parametru http2
mad-direttivi kollha ta' smigħ SSL.
Ukoll, l-aħħar parti tas-silta mehmuża fid-direttiva tas-server tintuża biex tindirizza mill-ġdid it-traffiku kollu mhux SSL għall-host default SSL/TLS. Ukoll, ibdel id-direttiva server_name
biex taqbel mal-indirizz tal-IP jew ir-rekord DNS tiegħek (FQDN preferibbilment).
5. Ladarba lestejt editja l-fajl tal-konfigurazzjoni default Nginx bis-settings ta 'hawn fuq, iġġenera u elenka l-fajl u ċ-ċavetta taċ-ċertifikat SSL billi tesegwixxi l-kmandi ta' hawn taħt.
Imla ċ-ċertifikat bl-issettjar tad-dwana tiegħek stess u oqgħod attent għall-issettjar tal-Isem Komuni biex taqbel ir-rekord DNS FQDN tiegħek jew l-indirizz IP tas-server tiegħek li se jintuża biex jaċċessa l-paġna web.
$ 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. Ukoll, oħloq ċifra DH b'saħħitha, li nbidlet fuq il-fajl ta 'konfigurazzjoni ta' hawn fuq fuq il-linja ta 'struzzjoni ssl_dhparam
, billi toħroġ il-kmand hawn taħt:
$ sudo openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048
7. Ladarba ċ-ċavetta Diffie-Hellman tkun inħolqot, ivverifika jekk il-fajl tal-konfigurazzjoni Nginx huwiex miktub b'mod korrett u jistax jiġi applikat mis-server tal-web Nginx u jerġa 'jibda d-daemon biex jirrifletti l-bidliet billi tħaddem il-kmandi ta' hawn taħt.
$ sudo nginx -t $ sudo systemctl restart nginx.service
8. Sabiex jiġi ttestjat jekk Nginx jużax il-protokoll HTTP/2.0 ħruġ il-kmand hawn taħt. Il-preżenza tal-protokoll reklamat h2
tikkonferma li Nginx ġie kkonfigurat b'suċċess biex juża protokoll HTTP/2.0. Il-browsers moderni kollha aġġornati għandhom jappoġġjaw dan il-protokoll b'mod awtomatiku.
$ openssl s_client -connect localhost:443 -nextprotoneg ''
Pass 3: Installa PHP 7 Interprete
Nginx jista 'jintuża ma' interpretu tal-lingwa tal-ipproċessar dinamiku PHP biex jiġġenera kontenut tal-web dinamiku bl-għajnuna tal-maniġer tal-proċess FastCGI miksub bl-installazzjoni tal-pakkett binarju php-fpm minn repożitorji uffiċjali ta 'Ubuntu.
9. Sabiex taqbad PHP7.0 u l-pakketti addizzjonali li jippermettu lill-PHP jikkomunika mas-server tal-web Nginx ħarġet il-kmand hawn taħt fuq il-console tas-server tiegħek:
$ sudo apt install php7.0 php7.0-fpm
10. Ladarba l-interpretu PHP7.0 ikun ġie installat b'suċċess fuq il-magna tiegħek, ibda u iċċekkja php7.0-fpm daemon billi toħroġ il-kmand hawn taħt:
$ sudo systemctl start php7.0-fpm $ sudo systemctl status php7.0-fpm
11. Il-fajl tal-konfigurazzjoni attwali ta 'Nginx huwa diġà kkonfigurat biex juża l-maniġer tal-proċess PHP FastCGI sabiex il-kontenut dinamiku tas-server.
Il-blokk tas-server li jippermetti lil Nginx juża l-interpretu PHP huwa ppreżentat fis-silta ta’ hawn taħt, għalhekk m’hemmx bżonn ta’ aktar modifiki tal-fajl tal-konfigurazzjoni Nginx default.
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; }
Hawn taħt hawn screenshot ta 'liema istruzzjonijiet għandek bżonn biex tneħħi l-kumment u timmodifika l-każ ta' fajl ta 'konfigurazzjoni default oriġinali ta' Nginx.
12. Biex tittestja r-relazzjoni tas-server tal-web Nginx mal-maniġer tal-proċess PHP FastCGI oħloq fajl ta' konfigurazzjoni tat-test PHP info.php
billi toħroġ il-kmand ta' hawn taħt u tivverifika s-settings billi żżur dan il-fajl ta' konfigurazzjoni billi tuża l-indirizz hawn taħt: http://IP_or domain/info.php
.
$ sudo su -c 'echo "<?php phpinfo(); ?>" |tee /var/www/html/info.php'
Iċċekkja wkoll jekk il-protokoll HTTP/2.0 huwiex reklamat mis-server billi jsib il-linja $_SERVER[‘SERVER_PROTOCOL’]
fuq il-blokk ta’ Varjabbli PHP kif muri fuq il-screenshot ta’ hawn taħt.
13. Sabiex tinstalla moduli PHP7.0 żejda uża l-kmand apt search php7.0
biex issib modulu PHP u tinstallah.
Ukoll, ipprova tinstalla l-moduli PHP li ġejjin li jistgħu jkunu utli f'każ li tkun qed tippjana li tinstalla WordPress jew CMS oħra.
$ sudo apt install php7.0-mcrypt php7.0-mbstring
14. Biex tirreġistra l-moduli żejda PHP sempliċement ibda mill-ġdid PHP-FPM daemon billi toħroġ il-kmand hawn taħt.
$ sudo systemctl restart php7.0-fpm.service
Pass 4: Installa MariaDB Database
15. Fl-aħħarnett, sabiex tlesti l-munzell LEMP tagħna neħtieġu l-komponent tad-database MariaDB biex jaħżen u jimmaniġġja d-dejta tal-websajt.
Installa s-sistema ta 'ġestjoni tad-database MariaDB billi tħaddem il-kmand ta' hawn taħt u terġa 'tibda s-servizz PHP-FPM sabiex tuża l-modulu MySQL biex taċċessa d-database.
$ sudo apt install mariadb-server mariadb-client php7.0-mysql $ sudo systemctl restart php7.0-fpm.service
16. Biex tiżgura l-installazzjoni ta 'MariaDB, mexxi l-iskrittura tas-sigurtà pprovduta mill-pakkett binarju mir-repożitorji ta' Ubuntu li jistaqsik issettja password ta 'l-għeruq, neħħi utenti anonimi, tiddiżattiva l-login ta' l-għeruq mill-bogħod u neħħi d-database tat-test.
Mexxi l-iskript billi toħroġ il-kmand hawn taħt u wieġeb il-mistoqsijiet kollha b'iva
. Uża l-screenshot hawn taħt bħala gwida.
$ sudo mysql_secure_installation
17. Biex tikkonfigura MariaDB sabiex l-utenti ordinarji jkunu jistgħu jaċċessaw id-database mingħajr privileġġi sudo tas-sistema, mur fuq l-interface tal-linja tal-kmand MySQL bi privileġġi tal-għeruq u mexxi l-kmandi hawn taħt fuq l-interpretu MySQL:
$ sudo mysql MariaDB> use mysql; MariaDB> update user set plugin=’‘ where User=’root’; MariaDB> flush privileges; MariaDB> exit
Fl-aħħarnett, idħol fid-database MariaDB u mexxi kmand arbitrarju mingħajr privileġġi ta 'l-għeruq billi tesegwixxi l-kmand ta' hawn taħt:
$ mysql -u root -p -e 'show databases'
Dak kollu! Issa għandek munzell LEMP ikkonfigurat fuq Ubuntu 16.10 u Ubuntu 16.04 server li jippermettilek li tuża applikazzjonijiet tal-web dinamiċi kumplessi li jistgħu jinteraġixxu ma 'databases.