Acest ghid vă va arăta cum să instalați și configurați corect o stivă LAMP „alternativă” pe Debian 8 folosind NGINX, PHP Fast Process Manager și MariaDB.
Nginx
NGINX este un "proxy invers în primul rând, al doilea server web". Este o alternativă populară și în creștere pentru Apache, oferind o mai mare flexibilitate și performanțe mai bune în multe cazuri. În acest tutorial, îl vom folosi ca server web.
Aprindeți-vă clientul SSH preferat și conectați-vă la server. Pentru utilizatorii Windows, „PuTTY” este un client SSH gratuit și ușor. Utilizatorii Linux și Mac pot utiliza terminalul inclus în mod implicit cu sistemul lor de operare. Pentru acest tutorial, vom presupune că sunteți conectat la serverul dvs. ca utilizator „root”.
Pentru început, să ne asigurăm că totul este la zi. Introduceți următoarele pentru a verifica și apoi instalați actualizări.
apt-get update && apt-get upgrade
Vom edita fișierele noastre de configurare în vim. Vim nu este instalat implicit, așa că haideți să îl instalăm!
apt-get install vim
Acum este timpul să instalați NGINX. Vom dori să instalăm cea mai recentă versiune a NGINX din depozitul oficial Debian NGINX.
wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
apt-get update && apt-get install nginx
Acum trebuie să modificăm unele configurații NGINX. Navigați la directorul de configurare.
cd /etc/nginx
O lecție vim rapidă
Utilizați tastele săgeată pentru a naviga în documentul text. Pentru a începe modificările, apăsați butonul „introduce” de pe tastatură. Dacă tastatura dvs. nu are buton de introducere, apoi apăsați tasta "i". Spre partea de jos a vim veți observa că acum spune „INSERT”. Modul de inserare vă va permite să ștergeți prin spate sau să introduceți caractere noi tastându-le.
Haideți să ne deschidem și să ne aruncăm în nginx.confjurul valorii de:
vi nginx.conf
Să schimbăm utilizatorul implicit, să verificăm numărul proceselor de lucrători și să oprim jurnalul de acces.
Directivele „utilizator” și „lucrător_procese” sunt aproape de vârf. Încercați valorile de mai jos:
Rețineți că veți dori să setați „working_proceses” la numărul de nuclee de procesor disponibile pe serverul dvs. În acest exemplu, avem 1, care este implicit NGINX.
user www-data;
worker_processes 1;
De asemenea, vom dori să dezactivăm jurnalul de acces, în scopul îmbunătățirii performanței I / O. Navigați în jos cu tastele săgeată până găsiți „access_log”. Modificați-l la următoarele:
access_log off;
Și, în sfârșit, vom seta „client_max_body_size” să corespundă cu unele modificări aduse PHP ulterior. Să salvăm necazul și să o facem acum. Adăugați doar mai jos „access_log”:
client_max_body_size 12m;
După ce ați terminat de editat, apăsați „Esc” pe tastatură. Vim nu va mai spune „INSERT” către partea de jos a fișierului.
Pentru a salva modificările și a renunța la vim, apăsați următoarea secvență de taste:
SHIFT :(colon)
wq
Press "Enter"
Vim kung fu de mai sus va scrie modificările pe disc și va ieși din vim, aruncându-vă înapoi în shell-ul bash.
Acum, trebuie să realizăm o configurație specifică site-ului pentru exemplul nostru! Vom șterge și celelalte configurații de exemplu. Încercați următoarele:
cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf
Vom face o www.confbază simplă scurtă și simplă pe configurația implicită NGINX, dar cu câteva modificări. Apăsați insert și puteți copia / insera exemplul de mai jos.
Nu uitați să editați directiva „rădăcină” pentru a indica directorul rădăcină al site-ului dvs. web și „nume_ server” pentru a corespunde domeniului dvs.
server {
    listen 80;
    root /path/to/your/website;
    index index.php index.html index.htm;
    server_name mydomainname.com www.mydomainname.com;
    location / {
            try_files $uri $uri/ /index.php;
    }
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}
Acum am terminat cu secțiunea de configurare NGINX a acestui tutorial. Vom reporni NGINX puțin, imediat după instalarea PHP.
PHP-FPM
PHP-FPM este PHP Fast Process Manager. Este necesar atunci când utilizați NGINX, deoarece spre deosebire de Apache, NGINX nu rulează PHP ca modul. Acest lucru a fost făcut pentru a reduce amprenta de memorie a NGINX. Vă amintiți că acea parte despre NGINX este un proxy invers în primul rând? Iată unde intră în joc acest lucru; Cererile PHP trimise către NGINX sunt transmise la PHP-FPM pentru a face ridicarea grea.
Să instalăm PHP-FPM.
apt-get install php5-fpm php5-mysqlnd
Rețineți că, în funcție de ceea ce necesită scripturile dvs. PHP, poate fi necesar să instalați alte module PHP care nu sunt incluse în mod implicit. Cele populare sunt php5-gdși php5-mcrypt. Puteți instala acestea cu următoarea comandă.
apt-get install php5-module_name_here
După ce am instalat PHP-FPM, vom dori să facem câteva modificări rapide pentru a îmbunătăți securitatea și funcționalitatea.
cd /etc/php5/fpm
vi php.ini
Timp pentru o altă lecție vim rapidă! php.iniFișierul este absolut imens. În căutarea câtorva valori cheie vor dura toată ziua. Deci, deoarece știm ce căutăm, vom căuta. Introduceți următoarele:
/upload_max_filesize
Aceasta, în mod implicit, este setată la 2 megabyți. Dacă doriți să permiteți utilizatorilor să încarce fișiere în aplicațiile dvs. PHP mai mari de 2 megabyte, va trebui să schimbați acest lucru. 10M este probabil un pariu sigur deocamdată, dar sunt și valori mai mari. Această setare va varia în funcție de configurații. Pentru tutorial:
upload_max_filesize = 10M
Încă un defect de securitate evident. Derulați în jos un pic mai departe sau căutați. Trebuie să transformăm „allow_url_fopen” în „Off”. Acest lucru va împiedica PHP să ruleze fișiere PHP găzduite de la distanță, altfel cunoscut sub numele de RFI (Remote File Inclusion). Multe servere sunt hacked în acest fel.
allow_url_fopen = Off
Și pentru c�� am schimbat „upload_max_filesize”, acum trebuie să schimbăm „post_max_size”. Această valoare ar trebui să fie puțin mai mare decât „upload_max_filesize”, deoarece trebuie să luăm în considerare cheltuielile generale asociate cu solicitările noastre procesate de PHP.
Să căutăm încă o dată cu „/ post_max_size”.
post_max_size = 12M
Rețineți că va trebui să vă întoarceți la configurația NGINX și să editați „client_max_body_size” dacă decideți să mergeți cu valori mai mari decât aceste exemple pentru dimensiunile dvs. de fișier PHP.
Cam asta e deocamdată. Asigurați-vă că nu sunteți în modul de editare apăsând „Esc”. Salvați și ieșiți din vim.
SHIFT :(colon)
wq
Press 'Enter'
Configurarea PHP-FPM este completă.
MariaDB
Chiar și într-o lume care se îndreaptă continuu către NoSQL sau MongoDB, unii dintre noi încă consideră că este mai ușor să rămânem doar cu MySQL. Acest lucru este valabil mai ales pentru multe aplicații web. Din fericire, există acum o serie de înlocuitori „drop-in” pentru Oracle MySQL. Debian 8 include acum vechea populară MariaDB. MariaDB este o furculiță a Oracle MySQL bazată pe versiunea 5.5. MariaDB, pentru toate intențiile și scopurile, apelează acest MariaDB 10. Este considerat un înlocuitor complet pentru Oracle MySQL. Gândiți-vă la el ca la MySQL la bază, fără brandul Oracle și câteva funcții noi.
apt-get install mariadb-server
IMPORTANT: Trebuie să alegeți o parolă rădăcină puternică pentru MariaDB. Salvați-l undeva sigur. Va trebui să o introduceți de două ori în timpul instalării MariaDB.
Să modificăm ușor configurația MariaDB. Vom dezactiva ascultarea MariaDB prin interfața de rețea. În schimb, la fel ca în cazul PHP-FPM mai devreme, vom rămâne doar la o priză UNIX. Majoritatea aplicațiilor PHP ar trebui să sprijine conectarea la serverul de baze de date printr-o priză UNIX în loc de interfața buclă locală.
cd /etc/mysql
vi my.cnf
Căutați „adresa de legare = 127.0.0.1”. Comentați această linie. Deasupra sau dedesubt, adăugați „săriți în rețea”.
#bind-address = 127.0.0.1
skip-networking
Am terminat cu MariaDB! În cele din urmă, poate doriți să reglați configurația MariaDB în funcție de dacă veți utiliza în principal motoarele de stocare MyISAM sau InnoDB, dar și pentru numărul de nuclee CPU și RAM disponibile pentru serverul dvs. Valorile implicite ne vor pune în funcțiune în timp.
Să repornim fiecare dintre serviciile pentru care fișierele de configurare au fost modificate în acest tutorial.
systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service
Asta e - am terminat cu toții. În acest moment, aveți un server LNMP (LEMP) complet funcțional online!
Acest ghid trebuia să servească drept regulă generală pentru a începe cu serviciile de mai sus, cu modificări minime. Pentru informații suplimentare, citiți documentația pentru pachetele de mai sus. În timp ce acest exemplu de configurare ar trebui să funcționeze bine „din cutie”, se pot face ajustări și cel mai probabil va trebui făcută pentru a se potrivi mai bine nevoilor tale.
Zonele recomandate de cercetare:
	- Utilizarea și modificarea controlului de cache al NGINX.
- Setări "statice", "dinamice" sau "ondemand" PHP-FPM, setări ale managerului de sarcini.
- Reglarea performanței MariaDB pentru a beneficia la maxim de serverul dvs. de baze de date.