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 Ubuntu 14.04 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.0.100. Tato nastavení se pro vás mohou lišit, takže je v případě potřeby musíte nahradit.
Všechny kroky v tomto tutoriálu provádím s právy root, takže se ujistěte, že jste přihlášeni jako root:
sudo su
2 Instalace MySQL 5
Nejprve nainstalujeme MySQL 5 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 k dispozici jako balíček Ubuntu, takže jej můžeme nainstalovat takto, protože apache2 je standardně nainstalován v ubuntu14.04, takže nejprve odinstalujeme apache2 a poté nainstalujeme lighttpd.
service apache2 stop
update-rc.d -f apache2 remove
apt-get remove apache2
apt-get install lighttpd
Nyní nasměrujte svůj prohlížeč na http://192.168.0.100/index.lighttpd.html a měli byste vidět zástupnou stránku Lighttpd:
Výchozí kořen dokumentu Lighttpd je /var/www na Ubuntu 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 (s inicializačním skriptem php5-fpm), který spouští FastCGI server 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:
vi /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 [...] |
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.conf.bak) a upravte 15-fastcgi-php.conf následovně:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak
vi 15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/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 May 7 05:33 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 May 7 05:33 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
[email protected]:/etc/lighttpd/conf-available#
Poté znovu načteme Lighttpd:
service lighttpd force-reload
Poznámka:Pokud se zobrazí chyby národního prostředí, můžete chybu odstranit pomocí
apt-get install language-pack-en-base
dpkg-reconfigure locales
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.
vi /var/www/info.php
<?php phpinfo(); ?> |
Nyní tento soubor nazýváme v prohlížeči (např. http://192.168.0.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-mysql. 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-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp 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:
service php5-fpm reload
Nyní znovu načtěte http://192.168.0.100/info.php ve svém prohlížeči a znovu přejděte dolů do sekce modulů. 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 se překonfiguruje automaticky:<-- lighttpd
Nakonfigurujte databázi pro phpmyadmin pomocí dbconfig-common? <-- Ne
Poté můžete přistupovat k phpMyAdmin pod http://192.168.0.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...
vi /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:
service php5-fpm reload
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:
vi /etc/lighttpd/conf-available/15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/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:
service lighttpd force-reload
10 odkazů
- Lighttpd:http://www.lighttpd.net/
- PHP:http://www.php.net/
- PHP-FPM:http://php-fpm.org/
- MySQL:http://www.mysql.com/
- Ubuntu:http://www.ubuntu.com/
- phpMyAdmin:http://www.phpmyadmin.net/