GNU/Linux >> Znalost Linux >  >> Debian

Instalace Lighttpd s PHP5 (PHP-FPM) a MySQL na Debian 8 (Jessie)

Lighttpd je bezpečný, rychlý webový server vyhovující standardům určený pro prostředí s kritickou rychlostí. Tento tutoriál ukazuje, jak můžete nainstalovat Lighttpd na server Debian 8 (Jessie) s podporou PHP5 (prostřednictvím PHP-FPM) a podporou MySQL. PHP-FPM (FastCGI Process Manager) je alternativní implementace PHP FastCGI s některými dalšími funkcemi užitečnými pro weby jakékoli velikosti, zejména pro rušnější weby. V tomto tutoriálu používám PHP-FPM místo spawn-fcgi Lighttpd.

1 předběžná poznámka

V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.1.100. Tato nastavení se pro vás mohou lišit, takže je musíte v případě potřeby nahradit. Jako základ pro tuto instalaci použijte minimální server Debianu, může to být buď minimální obraz vašeho datového centra, nebo jej můžete nainstalovat od začátku pomocí našeho výukového programu pro minimální server Debian.

2 Instalace MySQL / MariaDB

Debian 8 se dodává se 2 databázemi kompatibilními s MySQL, tradiční databází MySQL a MariaDB, vidlicí MySQL spravovanou původním vynálezcem MySQL Montym Wideniusem. MariaDB v současnosti vede v rychlosti databáze a vývojové aktivitě, takže si ji vyberu pro svůj server.

Níže popíšu instalaci MariaDB (kapitola 2.1) a MySQL (kapitola 2.2), abyste si mohli vybrat databázi, kterou preferujete. Ujistěte se, že budete postupovat podle kapitoly 2.1 nebo 2.2, ale ne podle obou.

2.1 Instalace MariaDB

Chcete-li nainstalovat MariaDB, spusťte tento příkaz.

apt-get install mariadb-server mariadb-client

Budete požádáni o zadání hesla pro uživatele root MariaDB – toto heslo je platné pro uživatele [chráněno e-mailem] i [chráněno e-mailem]rver1.example.com, takže nemusíme zadávat heslo uživatele root MariaDB ručně později:

New password for the MariaDB "root" user: <-- yourrootsqlpassword
Repeat password for the MariaDB "root" user: <-- yourrootsqlpassword

2.2 Instalace MySQL

MySQL 5 nainstalujeme takto:

apt-get install mysql-server mysql-client

Budete požádáni o zadání hesla pro uživatele root MySQL – toto heslo je platné pro uživatele [chráněno e-mailem] i [chráněno e-mailem], takže později nemusíme heslo root MySQL zadávat ručně:

Nové heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword
Opakujte heslo pro uživatele "root" MySQL:<-- yourrootsqlpassword

3 Instalace Lighttpd

Lighttpd je dostupný jako balíček Debianu, takže jej můžeme nainstalovat takto:

apt-get install lighttpd

Nyní nasměrujte svůj prohlížeč na http://192.168.1.100/ a měli byste vidět zástupnou stránku Lighttpd:

Výchozí kořen dokumentu Lighttpd je /var/www v Debianu a konfigurační soubor je /etc/lighttpd/lighttpd.conf.

Další konfigurace jsou uloženy v souborech v adresáři /etc/lighttpd/conf-available - tyto konfigurace lze povolit pomocí příkazu lighttpd-enable-mod, který vytvoří symbolický odkaz z adresáře /etc/lighttpd/conf-enabled na příslušnou konfiguraci soubor v /etc/lighttpd/conf-available. Konfigurace můžete zakázat pomocí příkazu lighttpd-disable-mod.

4 Instalace PHP5

Můžeme zajistit fungování PHP5 v Lighttpd pomocí PHP-FPM, které nainstalujeme takto:

apt-get install php5-fpm php5

PHP-FPM je proces démona (se skriptem init /etc/init.d/php5-fpm), který spouští server FastCGI na soketu /var/run/php5-fpm.sock.

5 Konfigurace Lighttpd a PHP5

Abychom povolili PHP5 v Lighttpd, musíme upravit /etc/php5/fpm/php.ini a odkomentovat řádek cgi.fix_pathinfo=1:

nano /etc/php5/fpm/php.ini
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]

A restartujte službu php5-fpm, abyste použili změnu konfigurace:

systemctl restart php5-fpm.service

Konfigurační soubor Lighttpd pro PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf je vhodný pro použití s ​​spawn-fcgi, my však chceme použít PHP-FPM, proto vytvoříme zálohu souboru ( s názvem 15-fastcgi-php-spawnfcgi.conf) a upravte 15-fastcgi-php.conf následovně:

cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
nano 15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php5-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Chcete-li povolit konfiguraci fastcgi, spusťte následující příkazy:

lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php

Tím se vytvoří symbolické odkazy /etc/lighttpd/conf-enabled/10-fastcgi.conf, které ukazují na /etc/lighttpd/conf-available/10-fastcgi.conf a /etc/lighttpd/conf-enabled/15-fastcgi-php .conf, který odkazuje na /etc/lighttpd/conf-available/15-fastcgi-php.conf:

