Správa linuxového serveru: Instalace LAMP

LAMP je zkratkou pro Linux, Apache, MySQL a PHP. Tento díl seriálu se bude zabývat základním zprovozněním Apache, MySQL a PHP v distribuci Debian. Nainstalována bude i webová aplikace phpMyAdmin sloužící k pohodlné správě databáze.

Úvod

Na úvod je třeba zdůraznit, že pro jednotlivé komponenty ze zkratky LAMP existují alternativy, které mohou být v mnoha situacích příhodnější. Už samotný webový server Apache má v prostředí GNU/Linuxu poměrně velkou konkurenci. Existují odlehčené varianty snažící se o vyšší výkon jako např. Lighttpd, na kterém běží tak gigantické projekty jako Youtube, Wikipedia atd., ale také třeba Nginx. Zajímavým projektem hodným zmínky je i webový server Cherokee, který poskytuje přehledné webové konfigurační rozhraní, čímž odstraňuje nutnost editovat konfigurační soubory ručně, a ještě k tomu je nenáročný na zdroje a nabízí takévelmi slušný výkon.

Pokud se posunete k dalšímu písmenku, tedy k databázovému systému MySQL, i zde je v prostředí GNU/Linuxu značná konkurence. Na mysl by vám zde určitě měl přijít PostgreSQL, Firebird a další. Pokud vás zajímají rozdíly jednotlivých databázových systémů, můžete si přečíst článek Srovnání databázových serverů, nebo se podívat na komplexní srovnání databázových systémů na Wikipedii.

Posledním písmenkem ve zkratce LAMP je písmeno P, značící PHP. Ačkoliv se jedná o jeden z nejpoužívanějších jazyků pro tvorbu webových aplikací, má svoje nedostatky (i když řadu z nich se snaží řešit řada PHP frameworků) a existuje opět řada alternativ, z nichž budu jmenovat alespoň Javu, Python či Ruby.

Instalace Apache

Samotná instalace Apache je v Debianu, ale i v řadě jiných distribucí velmi triviální – postačí nainstalovat jediný balíček – v případě Debianu balíček apache2:

aptitude install apache2

Po instalaci dojde ke spuštění serveru a vy se můžete na web rovnou podívat (postačí do prohlížeče zadat IP adresu serveru). Měl by se objevit známý nápis „It works!“ značící, že je všechno v pořádku a webový server běží. Pokud pracujete vzdáleně přes SSH a máte k dispozici některý z konzolových webových prohlížečů (např. lynx), můžete webový server otestovat lokálně tímto způsobem:

lynx localhost

Apache očekává webovou prezentaci v adresáři /var/www, a to je také umístění, ze kterého v tomto případě zobrazil obsah souboru index.html.

Instalace PHP

Pokud se jedná o základní instalaci PHP, ani zde není příliš velký problém – je ovšem potřeba nějakým způsobem PHP s Apachem propojit. O to se postará balíček libapache2-mod-php5:

aptitude install libapache2-mod-php5 php5

Po provedení tohoto příkazu restartujte Apache:

/etc/init.d/apache2 restart

V tuto chvíli by bylo dobré otestovat, zda vše korektně funguje a PHP aplikace vám poběží. Proto vytvořte soubor /var/www/index.php s následujícím obsahem:

<?php phpinfo(); ?>

Jelikož HTML soubory dostanou před PHP soubory přednost, můžete buď index.html ve /var/www vymazat, nebo zadat do prohlížeče explicitně cestu k index.php. Poté byste měli vidět uvítací stránku PHP detailně popisující konfiguraci. Pokud máte na serveru k dispozici Lynx, můžete se přesvědčit pomocí něj:

lynx localhost/index.php

Pokud dostanete místo popisu konfigurace PHP obsah souboru index.php v textové podobě, máte problém s konfigurací. Buď jste nerestartovali Apache, nebo jste nenainstalovali balíček libapache2-mod-php5.

