30. dubna 2009 (09:00)
Vyšla jarní verze distribuce Mandriva Linux 2009.1. Nově nasazené graficke prostředí KDE 4 je na rozdíl od předchozí verze mnohem dál, posunulo se od hezkého experimentu k plně použitelnému systému. Česká knižní edice k této verzi nebude, takže nezbývá, než stahovat a s problémy se obrátit na fórum.
[Všechny informace v češtině]
[Představení hlavních novinek]
[Poznámky k vydání]
[Download]
[Errata] [Errata česky]
Ukážeme si, jak rychle rozběhnout webový server, který bude dodávat stránky prohlížeči, PHP preprocesor, který bude zpracovávat naše scripty a k tomu databázi, kam si budeme ukládat data. To všechno na Mandriva Linuxu a na našem domácím počítači. Bez jakékoliv sítě, jen s otevřeným svobodným softwarem. Verze Mandrivy není důležitá, popsané vybavení byste měli dostat s každou distribucí.
Tento článek je zastaralý. V moderní distribuci je možné celou instalaci zvládnout jednoduchým nainstalováním metabalíčku task-lamp-php. Aktualizace článku se připravuje.
Nebudeme chodit ke kováříčkovi, když můžeme mít kováře. Apache je server, který servíruje většinu stránek na internetu.
Instalujeme balíček apache2. Buď z ovládacího centra - instalace software, nebo pomocí urpmi. Postup s urpmi je u všech balíčků stejný. Otevřeme textovou konzolu, přihlásíme se jako root (su [Enter], heslo [Enter]) a zadáme jméno balíčku jako parametr. V případě Apache tedy urpmi apache2 [Enter]. Kromě apache2 se nabídnou k odsouhlasení a poté nainstalují také další závislosti: apache-conf, apache2-common a apache2-modules. Pokud vládnete angličtinou, je samozřejmě více než doporučeno instalovat dokumentaci. Balíček apache2-manual.
Aby náš server správně interpretoval scripty psané v PHP, stačí dodat příslušný modul. Balíčky s moduly jsou označeny apache2-mod_popis_modulu. Nás zajímá apache2-mod_php, který si vyžádá libphp_common.
Rekapitulace nainstalovaných balíčků:
| Server Apache2: | apache2 |
| apache-conf | |
| apache2-common | |
| apache2-modules | |
| Dokumentace: | apache2-manual |
| PHP: | apache2-mod_php |
| libphp_common |
Jestli svůj Linux instalujete z CDček, pak při diskotéce budete pravděpodobně potřebovat CD1, kde je větší část balíčků a CD2, kde je manuál.
Po úspěšné instalaci se přesvědčíme o funkčnosti Apache. Na konzoli jako root zadáme: service httpd start [Enter]. Vypíše se: "Starting httpd2: [ OK ]". Jestli ne, jsme v maléru, ale o tom bychom museli vědět předem, protože by se nám nějak nezdařila instalace, což by se projevilo chybovým hlášením.
Spustíme libovolný webový prohlížeč a do adresního řádku napíšeme http://localhost [Enter]. Apache nám naservíruje úvodní stránku "Welcome to localhost" a na ní bude něco jako: "This site is powered by: Apache-AdvancedExtranetServer/2.0.48 (Mandrake Linux/5mdk) PHP/4.3.4!". Z této úvodní stránky se také rovnou můžeme podívat na dokumentaci, pokud jsme ji ovšem nainstalovali. Právě jsme z vlastního stroje udělali webový server.
Pustíme se do zkoušení vlastnoručně vyrobených stránek. Apache ve výchozím nastavení hledá stránky, na dvou místech. V adresářích /var/www/html a ~/public_html. To druhé znamená, že jestliže v domácím adresáři uživatele existuje adresář public_html, je možné do prohlížeče zadat adresu http://localhost/~jméno_uživatele/stránka.html a požadovaná stránka je zobrazena. Vynecháme-li jméno stránky, zobrazí se index.html. Pokud neexistuje, obdržíme chybu "Forbidden...".
Uživatel "pepa" tedy ve vlastním domovském adresáři vytvoří podadresář "public_html" a do něj uloží dva testovací soubory:
index.html bude mít obsah:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>test</title>
</head>
<body>
<p>Toto je testovací stránka uložená v souboru
/home/pepa/public_html/index.html.</p>
</body>
</html>
info.php bude mít jen jeden řádek:
<?php phpinfo(); ?>
Když potom v prohlížeči zadáme http://localhost/~pepa/, uvidíme větu "Toto je testovací stránka". Když zadáme http://localhost/~pepa/info.php, uvidíme informační stránku PHP.
Rekapitulace a poznámky:
Ovládání serveru Apache:
Nainstalujeme MySQL, což je jedna z nejoblíbenějších databází. Předpokládá se, že jsme začátečník a tak se nebudeme zdržovat rozumováním o tom, jestli je právě MySQL tou nejlepší volbou. S něčím se začít musí a k tomu je MySQL stejně dobrá jako PostgreSQL nebo Firebird.
Budeme potřebovat balíčky MySQL a php-mysql (podpora MySQL pro PHP). Vyžadované závislosti jsou:
perl-CGI
perl-DBI
libmysql12
MySQL-client
MySQL-common
perl-Mysql
Většina balíčků je opět na 1. CD.
Po skončení instalace databázový stroj spustíme. K tomu použijeme už dobře známý (a pouze rootovi přístupný) příkaz na ovládání služeb service. Zadáme service mysql start [Enter]. Odpověď by měla být "Startuji MySQL server [ OK ]".
Místo service můžeme použít příkaz mysqld_safe & [Enter] (ampersand je tam proto, aby se služba spustila na pozadí). V tom případě dostaneme hlášku: Starting mysqld daemon with databases from /var/lib/mysql a dáme [Enter].
Jsme nedůvěřiví a tak zkusíme, jestli databázový server opravdu jede: mysqladmin -p ping [Enter], na žádost o heslo "Enter password:" dáme jen [Enter]. Měli bychom obdržet: "mysqld is alive". Opět můžeme použít i service mysql status.
Ukončit běh MySQL lze příkazem mysqladmin -p shutdown [Enter] nebo překvapivě service mysql stop.
K administraci a monitorování databáze slouží konzolový program mysql, ale zmíním se o něm jen letmo, protože dále se budeme zabývat phpMyAdminem, s jehož pomocí můžeme většinu věcí udělat mnohem lehčím způsobem.
Program spustíme takto: mysql -u root -p [Enter]. Překlad do lidštiny: "přihlas mě jako superuživatele a zeptej se mě na heslo". Jaké další parametry můžeme použít zjistíme, zadáme-li v konzoli mysql --help [Enter]. Po instalaci je heslo roota prázdné, takže na výzvu odpovíme jen [Enter]. Pozor na to, že root v MySQL nemá se správcem celého systému nic společného. Hesla mohou, a asi by i měla, být různá. Dostane se nám přivítání "Welcome to the MySQL monitor". Nyní můžeme zadávat příkazy vždy ukončené středníkem. Například:
MySQL monitor ukončíme příkazem: quit [Enter].
phpMyAdmin je přesně to co potřebujeme. Zajímavé na něm je, že je tvořen sadou PHP scriptů doplněných nějakým tím Javascriptem. To pro nás znamená následující:
V současné době je k dispozici verze 2.6 (přibližně 2,3 MB v balíčku). Ne, že bychom nemohli použít tu, co jsme dostali s distribucí, ale proč si nedopřát nové vlastnosti a vzhled. Stahujeme tedy z Cookeru (jak vyhledávat je napsáno na stránce s odkazy) a instalujeme zcela obvyklým způsobem urpmi phpMyAdmin-2.6.0-1mdk.noarch.rpm [Enter], nebo z ovládacího centra. Číslo verze se časem samozřejmě může lišit.
Po instalaci je třeba provést nastavení dvojího druhu. Jednak ta základní, která jsou nutná k samotnému běhu programu phpMyAdmin a potom rozšiřující nastavení, která přidávají další funkčnost. Všechno se provádí v konfiguračním souboru config.inc.php. Nebudu to moc rozvádět, jde nám prostě o to, aby to chodilo. Chcete-li tomu víc porozumět, všechno, co potřebujete, je v dokumentaci.
Teď už je možno začít pracovat. Například pokud jste si nezaložili žádného uživatele nebo nezměnili heslo roota, můžete to udělat z titulní stránky kliknutím na položku "Oprávnění". Pokud ale chcete využít všechny schopnosti phpMyAdminu, musíte si ještě trochu zakonfigurovat. Jinak se vám bude dostávat hlášení podobných tomuto: "Některé funkce pro práci s propojenými tabulkami byly vypnuty". Těmi schopnostmi se myslí například udržování přehledu o relacích mezi tabulkami, ukládání oblíbených dotazů, komentáře, tvorba PDF stránek nebo MIME transformace.
Tyto přídavné schopnosti jsou zajištěny takto: phpMyAdmin používá pomocnou databázi, která obsahuje pomocné tabulky. S pomocnou databází nakládá s pomocí pomocného uživatelského účtu. Nastavení všech těchto nápomocně-pomocných věcí musí být uvedeno v konfigurační souboru config.inc.php.
Pokud se v tom chceme šťourat, podíváme se do dokumentace, která se nám nainstalovala do souboru http://localhost/admin/phpMyAdmin/Documentation.html. Tam najdeme popisy struktur pomocných tabulek a další informace. Když to chceme mít rychle za sebou, uděláme následující:
$cfg['Servers'][$i]['pmadb'] = 'pma_db'; $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';. $cfg['Servers'][$i]['relation'] = 'pma_relation';. $cfg['Servers'][$i]['table_info'] = 'pma_table_info';. $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';. $cfg['Servers'][$i]['column_info'] = 'pma_column_info'; $cfg['Servers'][$i]['history'] = 'pma_history'; $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords'; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'nějaké_heslo'; $cfg['Servers'][$i]['auth_type'] = 'cookie'; $cfg['Servers'][$i]['user'] = ''; $cfg['Servers'][$i]['password'] = '';
Uložíme, obnovíme stránku phpMyAdmin v prohlížeči a tím končí naše konfigurační snažení.
Vytvoříme databázi "zkusebni", v ní tabulku "kamaradi", naplníme ji daty a budeme ji prohlížet z našeho scriptu. Samozřejmě nesmíme zapomenout vytvořit také omezeně oprávněného uživatele, s jehož jménem a heslem bude script k databázi přistupovat.
| Sloupec | Typ | Délka | Nulový | Extra | |
| id | INT | not null | auto_increment | označíme políčko primárního klíče | |
| prijmeni | VARCHAR | 30 | not null | ||
| jmeno | VARCHAR | 20 | not null | ||
| VARCHAR | 40 | not null |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
<title>Přístup ke zkušební databázi</title>
</head>
<body>
<?php
@mysql_connect(localhost, web, tajneheslo123)
// místo localhost také můžeme použít IP adresu v uvozovkách
or die("Databáze není dostupná, kontaktujte administrátora: ".mysql_error());
@mysql_select_db(zkusebni) or die("Nelze vybrat databázi: ".mysql_error());
$dotaz = "SELECT prijmeni, jmeno, email FROM kamaradi ORDER BY prijmeni";
$vysledek = mysql_query ($dotaz) or die("Dotaz nelze provést: ".mysql_error());
echo "\n<table>\n";
while ($zaznam = mysql_fetch_array($vysledek, MYSQL_ASSOC))
{
echo "<tr>\n";
foreach ($zaznam as $hodnota)
{ echo "\t<td>$hodnota</td>\n"; }
echo "</tr>\n";
}
echo "</table>\n";
?>
</body>
</html>
| Adámek | Adam | adam@adamek.cz |
| Nováčková | Josefína | josefina@novackova.cz |
| Novák | Josef | josef@novak.cz |
| Žabáková | Žaneta | zaneta@zabakova.cz |
Doufám, že po přečtení tohoto článku nabudete přesvědčení, že každý začátek nemusí být těžký.
Hlavní programy
Informační zdroje
Další databázové stroje
Další nástroje pro administraci MySQL
Verze tohoto dokumentu:
Poslal rellik (rellik zavinac email tecka cz)
Potřeboval bych poradit ohledně změny domovského adresáře. Adresář sem si změnil na /home/rellik/server tuto změnu sem provedl v configu. To funguje. localhost se načítá ze zadaného umístění. Problém mám v tom že pokud tam není nejaký index (index.php / html), tak se zobrazí "přístup odmítnut" Jakou funkci v configu a nebo php.ini mám povolit / změnit aby se mi zobrazil obsah adresáře?
OS: Mandriva 2008.1
Poslal Aleš Tošovský
řešením pravděpodobně bude umístit do httpd.conf direktivy:
<Directory /home/rellik/server> Options +Indexes </Directory>
Další informace najdete v dokumentaci: http://wiki.apache.org/httpd/DirectoryListings