GNU/Linux >> Znalost Linux >  >> Ubuntu

Nastavení Apache 2.4 a Php FPM s mod proxy fcgi na Ubuntu 13.10

mod_proxy_fcgi

Modul mod_proxy_fcgi je nový a umožňuje apache připojit se/předat požadavky na externí správce procesů fastcgi, jako je php fpm. To umožňuje úplné oddělení mezi spouštěním php skriptů a Apache.

Dříve jsme museli používat moduly jako mod_fcgid a mod_fastcgi, které všechny měly určitá omezení. Mod_fcgid například správně nevyužíval možnosti správy procesů php-cgi, zatímco mod_fastcgi je modul třetí strany.

S příchodem mod_proxy_fcgi Apache konečně získává možnost úhledně hovořit s externími manažery procesů fastcgi, čímž je při plnění úkolu efektivnější.

Delegování požadavků php na externí fpm servery výrazně snižuje zatížení webových serverů, jako je apache, což vede k efektivnímu využití strojových zdrojů a rychlejšímu zpracování.

požadavek page.php --> Apache --> Služba Php FPM --> Proces PHP spustí page.php

Spolu s tím vším může php fpm spouštět moduly pro ukládání operačních kódů do mezipaměti, jako je apc, velmi stabilně.

Takže v tomto příspěvku je naším úkolem nastavit apache + php-fpm pomocí konektoru mod_proxy_fcgi.

1. Nainstalujte a nakonfigurujte Apache

Ubuntu 13.10 se již dodává s Apache 2.4, takže všechny instalovatelné položky jsou v samotném úložišti.

Nainstalujte Apache, pokud jste to ještě neudělali

$ sudo apt-get install apache2

Povolit mod_proxy_fcgi

$ sudo a2enmod proxy_fcgi Zvažování proxy proxy pro proxy_fcgi:Povolení modulu proxy. Povolení modulu proxy_fcgi. Chcete-li aktivovat novou konfiguraci, musíte spustit:restart služby apache2

Restartujte Apache

$ sudo service apache2 restart

Konfigurace virtuálních hostitelů

Dalším úkolem je nakonfigurovat vhost pro použití mod fcgi proxy pro komunikaci s fpm. Konfigurační soubory vhost jsou uloženy v následujícím umístění

/etc/apache2/sites-available

Dostaňte se dovnitř a vytvořte svůj nový konfigurační soubor vhost zkopírováním souboru 000-default.conf, který je součástí apache.

$ cd /etc/apache2/sites-available$ sudo cp 000-default.conf mysite.conf$ sudo nano mysite.conf

Nyní je čas nakonfigurovat virtuální hostitele. Zde je návod, jak jsem nakonfiguroval soubor

..... ServerName fpm.localhost ServerAdmin [email protected] DocumentRoot /var/www/mysite..... ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR} /access.log combined..... #Include conf-available/serve-cgi-bin.conf ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/ var/www/mysite/$1  Objednávka povolit, odepřít Povolit všem AllowOverride FileInfo All # Nová direktiva potřebná v Apache 2.4.3:Vyžadovat všechny udělené  

Důležité věci, které je třeba poznamenat, jsou:

1. Název serveru - Toto je doména nebo subdoména vašeho vhost. V tomto příkladu jsem použil fpm.localhost, takže při použití této subdomény na localhost se použije php fpm.

2. DocumentRoot - Toto je kořenový adresář tohoto vhost, odkud budou webové soubory obsluhovány.

3. ProxyPassMatch - Toto je direktiva, která říká předat všechny požadavky na soubory ".php" na server fcgi na 127.0.0.1:9000. Zde by běžel náš správce procesů php fpm. Více o tom v další části.
Fcgi url musí obsahovat přesnou cestu ke kořenu dokumentu. V opačném případě by se při žádosti o soubory zobrazilo „Soubor nenalezen“.

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/mysite/$1

Prvním parametrem je vzor, ​​který se má shodovat. Takže všechny adresy URL, které mají v sobě „.php“, za kterým následuje lomítko volby a cokoli jiného, ​​jsou spárovány a odpovídající část je předána serveru fcgi běžícím na 127.0.0.1:9000.

4. Vyžadovat vše uděleno - Za řádek ProxyPassMatch jsme přidali sekci s direktivami Require a AllowOverride. Je to nutné od Apache 2.4

Uložte soubor a povolte jej pomocí příkazu a2ensite, který ušetří námahu při vytváření symbolického odkazu v adresáři s povolenými weby.

$ sudo a2ensite mysitePovolení webu mysite.Chcete-li aktivovat novou konfiguraci, musíte spustit:service apache2 reload

