Instalace webového serveru
Linux is like a tee-pee. No gates, no windows, Apache inside...
Zdroj: GeeksAreSexy.net
Obsah |
Zadání úlohy
- Vytvořte virtuální stroj.
- Nainstalujte na virtuální stroj webový server, založený na GNU/Linuxu.
- Vyzkoušejte funkčnost serveru.
- Vyzkoušejte ovládání virtuálního stroje pomocí příkazového řádku.
Teoretický úvod
- Virtualizace počítače
- Webový server
- Vzdálené připojení k počítači
- Správa síťového rozhraní počítače
Nezapomeňte, že některé úkoly smí provádět pouze administrátor systému!!!
Pokud takový úkol spustíte jako běžný uživatel, často chybové hlášení obsahuje text „Permission denied“.
Problém vyřešíte tím, že úkol spustíte pomocí příkazu sudo.
Implementace webového serveru kombinací nástrojů Linux (operační systém), Apache (webový server), MySQL (databáze), phpMyAdmin (nástroj pro správu databáze se někdy označuje zkratkou LAMP.
Postup
1. Vytvoření virtuálního stroje
- Vytvořte nový virtuální stroj (virtuální počítač).
- Zkontrolujte, zda síťová karta v nastavení virtuálního stroje přepnuta do režimu Síťový most a může tedy přistupovat do lokální sítě.
- Vložte do virtuální mechaniky obraz CD Debian pro síťovou instalaci:
- CD stáhněte ze stránek projektu Debian, nebo Vám je dodá vyučující.
- Stahujete-li CD, zvolte „stabilní verzi“ (v roce 2013 Debian Wheezy).
- Máte-li na hostitelském počítači s VirtualBox-em 32-bitový OS, musíte instalovat 32-bitovou verzi. Na 64-bitovém OS můžete použít obě verze.
Používá se označení amd64 pro 64-bitovou verzi (bez ohledu na značku procesoru) nebo i386 pro 32-bitovou verzi.
Doplňující materiály: Debian: návod pro uživatele.
- Pokud pracujete ve VirtualBox-u
2. Instalace serveru
- Spusťte virtuální stroj.
- Po spuštění instalátoru postupujte podle pokynů na obrazovce.
- Název počítače zadejte
vmdb-prijmeni
, doménuvm-oauh.local
.
Doporučení: Nezadávejte heslo pro účet správce, tím se účet vůbec nevytvoří a budete moci používat sudo
.
- Při rozdělování disku stačí použít standardní nastavení.
- Při instalaci zvolte úlohy (POZOR, volte mezerníkem — Enter potvrzuje celou nabídku!):
webový server, SSH server, základní systémové nástroje!
- Zavaděč GRUB umístěte do MBR.
Doplňující materiály: Instalace GNU/Linuxu, Debian: návod pro uživatele.
Ověření funkčnosti
3. Připojení k serveru přes SSH
- Připojte se k virtuálnímu stroji ze svého počítače pomocí SSH (například programem PuTTy resp. příkazem ssh)
- V PuTTy zadejte jako adresu serveru IP adresu vašeho virtuálního stroje.
- IP adresu serveru zjistíte na virt. stroji (serveru) příkazem:
ip a
- Nezapomeňte, že musíte mít přístup k síťovému rozhraní virtuálního stroje, typicky tedy potřebujete mít zapnutý režim „síťový most“.
- Nastavte si v PuTTy správně kódování znaků na UTF-8 (viz Vzdálené připojení k počítači).
Doplňující zdroje: Správa síťového rozhraní počítače, Vzdálené připojení k počítači
4. Vyzkoušejte funkčnost webového serveru
- Přímo ze serveru
-
lynx http://localhost
(Předtím si musíte nainstalovat balíček lynx obsahující řádkový prohlížeč webových stránek lynx. Prohlížeč lynx ukončíte klávesou q.)
-
- A pak z vašeho počítače na OA (z hostitelských Windows)
- Do běžného prohlížeče zadejte adresu:
http://IP-adresa-serveru
Pokud nefunguje, ověřte, že máte virtuální stroj připojený do venkovní sítě (síťový most).
- Do běžného prohlížeče zadejte adresu:
- Vyzkoušejte změnu stránek: dopište na úvodní stránku svoje jméno
- Do souboru /var/www/html/index.html dopište jako nadpis úrovně 1 text:
„Tento server vytvořil “ a vaše jméno. - Pro úpravu souboru použijte například editor nano.
- Do souboru /var/www/html/index.html dopište jako nadpis úrovně 1 text:
Doplňující materiály: Instalace software v GNU/Linuxu
Dokončení úlohy
5. Databáze a phpMyAdmin
- Instalace většiny balíčků již proběhla v rámci instalace serveru.
- Doinstalujte balíčky:
-
mariadb-server
-
mariadb-client
- (volitelně)
php5-gd
(PHP-GD je knihovna pro manipulaci s obrázky v PHP)
-
- Zabezpečte instalaci MariaDB/MySQL.
mysql_secure_installation
- Nastavte:
Change the root password? [Y/n] y New password: heslo pro uživatele root Re-enter new password: heslo znovu Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Heslo uživatele root
nenechávejte prázdné! Je to zásadní bezpečnostní chyba!
Pokud jste nenastavili při instalaci MySQL
heslo uživatele root
, můžete ho nastavit jako správce počítače příkazem:
mysql -u root SET PASSWORD = PASSWORD('nové heslo');
- Vytvořte účet správce databáze
- Novější verze phpMyAdminu vám nepovolí připojení na uživatelský účet
root
. Musíme tedy vytvořit jiný účet. - Připojte se z příkazového řádku do databáze
mysql
:
sudo mysql --user=root mysql -p
- Můžete vypsat všechny uživatelské účty:
SELECT user, password FROM user;
- Přidejte nový uživatelský účet
spravce
:
CREATE USER 'spravce'@'localhost' IDENTIFIED BY 'heslo-spravce'; GRANT ALL PRIVILEGES ON *.* TO 'spravce'@'localhost' WITH GRANT OPTION;
- Aktualizujte uživatelská oprávnění:
FLUSH PRIVILEGES;
- Ukončete práci s databází a vyzkoušejte se přihlásit pod novým uživatelským účtem:
quit mysql -u spravce -p (zde již zadejte nově vytvořené heslo pro účet spravce)
- Tento nově vytvořený uživatel bude mít všechna oprávnění stejně jako uživatel
root
!
Dodatečná změna hesla pro uživatele uzivatel
:
mysql -u spravce -p (zde zadejte heslo pro účet spravce) SET PASSWORD FOR uzivatel = PASSWORD('nové heslo');
- Volitelně — vytvoření běžného uživatelského účtu
- Obdobně jako správcovský účet můžete v konzoli MySQL vytvořit uživatelský účet běžného uživatele s právy pouze pro jednu databázi:
GRANT INSERT, UPDATE, DELETE, SELECT ON nazevdb.* TO uzivatel@'%' IDENTIFIED BY 'heslo-uzivatele';
- Databázi
nazevdb
si můžete vytvořit příkazemCREATE DATABASE
nebo pomocí phpMyAdmina.
- Instalace
phpMyAdmin
- Nainstalujte balíček:
-
phpmyadmin
-
- Jako přednastavený server použijte Apache.
- Databázi nastavte pomocí dbconfig-common.
- Balík se vás poté ptá (jednou) na administrátorské heslo do databáze, aby si mohl upravit nastavení databáze a vytvořit databázi. (Administrátorské heslo do databáze jste nastavovali v předchozím kroku při instalaci MySQL.)
- Následně nastavujete aplikační heslo pro phpMyAdmin, tedy heslo, které kterým se k databázi bude identifikovat phpMyAdmin.
- Restartujte webový server (Apache)
systemctl restart apache2.service
Doplňující materiály: Instalace software v GNU/Linuxu
6. Vyzkoušejte komunikaci Apache s modulem PHP
- Vytvořte testovací stránku v jazyce PHP:
- do souboru /var/www/html/test.php zapište PHP kód:
<?php phpinfo(); ?>
- do souboru /var/www/html/test.php zapište PHP kód:
- Testovací stránku zobrazte v prohlížeči na adrese:
http://IP-adresa-serveru/test.php
7. Vyzkoušejte phpMyAdmin
- Do prohlížeče na Vašem počítači zadejte:
http://IP-adresa-serveru/phpmyadmin
- Přihlašujete se jako uživatel spravce s heslem, které jste si nastavili do databáze MySQL.
Další uživatelské účty si můžete vytvořit.
- Viz také
Nastavení přístupu pro kopírování souborů
8. Nastavte přístup do složky s webem
- Nastavte vlastnictví složky /var/www/html svému uživateli tak, abyste do ní mohli kopírovat soubory.
chown -R vaseuzivatelkejmeno /var/www/html
9. Vyzkoušejte připojení přes WinSCP
- Spusťte na hostitelském počítači program WinSCP a připojte se pomocí SCP k vašemu virtuálnímu stroji.
- V pravém okně najděte složku /var/www/html.
- Do složky by nyní měly jít kopírovat soubory, obrázky, webové stránky atd.
Vypnutí stroje
- Virtuální stroj vypnete příkazem: (viz Základy CLI)
systemctl poweroff
Další vhodná rozšíření
Rozšíření PHP
- Můžete doinstalovat celou řadu dalších rozšíření PHP podle toho, jaké aplikace chcete spouštět.
- Příklady rozšíření:
-
php-mbstring
-
php-zip
-
php-gd
... manipulace s obrázky -
php-xml
-
php-pear
-
php-gettext
-
php-cgi
-
- Lze instalovat více rozšíření naráz, například:
apt install php-{mbstring,zip,gd,xml,pear,gettext,cgi}
PHP routování (mod_rewrite)
- Pokud potřebujete na webu routování, je potřeba ho povolit.
- Povolte modul
mod_rewrite
Apache
sudo a2enmod rewrite
- Povolte nastavení
.htaccess
- Upravte soubor
/etc/apache2/sites-available/default
. - V sekci:
<Directory /var/www/>
- Nahraďte:
AllowOverride None
- za:
AllowOverride All