Nastavte NGINX, PHP-FPM a MariaDB na Debiane 8

Táto príručka vám ukáže, ako správne nainštalovať a nakonfigurovať „alternatívny“ zásobník LAMP na Debian 8 pomocou NGINX, PHP Fast Process Manager a MariaDB.

NGINX

NGINX je „najskôr reverzný proxy, potom webový server“. Je to populárna a rastúca alternatíva k Apache, ktorá v mnohých prípadoch ponúka väčšiu flexibilitu a lepší výkon. V tomto návode ho budeme používať ako náš webový server.

Spustite svojho obľúbeného klienta SSH a prihláste sa na svoj server. Pre používateľov systému Windows je „PuTTY“ bezplatný a ľahký klient SSH. Používatelia systémov Linux a Mac môžu používať terminál, ktorý je štandardne súčasťou ich operačného systému. V tomto návode budeme predpokladať, že ste prihlásení na server ako „root“ používateľ.

Na začiatok sa len presvedčíme, že je všetko aktuálne. Ak chcete skontrolovať a potom nainštalovať aktualizácie, zadajte nasledujúce.

apt-get update && apt-get upgrade

Budeme upravovať naše konfiguračné súbory vo vime. Vim nie je štandardne nainštalovaný, tak si ho nainštalujte!

apt-get install vim

Teraz je čas nainštalovať NGINX. Budeme chcieť nainštalovať najnovšiu verziu NGINX z oficiálneho úložiska 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

Teraz musíme trochu vyladiť konfiguráciu NGINX. Prejdite do konfiguračného adresára.

cd /etc/nginx

Rýchla lekcia vim

Na navigáciu v textovom dokumente použite klávesy so šípkami. Ak chcete začať s úpravami, stlačte tlačidlo "vložiť" na klávesnici. Ak vaša klávesnica nemá tlačidlo vloženia, stlačte kláves „i“. Smerom k spodnej časti vim si všimnete, že teraz hovorí „INSERT“. Režim vkladania vám umožní odstrániť pomocou backspace alebo vložiť nové znaky ich zadaním.

Otvorme naše nginx.confa pozrime sa:

vi nginx.conf

Zmeňme predvoleného používateľa, skontrolujme počet pracovných procesov a vypnime denník prístupov.

Direktívy "user" a "worker_processes" sú v hornej časti. Vyskúšajte nižšie uvedené hodnoty:

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;

Chceme tiež zakázať prístupový denník, aby sme zlepšili výkon I/O. Pomocou klávesov so šípkami prejdite nadol, kým nenájdete „access_log“. Upravte ho na nasledovné:

access_log off;

A nakoniec nastavíme "client_max_body_size" tak, aby zodpovedal niektorým zmenám vykonaným v PHP neskôr. Ušetrime si problémy a urobme to teraz. Pridajte tesne pod "access_log":

client_max_body_size 12m;

Po dokončení úprav stlačte na klávesnici „Esc“. Vim už nepovie „VLOŽIŤ“ smerom na koniec súboru.

Ak chcete uložiť naše zmeny a ukončiť vim, stlačte nasledujúcu postupnosť kláves:

SHIFT :(colon)
wq
Press "Enter"

Vyššie uvedené vim kung fu zapíše vaše zmeny na disk a ukončí vim, čím vás vráti späť do bash shellu.

Teraz musíme urobiť konfiguráciu špecifickú pre náš príklad! Odstránime aj ostatné príklady konfigurácií. Vyskúšajte nasledovné:

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

Urobíme krátke a jednoduché, www.confvoľne založené na predvolenej konfigurácii NGINX, ale s niekoľkými vylepšeniami. Stlačte vložiť a môžete skopírovať/prilepiť nižšie uvedený príklad.

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

Teraz sme hotoví s konfiguračnou sekciou NGINX tohto návodu. Hneď po inštalácii PHP reštartujeme NGINX.

PHP-FPM

PHP-FPM je PHP Fast Process Manager. Je to potrebné pri používaní NGINX, pretože na rozdiel od Apache, NGINX nespúšťa PHP ako modul. Toto bolo urobené s cieľom znížiť pamäťovú stopu NGINX. Pamätáte si tú časť o tom, že NGINX je predovšetkým reverzný proxy? Tu to prichádza do úvahy; Požiadavky PHP odoslané do NGINX sa privádzajú do PHP-FPM, aby vykonali ťažkú ​​prácu.

Nainštalujeme 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

Teraz, keď máme nainštalovaný PHP-FPM, budeme chcieť urobiť niekoľko rýchlych úprav na zvýšenie bezpečnosti a funkčnosti.

cd /etc/php5/fpm
vi php.ini

