GNU/Linux >> Znalost Linux >  >> Debian

Nastavení Nginx + php-FPM + apc + MariaDB na Debian 7 – perfektní LEMP server

Webový server Debian

Debian je skvělá volba pro nastavení linuxových webových serverů. Podle aktuálních statistik je to nejpopulárnější serverový OS, těsně následovaný centos.

Jsem velkým fanouškem příkazů apt/dpkg/gdebi, které usnadňují instalaci a aktualizaci balíčků v systému.

Chcete-li nastavit kompletní funkční php webový server, musíte nainstalovat několik dalších věcí, které zahrnují webový server a databázi. V tomto příspěvku nastavíme nginx, php, php-fpm, apc a MariaDB.

Nginx je moderní webový server, který byl navržen tak, aby zvládal velké objemy provozu s využitím co nejmenšího množství zdrojů, pokud jde o RAM a CPU.

Před nginx byl tradiční webový server používaný na internetu apache. Jak se však internet stále více zalidňoval, rostla potřeba rychlejšího a efektivnějšího webového serveru.

Nginx vs Apache

Design Apache je velmi objemný a má spoustu funkcí, z nichž většina není pro typické webové stránky nezbytná. Byl pravděpodobně navržen tak, aby uspokojil potřeby každého, ale nakonec z něj udělal velký a těžký webový server s většinou nevyužitými funkcemi.

Nginx je na druhou stranu velmi elegantní a rychlý webový server, který se výhradně zaměřuje na rychlost, škálovatelnost a efektivitu.

Technické informace, jak to dělá, jsou rozsáhlé a přesahují rozsah tohoto příspěvku. Možná bychom se mohli podívat později. Jen pro vaši informaci tento web běží na nginx.

Nyní se bez dalších diskusí pusťte do práce.

1. Nainstalujte Nginx na Debian

Balíček nginx je přímo v repozitářích debianu, takže nemusíte hledat nikde jinde. Spusťte apt-get a nainstalujte jej.

# apt-get install nginx

Nyní spusťte server nginx.

# service nginx startSpuštění nginx:nginx.

Nyní přejděte na server nginx z prohlížeče otevřením adresy URL

http://localhost/

a měli byste dostat uvítací zprávu

Vítejte v nginx!

Důležité poznámky

Existuje několik věcí, které byste si měli zapamatovat, abyste mohli lépe spravovat svůj server nginx. Konfigurační soubory nginx se nacházejí v následujícím umístění

/etc/nginx/
[email protected]:/etc/nginx# lsconf.d koi-win naxsi.rules scgi_params uwsgi_paramsfastcgi_params mime.types nginx.conf sites-availbled win-utfkoi-utfsites preles-param_core 

Soubor nginx.conf nebudeme přímo upravovat. Místo toho vytvoříme samostatný konfigurační soubor pro každý vhost/site a uložíme jej do následujících adresářů.

/etc/nginx/sites-available/etc/nginx/sites-enabled

To je podobné jako u Apache. Adresář site-enabled obsahuje konfigurace pro vhosts, které mají být povoleny. Obsahuje symbolické odkazy na odpovídající konfigurační soubory v adresáři sites-available.

Nastavení virtuálního hostitele

Nyní, když jsme nainstalovali nginx, je čas nastavit virtuální hostitele. To je to, co byste dělali na skutečném webovém serveru, abyste nastavili své stránky.

Uvnitř /etc/nginx/sites-available uvidíte soubor s názvem default. Jedná se o soubor šablony pro vytváření vlastních konfiguračních souborů. Stačí jej zkopírovat a pojmenovat na svůj web.

# cp default [email protected]:/etc/nginx/sites-available# výchozí lsbinarytides.com

Rozhodli jsme se pojmenovat konfigurační soubory názvem webu, aby bylo snazší si je zapamatovat a udržovat.
Nyní otevřete binarytides.com a upravte věci podle svých potřeb.
Uvidíte server blok podobný tomuto

