Nastavte NGINX, PHP-FPM a MariaDB na Debianu 8

Tato příručka vám ukáže, jak správně nainstalovat a nakonfigurovat "alternativní" zásobník LAMP na Debian 8 pomocí NGINX, PHP Fast Process Manager a MariaDB.

NGINX

NGINX je „nejprve reverzní proxy, potom webový server“. Je to oblíbená a rostoucí alternativa k Apache, která v mnoha případech nabízí větší flexibilitu a lepší výkon. V tomto tutoriálu jej budeme používat jako náš webový server.

Spusťte svého oblíbeného klienta SSH a přihlaste se na svůj server. Pro uživatele Windows je „PuTTY“ bezplatný a lehký klient SSH. Uživatelé systémů Linux a Mac mohou používat terminál, který je standardně součástí jejich operačního systému. V tomto tutoriálu budeme předpokládat, že jste přihlášeni ke svému serveru jako uživatel „root“.

Pro začátek se jen ujistěte, že je vše aktuální. Chcete-li zkontrolovat a nainstalovat aktualizace, zadejte následující.

apt-get update && apt-get upgrade

Budeme upravovat naše konfigurační soubory ve vimu. Vim není standardně nainstalován, tak si ho nainstalujme!

apt-get install vim

Nyní je čas nainstalovat NGINX. Budeme chtít nainstalovat nejnovější verzi NGINX z oficiálního úložiště 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

Nyní musíme trochu vyladit konfiguraci NGINX. Přejděte do konfiguračního adresáře.

cd /etc/nginx

Rychlá lekce vim

Pomocí kláves se šipkami se můžete pohybovat v textovém dokumentu. Chcete-li začít s úpravami, stiskněte na klávesnici tlačítko „vložit“. Pokud vaše klávesnice nemá tlačítko pro vložení, stiskněte klávesu „i“. Směrem ke spodní části vim si všimnete, že nyní říká „INSERT“. Režim vkládání vám umožní odstranit pomocí backspace nebo vložit nové znaky jejich zadáním.

Otevřeme naše nginx.confa prohlédneme si:

vi nginx.conf

Změňme výchozího uživatele, zkontrolujme počet pracovních procesů a vypněte protokol přístupu.

Direktivy "user" a "worker_processes" jsou nahoře. Vyzkoušejte níže 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 také zakázat přístupový protokol, abychom zlepšili výkon I/O. Pomocí kláves se šipkami přejděte dolů, dokud nenajdete „access_log“. Upravte jej na následující:

access_log off;

A nakonec nastavíme "client_max_body_size" tak, aby odpovídal některým změnám provedeným v PHP později. Ušetřeme si problémy a udělejme to hned. Přidejte těsně pod „access_log“:

client_max_body_size 12m;

Po dokončení úprav stiskněte na klávesnici „Esc“. Vim již nebude říkat „INSERT“ směrem ke konci souboru.

Chcete-li uložit naše změny a ukončit vim, stiskněte následující sekvenci kláves:

SHIFT :(colon)
wq
Press "Enter"

Výše uvedené vim kung fu zapíše vaše změny na disk a ukončí vim, čímž vás vrátí zpět do bash shellu.

Nyní musíme pro náš příklad vytvořit konfiguraci specifickou pro web! Smažeme také ostatní ukázkové konfigurace. Zkuste následující:

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

Uděláme krátký a jednoduchý, www.confvolně založený na výchozí konfiguraci NGINX, ale s několika úpravami. Stiskněte vložit a můžete zkopírovat/vložit níže uvedený pří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;
    }
}

Nyní jsme hotovi s sekcí konfigurace NGINX tohoto tutoriálu. Za chvíli restartujeme NGINX, hned po instalaci PHP.

PHP-FPM

PHP-FPM je PHP Fast Process Manager. Je to vyžadováno při používání NGINX, protože na rozdíl od Apache, NGINX nespouští PHP jako modul. To bylo provedeno za účelem snížení paměťové stopy NGINX. Pamatujete si tu část o tom, že NGINX je především reverzní proxy? Tady to vstupuje do hry; Požadavky PHP odeslané do NGINX jsou přiváděny do PHP-FPM, aby to udělalo těžké.

Pojďme nainstalovat 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

Nyní, když máme nainstalovaný PHP-FPM, budeme chtít provést několik rychlých úprav pro zvýšení zabezpečení a funkčnosti.

cd /etc/php5/fpm
vi php.ini