Čas na ďalšiu rýchlu lekciu vim! php.iniSúbor je úplne obrovská. Hľadanie niekoľkých kľúčových hodnôt zaberie celý deň. Takže keďže vieme, čo hľadáme, budeme hľadať. Napíšte nasledovné:

/upload_max_filesize

V predvolenom nastavení je táto veľkosť nastavená na 2 megabajty. Ak chcete používateľom umožniť nahrávať do vašich aplikácií PHP súbory väčšie ako 2 megabajty, budete to musieť zmeniť. 10M je nateraz pravdepodobne bezpečná stávka, ale prijateľné sú aj vyššie hodnoty. Toto nastavenie sa bude líšiť v závislosti od konfigurácií. Kvôli tutoriálu:

upload_max_filesize = 10M

Ešte jedna do očí bijúca bezpečnostná chyba. Prejdite o niečo nižšie alebo hľadajte. Musíme prepnúť "allow_url_fopen" na "Off". To zabráni PHP spúšťať súbory PHP hostené NA DIAĽKU, inak známe ako RFI (Remote File Inclusion). Mnoho serverov je napadnutých týmto spôsobom.

allow_url_fopen = Off

A pretože sme zmenili „upload_max_filesize“, teraz musíme zmeniť „post_max_size“. Táto hodnota by mala byť o niečo väčšia ako "upload_max_filesize", pretože musíme brať do úvahy réžiu spojenú s našimi požiadavkami spracovanými PHP.

Poďme hľadať ešte raz pomocou "/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.

To je zatiaľ asi všetko. Uistite sa, že nie ste v režime úprav stlačením "Esc". Uložiť a ukončiť vim.

SHIFT :(colon)
wq
Press 'Enter'

Nastavenie PHP-FPM je dokončené.

MariaDB

Dokonca aj vo svete, ktorý sa neustále posúva smerom k NoSQL alebo MongoDB, je pre niektorých z nás stále jednoduchšie zostať pri MySQL. To platí najmä pre mnohé webové aplikácie. Našťastie v súčasnosti existuje množstvo „drop-in“ náhrad za Oracle MySQL. Debian 8 teraz obsahuje stále populárnu MariaDB. MariaDB je fork Oracle MySQL založený na verzii 5.5. MariaDB, pre všetky účely, to nazýva MariaDB 10. Považuje sa za ÚPLNÚ náhradu za Oracle MySQL. Myslite na to ako na MySQL v srdci, bez značky Oracle a niektorých nových funkcií.

apt-get install mariadb-server

DÔLEŽITÉ: Je absolútne nevyhnutné, aby ste si pre MariaDB vybrali silné heslo root. Uložte si to na bezpečné miesto. Počas inštalácie MariaDB ho budete musieť zadať dvakrát.

Trochu upravíme konfiguráciu MariaDB. Zakážeme počúvanie MariaDB cez sieťové rozhranie. Namiesto toho, ako v prípade PHP-FPM predtým, sa budeme držať iba soketu UNIX. Väčšina aplikácií PHP by mala podporovať pripojenie k databázovému serveru cez soket UNIX namiesto rozhrania lokálnej slučky.

cd /etc/mysql
vi my.cnf

Hľadajte "bind-address = 127.0.0.1". Komentujte tento riadok. Nad alebo pod to pridajte „skip-networking“.

#bind-address = 127.0.0.1
skip-networking

S MariaDB sme skončili! Nakoniec možno budete chcieť vyladiť svoju konfiguráciu MariaDB v závislosti od toho, či budete primárne používať úložné zariadenia MyISAM alebo InnoDB, ale aj od počtu jadier CPU a pamäte RAM, ktoré má váš server k dispozícii. Predvolené nastavenia nás medzičasom uvedú do prevádzky.

Reštartujme každú zo služieb, pre ktoré boli v tomto návode upravené konfiguračné súbory.

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

To je všetko - všetci sme skončili. V tomto bode máte plne funkčný LNMP (LEMP) server online!

Táto príručka mala slúžiť ako všeobecné pravidlo pre začiatok s vyššie uvedenými službami s minimálnym ladením. Ďalšie informácie nájdete v dokumentácii k vyššie uvedeným balíkom. Aj keď tento príklad nastavenia by mal fungovať dobre hneď po vybalení, úpravy môžu a s najväčšou pravdepodobnosťou budú musieť byť vykonané tak, aby lepšie vyhovovali vašim potrebám.

Odporúčané oblasti na výskum:

  • Využitie a úprava kontroly vyrovnávacej pamäte NGINX.
  • Nastavenia správcu úloh PHP-FPM „statické“, „dynamické“ alebo „na požiadanie“.
  • Ladenie výkonu MariaDB, aby ste z databázového servera vyťažili maximum.

Zanechať komentár

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac