Nastavite NGINX, PHP-FPM in MariaDB na Debian 8

Ta priročnik vam bo pokazal, kako pravilno namestiti in konfigurirati "alternativni" sklad LAMP v Debian 8 z uporabo NGINX, PHP Fast Process Manager in MariaDB.

NGINX

NGINX je "prvi povratni proxy, drugi spletni strežnik". Je priljubljena in rastoča alternativa Apacheju, ki v mnogih primerih ponuja večjo prilagodljivost in boljšo zmogljivost. V tej vadnici ga bomo uporabljali kot naš spletni strežnik.

Zaženite svojega najljubšega odjemalca SSH in se prijavite v strežnik. Za uporabnike sistema Windows je "PuTTY" brezplačen in lahek odjemalec SSH. Uporabniki Linuxa in Maca lahko uporabljajo terminal, ki je privzeto vključen v njihov operacijski sistem. Za to vadnico bomo domnevali, da ste v strežnik prijavljeni kot "root" uporabnik.

Za začetek se prepričajmo, da je vse posodobljeno. Vnesite naslednje, da preverite in nato namestite posodobitve.

apt-get update && apt-get upgrade

Svoje konfiguracijske datoteke bomo urejali v vim. Vim ni privzeto nameščen, zato ga namestimo!

apt-get install vim

Zdaj je čas za namestitev NGINX. Namestiti bomo želeli najnovejšo različico NGINX iz uradnega skladišča NGINX Debian.

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

Zdaj moramo nekoliko prilagoditi konfiguracijo NGINX. Pomaknite se do konfiguracijskega imenika.

cd /etc/nginx

Hitra lekcija vim

Za krmarjenje po besedilnem dokumentu uporabite puščične tipke. Če želite začeti urejati, pritisnite gumb "vstavi" na tipkovnici. Če vaša tipkovnica nima gumba za vstavljanje, pritisnite tipko "i". Proti dnu vim-a boste opazili, da zdaj piše "INSERT". Način vstavljanja vam bo omogočil brisanje prek vračalke ali vstavljanje novih znakov tako, da jih vnesete.

Odprimo nginx.confin pobrskajmo naokoli:

vi nginx.conf

Spremenimo privzetega uporabnika, preverimo število delovnih procesov in izklopimo dnevnik dostopa.

Direktivi "user" in "worker_processes" sta blizu vrha. Preizkusite spodnje vrednosti:

Note that you'll want to set "worker_processes" to the number of CPU cores available on your server. In this example, we have 1, which is the NGINX default.

user www-data;
worker_processes 1;

Prav tako bomo želeli onemogočiti dnevnik dostopa, da bi izboljšali zmogljivost V/I. S puščičnimi tipkami se pomikajte navzdol, dokler ne najdete "access_log". Spremenite ga na naslednje:

access_log off;

In nazadnje, nastavili bomo "client_max_body_size" tako, da bo ustrezal nekaterim kasnejšim spremembam PHP. Prihranimo težave in to storimo zdaj. Dodajte tik pod "access_log":

client_max_body_size 12m;

Ko končate z urejanjem, pritisnite "Esc" na tipkovnici. Vim ne bo več rekel "INSERT" proti dnu datoteke.

Če želite shraniti naše spremembe in zapreti vim, pritisnite naslednje zaporedje tipk:

SHIFT :(colon)
wq
Press "Enter"

Zgornji vim kung fu bo vaše spremembe zapisal na disk in zapustil vim ter vas spustil nazaj v bash lupino.

Zdaj moramo za naš primer narediti konfiguracijo, specifično za spletno mesto! Izbrisali bomo tudi druge primere konfiguracij. Poskusite naslednje:

cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf

Naredili bomo kratko in preprosto www.confna podlagi privzete konfiguracije NGINX, vendar z nekaj popravki. Pritisnite vstavi in ​​lahko kopirate/prilepite spodnji primer.

Don't forget to edit the "root" directive to point to the root directory of your website, and "server_name" to correspond to your domain.

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;
    }
}

Zdaj smo končali z razdelkom o konfiguraciji NGINX te vadnice. NGINX bomo ponovno zagnali čez nekaj časa, takoj po namestitvi PHP.

PHP-FPM

PHP-FPM je upravitelj hitrih procesov PHP. To je potrebno pri uporabi NGINX, ker za razliko od Apache NGINX ne izvaja PHP kot modula. To je bilo storjeno za zmanjšanje pomnilniškega odtisa NGINX. Se spomnite tistega dela o tem, da je NGINX predvsem povratni proxy? Tukaj to pride v poštev; Zahteve PHP, poslane v NGINX, se pošljejo PHP-FPM, da opravi težko delo.

Namestimo PHP-FPM.

apt-get install php5-fpm php5-mysqlnd

Note that depending on what your PHP scripts require, you may have to install other PHP modules not included by default. Popular ones are php5-gd and php5-mcrypt. You can install these with the following command.

apt-get install php5-module_name_here

Zdaj, ko imamo nameščen PHP-FPM, bomo želeli narediti nekaj hitrih sprememb za izboljšanje varnosti in funkcionalnosti.

cd /etc/php5/fpm
vi php.ini

Čas je za še eno hitro lekcijo vim! php.iniDatoteka je absolutno ogromen. Iskanje nekaj ključnih vrednosti bo trajalo ves dan. Torej, ker vemo, kaj iščemo, bomo poiskali. Vnesite naslednje:

/upload_max_filesize