Nyní znovu načtěte konfiguraci apache

$ sudo service apache2 reload * Reload web server apache2

Tím je konfigurace apache dokončena. Druhá polovina úkolu je nakonfigurovat php fpm tak, aby konečně fungoval.

2. Nastavení Php-FPM (FastCGI Process Manager)

Další věcí je nastavení php fpm. Nainstalujte jej přes synaptic, pokud jste tak již neučinili.

$ sudo apt-get install php5-fpm

Konfigurační soubory pro fpm jsou umístěny na

/etc/php5/fpm
/etc/php5/fpm$ lsconf.d php-fpm.conf php.ini pool.d

Adresář pool.d obsahuje konfigurační soubor pro každý fond fpm a php-fpm.conf je hlavní konfigurační soubor. Naší jedinou prací je nakonfigurovat fond fpm, který se má používat s apache nebo konkrétním virtuálním hostitelem.

Konfigurační soubor pro fond je poměrně velký a existuje mnoho parametrů, které lze konfigurovat. Ale v tomto příspěvku budeme hovořit pouze o důležitých polích, která je třeba nastavit, aby se fpm zprovoznil

; 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]; Předpona pro skupinu; Platí pouze pro následující směrnice:; - 'slowlog'; - 'poslouchat' (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 =osvícenýskupina =osvícený; Adresa, na které se mají přijímat požadavky FastCGI.; Platné syntaxe jsou:; 'ip.add.re.ss:port' - naslouchat 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 =127.0.0.1:9000; Set listen(2) backlog.; Výchozí hodnota:128 (-1 na FreeBSD a OpenBSD);listen.backlog =128

Vytvořte nový konfigurační soubor zkopírováním souboru www.conf. A upravte pole, jak je vysvětleno dále.

1. První možností je název fondu. Tady jsme to pojmenovali „www“. Pojmenujte jej podle libosti nebo podle názvu domény, se kterou se bude používat. například „vaše stránky“. Tímto způsobem by bylo snazší si to zapamatovat.

2. Nastavte uživatele a skupinu, se kterou bude tento fond spuštěn. Když nastavujete více webů/domén/virtuálních hostitelů na serveru, vždy budete chtít nastavit samostatné uživatelské účty a odpovídající fond pro každý z nich. Toto je základní bezpečnostní opatření, takže každý fond má oprávnění pouze svého vlastního uživatele.

3. Nastavte zásuvku pro poslech. Toto je soket, na kterém bude hlavní proces fpm naslouchat příchozím požadavkům. Může to být zásuvka unix nebo tcp. Mod_proxy_fcgi však zatím nepodporuje unixové sockety, takže jsme omezeni na tcp sockety.
Tady jeho číslo portu 9000 na localhost.

Nyní restartujte fpm

$ sudo service php5-fpm restart

Nyní by měl vstoupit v platnost nový fond fpm. Nový proces fondu můžete vidět například v htop.

3. Otestujte nastavení

Nyní, když jsou Apache i php fpm nakonfigurovány a nastaveny, je čas otestovat. Dostaňte se do kořenového adresáře dokumentu a vytvořte php soubor obsahující volání funkce phpinfo() a otevřete jej ve svém prohlížeči.
"Server API" by mělo být hlášeno jako "FPM/FastCGI".

Nyní, když jsou Apache a php nastaveny, možná budete chtít nainstalovat další věci, jako je APC, databáze mariadb, phpmyadmin atd. Pohybujte se po tomto webu a najděte si k tomu návody.

Zdroje

Další informace naleznete na následujících odkazech
https://wiki.apache.org/httpd/PHP-FPM


Ubuntu
  1. Jak povolit a zakázat modul PHP curl s Apache na Ubuntu Linux

  2. Jak nastavit Opencart s LAMP (PHP, Apache, Mariadb) na Ubuntu 20.04

  3. Nainstalujte a nakonfigurujte Apache a PHP s cgi na Ubuntu nebo Debianu

  1. Instalace WordPressu na Ubuntu Linux s Apache a MySQL

  2. Nastavte Apache a Php pomocí mod_fcgid na Ubuntu/Debian

  3. Nainstalujte a nakonfigurujte Apache a php pomocí mod fastcgi na Ubuntu/Debian

  1. Jak nainstalovat Laravel na Ubuntu 18.04 s Apache

  2. Výukový program serveru Ubuntu 14.10 LAMP s Apache 2, PHP 5 a MySQL (MariaDB)

  3. Výukový program serveru Ubuntu 15.04 LAMP s Apache 2, PHP 5 a MariaDB (místo MySQL)