Proběhlo-li vše v pořádku, máte k dispozici webový server schopný běhu PHP aplikací. PHP je ovšem modulární, takže v tuto chvíli máte k dispozici pouze základní PHP bez řady doplňků, které webové aplikace často využívají. Bývá dobrou praxí instalovat pouze ty doplňky, které opravdu potřebujete. Podívejte se tedy do dokumentace aplikací, které chcete na serveru provozovat, a nainstalujte doplňky pro PHP dle toho. Seznam doplňků, které jsou dostupné v Debianu, získáte kupříkladu takto:

aptitude search php5

Instalace MySQL

Instalace MySQL obnáší nutnost nainstalovat PHP modul, který je schopný s MySQL pracovat, konkrétněphp5-mysql. Samotnou instalaci MySQL serveru, klienta a modulu pro PHP zajistíte následujícím příkazem:

aptitude install php5-mysql mysql-server

Během instalace budete požádáni o zadání hesla pro administrátorský účet databáze. Důrazně se doporučuje této možnosti využít a administrátorský účet heslem ochránit. To platí dvojnásob v situaci, kdy zpřístupníte rozhraní databáze přes webové stránky veřejnosti, pomocí aplikace phpmyadmin.

Pokud využíváte řádkového klienta MySQL a vadí vám nutnost zadávat heslo, můžete si pomoci vytvořením využít konfigurační soubor MySQL klienta $HOME/.my.cnf, kam můžete heslo uvést, aby se vás na něj řádkový MySQL klient nemusel ptát. Obsah daného souboru upravte podle následujícího vzoru:

[client]
password=heslo

Instalace aplikace phpMyAdmin

PhpMyAdmin je webová aplikace napsaná v PHP a určená k pohodlné správě MySQL databáze. Představuje možnost, jak pracovat s databázovým systémem rychle, přehledně a efektivně bez nutnosti psát všechny SQL příkazy ručně. V případě LAMP serverů je této aplikace hojně využíváno také kvůli možnosti snadného importu a exportu dat z nebo do databáze. Více informací o použití této aplikace naleznete v článku Správa databází pomocí phpMyAdmin. Instalaci nástroje phpMyAdmin provedete v Debianu takto:

aptitude install phpmyadmin

V průběhu instalace se vás instalátor dotáže, zdali má zkonfigurovat některé servery pro běh phpmyadmina – zde zvolte apache2. Díky tomu budete moci po instalaci začít aplikaci phpMyAdmin rovnou používat – bude dostupná v umístění /phpmyadmin relativně ke kořenu serveru:

lynx localhost/phpmyadmin

Budete-li k této aplikaci přistupovat vzdáleně, čiňte tak raději přes HTTPS, až tímto způsobem webový server nastavíte. Budete-li používat nešifrovaný protokol HTTP, umožníte kterémukoliv naslouchajícímu na cestě mezi vámi a vaším serverem, aby vaše heslo k databázi odposlechl.

LAMP je (skoro) hotov

V tuto chvíli již máte nainstalován funkční webový server s databází MySQL a podporou pro PHP aplikace. Můžete si vyzkoušet práci s databází prostřednictvím phpMyAdmina, popřípadě si na server zkusit nahrát nějakou PHP aplikaci a zkusit ji zprovoznit. Jistě jste si všimli, že nebylo třeba zasahovat do konfiguračních souborů – bylo využito výchozí konfigurace Debianu. Bohužel tato výchozí konfigurace má své nedostatky. Předně PHP je nastaveno v režimu navrženém pro vývojové, nikoliv pro produkční servery (nevyužívá tedy adekvátní možnosti zabezpečení pro produkční servery). Dále Apache v tuto chvíli nabízí jedinou prezentaci ve /var/www pro všechny domény, které jsou na webový server nasměrované. Není také nakonfigurované SSL, takže není přístupná varianta webu přes zabezpečený protokol HTTPS. Konfiguraci a možnostem zabezpečení se budou věnovat další díly.