Čas na další rychlou lekci vim! php.iniSoubor je naprosto obrovská. Hledání pár klíčových hodnot zabere celý den. Takže protože víme, co hledáme, budeme hledat. Zadejte následující:

/upload_max_filesize

Ve výchozím nastavení je tato velikost nastavena na 2 megabajty. Pokud chcete uživatelům umožnit nahrávat do vašich aplikací PHP soubory větší než 2 megabajty, budete muset toto změnit. 10M je zatím pravděpodobně sázka na jistotu, ale akceptovatelné jsou i vyšší hodnoty. Toto nastavení se bude lišit v závislosti na konfiguraci. Pro poučení:

upload_max_filesize = 10M

Ještě jedna do očí bijící bezpečnostní chyba. Přejděte o něco níže nebo vyhledejte. Musíme přepnout "allow_url_fopen" na "Off". To zabrání PHP spouštět soubory PHP hostované VZDÁLENĚ, jinak známé jako RFI (Remote File Inclusion). Mnoho serverů je tímto způsobem hackováno.

allow_url_fopen = Off

A protože jsme změnili "upload_max_filesize", musíme nyní změnit "post_max_size". Tato hodnota by měla být o něco větší než "upload_max_filesize", protože musíme vzít v úvahu režii spojenou s našimi požadavky zpracovávanými PHP.

Pojďme hledat ještě jednou pomocí "/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 zatím asi vše. Ujistěte se, že nejste v režimu úprav stisknutím "Esc". Uložte a ukončete vim.

SHIFT :(colon)
wq
Press 'Enter'

Nastavení PHP-FPM je dokončeno.

MariaDB

I ve světě, který se neustále posouvá směrem k NoSQL nebo MongoDB, je pro některé z nás stále jednodušší zůstat u MySQL. To platí zejména pro mnoho webových aplikací. Naštěstí nyní existuje řada „drop-in“ náhrad za Oracle MySQL. Debian 8 nyní obsahuje stále populární MariaDB. MariaDB je fork Oracle MySQL založený na verzi 5.5. MariaDB, pro všechny záměry a účely, tomu říká MariaDB 10. Je považována za PLNOU náhradu za Oracle MySQL. Představte si to jako MySQL v srdci, bez značky Oracle a některé nové funkce.

apt-get install mariadb-server

DŮLEŽITÉ: Rozhodně musíte vybrat silné root heslo pro MariaDB. Uložte to někde v bezpečí. Během instalace MariaDB jej budete muset zadat dvakrát.

Pojďme mírně upravit konfiguraci MariaDB. Zakážeme naslouchání MariaDB přes síťové rozhraní. Místo toho, stejně jako dříve u PHP-FPM, zůstaneme pouze u UNIXového socketu. Většina aplikací PHP by měla podporovat připojení k databázovému serveru prostřednictvím soketu UNIX namísto rozhraní místní smyčky.

cd /etc/mysql
vi my.cnf

Hledejte „bind-address = 127.0.0.1“. Komentujte ten řádek. Nad nebo pod něj přidejte „skip-networking“.

#bind-address = 127.0.0.1
skip-networking

S MariaDB jsme skončili! Nakonec možná budete chtít vyladit konfiguraci MariaDB v závislosti na tom, zda budete primárně používat úložné stroje MyISAM nebo InnoDB, ale také na počtu jader CPU a paměti RAM, které má váš server k dispozici. Výchozí nastavení nás mezitím zprovozní.

Pojďme restartovat každou ze služeb, pro které byly v tomto tutoriálu upraveny konfigurační soubory.

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

To je ono – všichni jsme hotovi. V tomto okamžiku máte plně funkční LNMP (LEMP) server online!

Tato příručka měla sloužit jako obecné pravidlo pro začátek s výše uvedenými službami s minimálními úpravami. Další informace naleznete v dokumentaci k výše uvedeným balíčkům. I když by toto příkladné nastavení mělo fungovat dobře hned po vybalení, úpravy mohou a pravděpodobně budou muset být provedeny tak, aby lépe vyhovovaly vašim potřebám.

Doporučené oblasti k výzkumu:

  • Využití a úprava ovládání mezipaměti NGINX.
  • Nastavení správce úloh PHP-FPM „statické“, „dynamické“ nebo „na vyžádání“.
  • Ladění výkonu MariaDB pro maximální využití databázového serveru.

Zanechat komentář

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více