To je privzeto nastavljeno na 2 megabajta. Če želite uporabnikom omogočiti nalaganje datotek v vaše PHP aplikacije, večje od 2 megabajtov, boste morali to spremeniti. 10M je za zdaj verjetno varna stava, vendar so sprejemljive tudi višje vrednosti. Ta nastavitev se razlikuje glede na konfiguracijo. Zaradi vadnice:

upload_max_filesize = 10M

Še ena očitna varnostna napaka. Pomaknite se še malo navzdol ali poiščite. "allow_url_fopen" moramo spremeniti na "Off". To bo preprečilo, da bi PHP zagnal datoteke PHP, ki gostujejo na daljavo, sicer znane kot RFI (oddaljena vključitev datotek). Številni strežniki so vdrti na ta način.

allow_url_fopen = Off

In ker smo spremenili "upload_max_filesize", moramo zdaj spremeniti "post_max_size". Ta vrednost bi morala biti malo večja od "upload_max_filesize", ker moramo upoštevati obremenitve, povezane z našimi zahtevami, ki jih obdela PHP.

Iščimo še enkrat z "/post_max_size".

post_max_size = 12M

Note that you'll have to go back to your NGINX configuration and edit "client_max_body_size" if you decide to go with larger values than these examples for your PHP file sizes.

Toliko zaenkrat. Prepričajte se, da niste v načinu za urejanje, tako da pritisnete "Esc". Shranite in zaprite vim.

SHIFT :(colon)
wq
Press 'Enter'

Nastavitev PHP-FPM je končana.

MariaDB

Tudi v svetu, ki se nenehno premika proti NoSQL ali MongoDB, se nekaterim še vedno lažje držimo MySQL. To še posebej velja za številne spletne aplikacije. Na srečo zdaj obstajajo številne "vstopne" zamenjave za Oracle MySQL. Debian 8 zdaj vključuje vedno priljubljeno MariaDB. MariaDB je fork Oracle MySQL, ki temelji na različici 5.5. MariaDB za vse namene imenuje to MariaDB 10. Šteje se za POPOLNO zamenjavo za Oracle MySQL. Pomislite na to kot na MySQL po srcu, brez blagovne znamke Oracle in nekaterih novih funkcij.

apt-get install mariadb-server

POMEMBNO: Vsekakor morate izbrati močno root geslo za MariaDB. Shranite ga nekam na varno. Med namestitvijo MariaDB ga boste morali vnesti dvakrat.

Malo popravimo konfiguracijo MariaDB. Poslušanje MariaDB bomo onemogočili prek omrežnega vmesnika. Namesto tega se bomo, kot prej pri PHP-FPM, držali samo vtičnice UNIX. Večina aplikacij PHP bi morala podpirati povezavo s strežnikom baze podatkov prek vtičnice UNIX namesto lokalnega vmesnika za povratno zanko.

cd /etc/mysql
vi my.cnf

Poiščite "bind-address = 127.0.0.1". Komentirajte to vrstico. Nad ali pod njo dodajte "skip-networking".

#bind-address = 127.0.0.1
skip-networking

Končali smo z MariaDB! Sčasoma boste morda želeli prilagoditi svojo konfiguracijo MariaDB glede na to, ali boste uporabljali predvsem pomnilniške motorje MyISAM ali InnoDB, pa tudi glede na število jeder CPU in RAM-a, ki so na voljo vašemu strežniku. Privzete nastavitve nas bodo medtem spravile v pogon.

Znova zaženimo vsako od storitev, za katere so bile v tej vadnici spremenjene konfiguracijske datoteke.

systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service

To je to – vsi smo končali. Na tej točki imate na spletu popolnoma delujoč strežnik LNMP (LEMP)!

Ta vodnik naj bi služil kot splošno pravilo za začetek z zgornjimi storitvami z minimalnimi nastavitvami. Za dodatne informacije preberite dokumentacijo za zgornje pakete. Čeprav bi ta primer namestitve moral dobro delovati "iz škatle", lahko prilagoditve in najverjetneje jih bo treba izvesti tako, da bolje ustrezajo vašim potrebam.

Priporočena področja za raziskovanje:

  • Uporaba in spreminjanje nadzora predpomnilnika NGINX.
  • PHP-FPM "statične", "dinamične" ali "ondemand" nastavitve upravitelja opravil.
  • Nastavitev zmogljivosti MariaDB, da kar najbolje izkoristite svoj strežnik baz podatkov.

Debian, MySQL in MariaDB, spletni strežniki

Pusti komentar

Vzpon strojev: aplikacije AI v resničnem svetu

Vzpon strojev: aplikacije AI v resničnem svetu

Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.

DDOS napadi: kratek pregled

DDOS napadi: kratek pregled

Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Ste se kdaj vprašali, kako hekerji zaslužijo denar?

Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Revolucionarni Googlovi izumi, ki vam bodo olajšali življenje.

Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Friday Essential: Kaj se je zgodilo z avtomobili, ki jih poganja umetna inteligenca?

Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Tehnološka singularnost: oddaljena prihodnost človeške civilizacije?

Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Funkcionalnosti slojev referenčne arhitekture velikih podatkov

Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.

Razvoj shranjevanja podatkov – Infografika

Razvoj shranjevanja podatkov – Infografika

Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

6 neverjetnih prednosti pametnih naprav za dom v našem življenju

V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Posodobitev dodatka macOS Catalina 10.15.4 povzroča več težav kot jih rešuje

Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več