server { #listen 80; ## poslouchat ipv4; tento řádek je výchozí a implikovaný #listen [::]:80 default_server ipv6only=on; ## poslouchat ipv6 root /usr/share/nginx/www; index index.html index.htm; # Zpřístupněte web z http://localhost/ server_name localhost;

První věcí, kterou je třeba zde nakonfigurovat, je název_serveru. Pojmenujte jej na svůj web. Například

název_serveru binarytides.comorserver_name binarytides.com www.binarytides.com

Když někdo otevře binarytides.com ve svém prohlížeči, hlavička http obsahuje tento název hostitele, který by nginx vyzvedl a vyhledal odpovídající blok serveru. Když je nalezen odpovídající blok serveru, použije konfiguraci z tohoto konkrétního bloku serveru.

Další věcí, kterou je třeba nakonfigurovat, je webový kořenový adresář pro tento web/vhost. Upozorňujeme, že toto je ve výchozím nastavení /usr/share/nginx/www kterou možná budete chtít změnit na něco jiného.

Obecnou konvencí je mít samostatný adresář pro každý vhost. Například

/usr/share/nginx/www/binarytides.com//usr/share/nginx/www/google.com/

Vytvořte tedy vhodný adresář a nasměrujte kořenové nastavení v konfiguračním souboru na adresář.

...root /usr/share/nginx/www/binarytides.com;...

Po provedení těchto změn uložte konfigurační soubor a vytvořte symbolický odkaz na adresář /etc/nginx/sites-enabled.

[email protected]:/etc/nginx/sites-available# lsbinarytides.com [email protected]:/etc/nginx/sites-available# cd [email protected]:/etc/nginx# cd sites-enabled/[email protected]:/etc/nginx/sites-enabled# ln -s ../sites-available/[email protected]:/etc/nginx/sites-enabled# lsbinarytides.com [email protected]:/etc/nginx/sites-enabled#

Nyní otestujte svou novou konfiguraci

# nginx -tnginx:[varovat] konfliktní název serveru "localhost" na 0.0.0.0:80, ignorednginx:syntaxe konfiguračního souboru /etc/nginx/nginx.conf je oknginx:konfigurační soubor /etc/nginx/nginx. conf test je úspěšný

Na posledním řádku výstupu musí být uvedeno úspěšné, jinak by se zobrazila nějaká chyba. Může zobrazovat některá varování, která lze později opravit.

Nakonec restartujte nginx, aby se nová konfigurace projevila

# service nginx restartRestartování nginx:nginx:[varovat] konfliktní název serveru "localhost" na 0.0.0.0:80, [email protected]:/etc/nginx/sites-enabled#

Nová konfigurace se tedy projevila. Nyní vytvořte nový soubor index.html v novém webovém kořenovém adresáři tohoto virtuálního hostitele a otevřete jej v prohlížeči a mělo by to fungovat.

2. Nainstalujte php a php-fpm

Další věcí, kterou je třeba nainstalovat, je interpret php a php-fpm. Php-FPM je specializovaný správce procesů fastcgi pro php, který dokáže vytvořit rozhraní nebo se připojit k libovolnému kompatibilnímu webovému serveru a spravovat php procesy pro zpracování požadavků php.

Nginx <==komunikuje ==> Php-FPM <==spravuje ==> podřízený proces php

Nejprve nainstalujte potřebné balíčky.

# apt-get install php5 php5-fpm

Automaticky nainstaluje potřebné závislosti. Balíček php5-cli můžete nainstalovat také v případě, že ke spouštění php skriptů potřebujete příkaz php.

Php-fpm běží jako samostatný server a nginx s ním komunikuje přes soket. Spouštění php je tedy zcela mimo server. Také protože fpm udržuje php proces perzistentní, plně podporuje APC.

Nyní vyhledejte konfigurační soubory php fpm. Soubory na adrese

/etc/php5/fpm/

Fond je skupina php procesů běžících se stejným uživatelem/skupinou. Pokud tedy chcete, aby php soubory každého webu běžely se samostatným uživatelským oprávněním, musíte vytvořit samostatné fondy fpm. Pro jednoduchost zde zobrazujeme pouze jeden fond.

Konfigurační soubory fondu jsou v adresáři pool.d. Přejděte do

[email protected]:/etc/php5/fpm/pool.d# lswww.conf

Otevřete soubor www.conf, což je opět šablona, ​​kterou můžete použít, a vytvořte samostatné konfigurační soubory pro každý fond.
Vypadá to nějak takto

; Spusťte nový fond s názvem 'www'.; proměnnou $pool můžeme použít v libovolné direktivě a bude nahrazena; název fondu (zde „www“)[www]; pro předponu fondu; Platí pouze pro následující směrnice:; - 'slowlog'; - 'listen' (unixsocket); - 'chroot'; - 'chdir'; - 'php_values'; - 'php_admin_values'; Pokud není nastaveno, použije se místo něj globální předpona (nebo /usr).; Poznámka:Tato direktiva může být také relativní ke globální předponě.; Výchozí hodnota:none;prefix =/cesta/k/poolům/$pool; Unixový uživatel/skupina procesů; Poznámka:Uživatel je povinný. Pokud skupina není nastavena, výchozí skupina uživatele; bude použit.user =www-datagroup =www-data; Adresa, na které se mají přijímat požadavky FastCGI.; Platné syntaxe jsou:; 'ip.add.re.ss:port' - poslouchat na soketu TCP na konkrétní adrese; konkrétní port; 'port' - poslouchat na TCP soketu všechny adresy na a; konkrétní port; '/path/to/unix/socket' - pro poslech na unixovém socketu.; Poznámka:Tato hodnota je povinná.listen =/var/run/php5-fpm.sock; Set listen(2) backlog.; Výchozí hodnota:128 (-1 na FreeBSD a OpenBSD);listen.backlog =128

Výše uvedená věc se skládá převážně z komentářů a nejdůležitější 4 řádky jsou

1. [www] toto je název fondu2. user =www-data toto je uživatel, s jehož oprávněními by se php skript spouštěl3. group =www-datatoto je skupina4. listen =/var/run/php5-fpm.socktoto je soket pro komunikaci s tímto fondem. Aby nginx mohl mluvit s fpm
, musí být tento socket předán nginx

Propojte fpm s nginx

Tady toho moc měnit nebudeme. Jen si poznamenejte cestu soketu. Musíme to vložit do konfiguračního souboru nginx. Vraťte se ke své konfiguraci nginx a znovu ji otevřete.

Obsahuje sekci pro konfiguraci php fpm, která vypadá takto

# předat skripty PHP na server FastCGI naslouchající na 127.0.0.1:9000##location ~ \.php$ {# fastcgi_split_path_info ^(.+\.php)(/.+)$;# # POZNÁMKA:Měli byste mít "cgi.fix_pathinfo =0;" v php.ini## # Se samotným php5-cgi:# fastcgi_pass 127.0.0.1:9000;# # S php5-fpm:# fastcgi_pass unix:/var/run/php5-fpm.sock;# fastcgi_index index.php;# zahrnout fastcgi_params;#}

Odkomentujte to a nechte to vypadat takto

location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$;# # POZNÁMKA:Měli byste mít "cgi.fix_pathinfo =0;" v php.ini# # Se samotným php5-cgi:# fastcgi_pass 127.0.0.1:9000; # S php5-fpm:fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; zahrnout fastcgi_params;}

Otestujte PHP

Nyní vložte soubor do webového kořenového adresáře s voláním phpinfo.

<?phpphpinfo();

A pak otevřete soubor v prohlížeči a měl by se objevit informační blok php, který říká, že php je nastaven a funguje správně.

Další věc, kterou můžete udělat, je přidat index.php do seznamu indexových souborů. Takže pokud při přístupu k adresáři není zadán žádný soubor, zavolá se index.php.

root /usr/share/nginx/www/binarytides.com;index index.html index.htm index.php;

Nastavení apc – alternativní mezipaměť php

APC je skvělý způsob, jak urychlit provádění php skriptů. Apc zkompiluje php kód a ponechá operační kód v paměti a použije jej příště, aniž by znovu kompiloval stejný php kód ze souboru. To výrazně urychluje provádění. Kromě mezipaměti operačních kódů nabízí apc také uživatelskou mezipaměť pro ukládání nezpracovaných dat pro aplikaci php do paměti.

Php od verze 5.5 má novou funkci nazvanou OPcache, která dělá to samé jako mezipaměť apc opcode, čímž zavrhuje apc.

Nastavení apc je velmi jednoduché a rychlé. Stačí nainstalovat balíček apc pro php

# apt-get install php-apc

Poté restartujte php fpm

# restart služby php5-fpm

Nyní znovu zkontrolujte stránku phpinfo a měla by obsahovat také podrobnosti o apc. Konfigurační soubor apc se nachází na adrese

/etc/php5/fpm/conf.d/20-apc.ini

Konfigurace může být trochu upravena pro optimální výkon pro vaše potřeby. Zde je druh konfigurace, který používám

extension=apc.so apc.enabled=1apc.shm_size=128Mapc.ttl=3600apc.user_ttl=7200apc.gc_ttl=3600apc.max_file_size=1M

Další informace naleznete v seznamu konfiguračních parametrů apc.

3. Nainstalujte MariaDB na Debian

Nyní přichází poslední a poslední složka zásobníku LEMP. To je databáze MariaDB a ne mysql. Nyní byste měli vědět, že mysql je v rukou věštce a že už není součástí komunity. Takže hlavní sbory začaly přecházet na mariadb. Dobrá věc je, že mariadb je binárně kompatibilní s mysql se spoustou dalších funkcí. Takže pokud již používáte mysql pro své php aplikace, pak by přechod na mariadb byl naprosto bezproblémový.

MariaDB není přítomen v debianu úložišť. Chcete-li získat úložiště, navštivte následující stránku

https://downloads.mariadb.org/mariadb/repositories/

Vyberte Debian jako distribuci, Wheezy jako vydání a verzi 10.0 mariadb. Poté vyberte zrcadlo na pravé straně. Nyní přejděte dolů na konec stránky a vyhledejte podrobnosti o úložišti.

Zde jsou příkazy, které jsem dostal

instalace sudo apt-get python-software-propertiessudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943dbsudo add-apt-repository 'deb http://mirrors.fe.up.pt/ pub/mariadb/repo/10.0/debian wheezy main'

Nyní aktualizujte mezipaměť apt a nainstalujte balíčky mariadb

sudo apt-get updatesudo apt-get install mariadb-server mariadb-client

Při instalaci by mariadb požadoval heslo uživatele root. Zadejte heslo a nezapomeňte jej zapomenout.

Po dokončení instalace zkontrolujte verzi mariadb

# mysql -Vmysql Ver 15.1 Distrib 10.0.3-MariaDB, pro debian-linux-gnu (x86_64) pomocí readline 5.1

Všimněte si, že název příkazu je stejný jako u mysql. Ale název mariadb je tam v informacích o verzi.

Webový server je připraven

Nyní je tedy webový server LEMP připraven k použití. Možná budete chtít nainstalovat několik dalších vychytávek, jako je phpmyadmin, abyste mohli lépe spravovat databázi. Phpmyadmin je v úložišti debianu, takže jej nainstalujte přímo odtud.

Máte nějaké otázky ? Neváhejte a napište komentář níže.


Debian
  1. Aktualizujte ISPConfig Perfect Server z Debian 10 na Debian 11

  2. Jak nainstalovat LEMP (Linux, Nginx, MySQL &PHP-FPM) na Debian 8 VPS

  3. Jak nainstalovat sociální síť Elgg na Debian 9

  1. Jak nastavit LEMP server na Debian 10 Buster

  2. Perfektní nastavení – Debian Sarge (3.1)

  3. Perfektní nastavení – Debian Woody (3.0)

  1. Instalace Nginx s PHP (jako PHP-FPM) a MariaDB (LEMP) na Debian 8

  2. The Perfect Server – Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)

  3. The Perfect Server – Debian 9 (Nginx, BIND, Dovecot, ISPConfig 3.1)