ls -l /etc/lighttpd/conf-enabled
[email protected]:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Poté znovu načteme Lighttpd:

systemctl force-reload lighttpd.service

6 Testování PHP5 / Získání podrobností o instalaci PHP5

Kořen dokumentu výchozí webové stránky je /var/www. Nyní v tomto adresáři vytvoříme malý PHP soubor (info.php) a zavoláme jej v prohlížeči. Soubor zobrazí spoustu užitečných podrobností o naší instalaci PHP, jako je nainstalovaná verze PHP.

nano /var/www/html/info.php
<?php
phpinfo();
?>

Nyní tento soubor nazýváme v prohlížeči (např. http://192.168.1.100/info.php):

Jak vidíte, PHP5 funguje a funguje přes FPM/FastCGI, jak je znázorněno na řádku Server API. Pokud se posunete dále dolů, uvidíte všechny moduly, které jsou již povoleny v PHP5. MySQL zde není uveden, což znamená, že zatím nemáme podporu MySQL v PHP5.

7 Získání podpory MySQL v PHP5

Abychom získali podporu MySQL v PHP, můžeme nainstalovat balíček php5-mysqlnd. To je nový databázový ovladač, který je kompatibilní s MySQL a MariaDB. Je dobré nainstalovat některé další moduly PHP5, stejně jako je můžete potřebovat pro své aplikace. Dostupné moduly PHP5 můžete vyhledat takto:

apt-cache search php5

Vyberte ty, které potřebujete, a nainstalujte je takto:

apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache je bezplatný a otevřený PHP opcode cacher pro ukládání do mezipaměti a optimalizaci PHP přechodného kódu. Je to podobné jako u jiných PHP cacherů operačních kódů, jako je eAccelerator a APC. Důrazně se doporučuje mít jeden z nich nainstalovaný, aby se urychlila vaše stránka PHP.

Xcache lze nainstalovat následovně:

apt-get install php5-xcache

Nyní znovu načtěte PHP-FPM:

systemctl restart php5-fpm.service

Nyní znovu načtěte http://192.168.1.100/info.php ve svém prohlížeči a znovu přejděte dolů do sekce moduly. Nyní byste tam měli najít spoustu nových modulů, včetně modulu MySQL:

8 phpMyAdmin

phpMyAdmin je webové rozhraní, přes které můžete spravovat své databáze MySQL. Je to dobrý nápad nainstalovat:

apt-get install phpmyadmin

Uvidíte následující otázky:

Webový server pro automatické překonfigurování:<-- lighttpd

Configure database for phpmyadmin with dbconfig-common? <-- Yes
Password of the database's administrative user: <-- yourrootsqlpassword
MySQL application password for phpmyadmin: <-- Press <enter>

Poté můžete přistupovat k phpMyAdmin pod http://192.168.1.100/phpmyadmin/:

9 Nastavení PHP-FPM pomocí připojení TCP

Ve výchozím nastavení PHP-FPM naslouchá na soketu /var/run/php5-fpm.sock. Je také možné, aby PHP-FPM používal TCP spojení. Chcete-li to provést, otevřete /etc/php5/fpm/pool.d/www.conf...

nano /etc/php5/fpm/pool.d/www.conf

... a řádek pro poslech nastavte následovně:

[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]

Díky tomu bude PHP-FPM naslouchat na portu 9000 na IP 127.0.0.1 (localhost). Ujistěte se, že používáte port, který se ve vašem systému nepoužívá.

Poté znovu načtěte PHP-FPM:

systemctl restart php5-fpm.service

Dále otevřete konfigurační soubor PHP Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf a nahraďte řádek soketu řádkem hostitele a portu:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Nakonec znovu načtěte Lighttpd:

systemctl force-reload lighttpd.service

  • Lighttpd:http://www.lighttpd.net/
  • PHP:http://www.php.net/
  • PHP-FPM:http://php-fpm.org/
  • MySQL:http://www.mysql.com/
  • Debian:http://www.debian.org/
  • phpMyAdmin:http://www.phpmyadmin.net/

Debian
  1. Instalace Nginx s PHP5 (a PHP-FPM) a podporou MySQL (LEMP) na Ubuntu 14.04 LTS

  2. Instalace Lighttpd s podporou PHP5 (PHP-FPM) a MySQL na Ubuntu 14.04LTS

  3. Instalace Lighttpd s podporou PHP5 a MySQL na Ubuntu 10.04

  1. Instalace Lighttpd s podporou PHP5 (PHP-FPM) a MySQL na Ubuntu 12.04

  2. Instalace Nginx s PHP5 (a PHP-FPM) a podporou MySQL (LEMP) na Ubuntu 12.04 LTS

  3. Instalace Nginx s PHP5 (a PHP-FPM) a podporou MySQL (LEMP) na Ubuntu 13.04

  1. Instalace Nginx s podporou PHP5 a MySQL na Ubuntu 8.10

  2. Instalace Lighttpd s PHP (režim PHP-FPM) a MySQL nebo MariaDB na Ubuntu 15.04

  3. Instalace Lighttpd s PHP (režim PHP-FPM) a MySQL nebo MariaDB na Ubuntu 15.10