Instalace webového serveru
(Vykomentována varianta s cizím serverem, odstraněna instalace Joomly (ponechána v samostatné stránce)) |
(→7. phpMyAdmin: Proč phpMyAdmin ze stránek výrobce?) |
||
(Není zobrazeno 70 mezilehlých verzí od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | [[Category:VSE]] | + | [[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Admin]][[Category:Linux]][[Category:Návody]][[Category:Úlohy]][[Category:Databáze]] |
− | [[Category:OSY]] | + | |
− | [[Category:Admin]] | + | |
− | [[Category:Linux]] | + | |
− | [[Category: | + | |
+ | <div class="Motto"> | ||
+ | '''Linux is like a tee-pee. No gates, no windows, Apache inside...''' | ||
− | + | Zdroj: [http://www.geeksaresexy.net/2010/11/25/linux-is-like-a-tipi-apache-picture/ GeeksAreSexy.net] | |
+ | </div> | ||
− | = | + | <div class="Upozorneni">Tento návod je určen pro rychlou a jednoduchou instalaci webového serveru (LAMP) v rámci výuky na oboru Informační technologie na [http://www.oauh.cz/ Obchodní akademii Uherské Hradiště].</div> |
− | + | ||
− | + | {{Based on Debian 11}} | |
− | + | == Zadání úlohy == | |
− | == | + | * [[VirtualBox_%E2%80%94_z%C3%A1klady_ovl%C3%A1d%C3%A1n%C3%AD#Vytvo.C5.99en.C3.AD_virtu.C3.A1ln.C3.ADho_po.C4.8D.C3.ADta.C4.8De | 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 == | == Teoretický úvod == | ||
+ | * Virtualizace počítače | ||
+ | * Webový server | ||
* [[Vzdálené připojení k počítači]] | * [[Vzdálené připojení k počítači]] | ||
* [[Správa síťového rozhraní počítače]] | * [[Správa síťového rozhraní počítače]] | ||
− | = | + | <div class="Upozorneni"> |
− | + | Nezapomeňte, že některé úkoly smí provádět pouze administrátor systému!!!<br /> | |
+ | 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 <tt>sudo</tt>. | ||
+ | </div> | ||
− | = | + | <div class="Poznamka"> |
+ | 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''. | ||
+ | </div> | ||
− | === 1. | + | |
+ | |||
+ | == Instalace webového serveru == | ||
+ | |||
+ | |||
+ | === 1. Vytvoření virtuálního stroje === | ||
<!--; Varianta vlastní virtuální stroj--> | <!--; Varianta vlastní virtuální stroj--> | ||
− | * | + | * 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 [http://www.debian.org/CD/http-ftp/#stable projektu Debian], nebo Vám je dodá vyučující. | |
− | + | ** Stahujete-li CD, zvolte „stabilní verzi“ (v roce 2020 Debian 10 Buster). | |
+ | ** 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.<br /> Používá se označení <tt>amd64</tt> pro 64-bitovou verzi (bez ohledu na značku procesoru) nebo <tt>i386</tt> pro 32-bitovou verzi. | ||
+ | |||
+ | Doplňující materiály: [[Debian: návod pro uživatele]]. | ||
+ | |||
+ | ; Pokud pracujete ve VirtualBox-u | ||
+ | * [[VirtualBox — základy ovládání|Základy ovládání VirtualBox-u...]] | ||
+ | |||
=== 2. Instalace serveru === | === 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 <code>vmdb-prijmeni</code>, doménu <code>vm-oauh.local</code>. | |
− | + | <div class="Poznamka"> | |
− | + | Doporučení: Nezadávejte heslo pro účet správce, tím se účet vůbec nevytvoří a budete moci používat <code>sudo</code>. | |
+ | </div> | ||
+ | |||
+ | * Při rozdělování disku stačí použít standardní nastavení. | ||
+ | |||
+ | * Na obrazovce ''Výběr programů'' POZOR!!! | ||
+ | * Volby vybíráte ''mezerníkem'' — Enter potvrzuje celou nabídku! | ||
+ | * Zvolte úlohy: | ||
+ | *# webový server, | ||
+ | *# SSH server, | ||
+ | *# základní systémové nástroje. | ||
+ | * Naopak '''zrušte zaškrtnutí''' u: | ||
+ | *# Debian Desktop Environment (to by instalovalo grafické uživatelské rozhraní) | ||
+ | <div class="Varovani">Neinstalujte grafické rozhraní! Jeho instalace zabere spoustu času a je vám k ničemu. Pokud jste ho omylem zvolili, restartujte virtuální stroj a začněte od začátku. Vyjde to i tak časově lépe!</div> | ||
+ | <div class="Poznamka">Pokud už máte nainstalovaný Linux, můžete úlohy doinstalovat pomocí programu <code>tasksel</code>.</div> | ||
+ | |||
+ | * Zavaděč GRUB umístěte do MBR. | ||
+ | |||
+ | Doplňující materiály: [[Instalace GNU/Linuxu]], [[Debian: návod pro uživatele]]. | ||
<!-- | <!-- | ||
Řádka 61: | Řádka 94: | ||
--> | --> | ||
− | == Instalace | + | |
+ | |||
+ | == Ověření funkčnosti == | ||
+ | |||
+ | |||
+ | === 3. Připojení k serveru přes SSH === | ||
+ | * [[Vzdálené připojení k počítači|Připojte se k virtuálnímu stroji]] ze svého počítače pomocí SSH (například programem PuTTy resp. příkazem <tt>ssh</tt>) | ||
+ | * 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ý [[VirtualBox_%E2%80%94_z%C3%A1klady_ovl%C3%A1d%C3%A1n%C3%AD#Nastaven.C3.AD_p.C5.99.C3.ADstupu_k_s.C3.ADti|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]]). | ||
+ | |||
+ | <div class="Poznamka">Nyní již můžete okno virtuálního stroje minimalizovat, dále již budete pracovat ze svého počítače přes SSH.</div> | ||
+ | |||
+ | 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 | ||
+ | *: <code>lynx http://localhost</code><br />(Předtím si musíte [[Instalace software v GNU/Linuxu|nainstalovat balíček <tt>lynx</tt>]] obsahující řádkový prohlížeč webových stránek <tt>lynx</tt>. Prohlížeč <tt>lynx</tt> 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:<br /><code>http://<em>IP-adresa-serveru</em></code><br />Pokud nefunguje, ověřte, že máte virtuální stroj připojený do venkovní sítě (síťový most). | ||
+ | * Vyzkoušejte změnu stránek: dopište na úvodní stránku svoje jméno | ||
+ | *: Do souboru <tt>/var/www/html/index.html</tt> dopište jako nadpis úrovně 1 text:<br/>„Tento server vytvořil “ a vaše jméno. | ||
+ | *: Pro [[Základy CLI#Editace souborů|úpravu souboru použijte například editor <tt>nano</tt>]]. | ||
+ | |||
+ | Doplňující materiály: [[Instalace software v GNU/Linuxu]] | ||
+ | |||
+ | <div class="Priklad">Doplňující otázka: Fungují české znaky??? Jak opravit kódování češtiny, pokud by to bylo potřeba?</div> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Dokončení úlohy == | ||
+ | * HTTP server je nainstalovaný. Statické HTML či stránky s JavaScriptem byste nyní už mohli spouštět. | ||
+ | * Webové aplikace dnes ale vyžadují obvykle další součásti — PHP a databázi. | ||
+ | |||
+ | |||
+ | === 5. Databáze === | ||
<!-- ; Varianta vlastní virtuální stroj--> | <!-- ; Varianta vlastní virtuální stroj--> | ||
− | * | + | * Instalace většiny balíčků již proběhla v rámci instalace serveru. |
− | * | + | * Doinstalujte balíčky pro databázi MariaDB: |
− | ** | + | ** <code>mariadb-server</code> |
− | ** phpmyadmin | + | ** <code>mariadb-client</code> |
+ | |||
+ | <div class="Poznamka">MariaDB je svobodná náhrada MySQL. Má stejné ovládání, ale není spravována firmou Oracle a v posledních letech je proto populárnější.</div> | ||
+ | |||
+ | * Ověřte, že služba MariaDB/MySQL běží: | ||
+ | systemctl status mysql | ||
+ | |||
+ | * Zabezpečte instalaci MariaDB/MySQL (spusťte jako správce, jinak vám nepovolí přihlášení!): | ||
+ | mysql_secure_installation | ||
+ | * Pročtěte si doporučená nastavení a aplikujte je. Nastavte heslo pro uživatele <code>root</code>. | ||
+ | |||
+ | <div class="Varovani"> | ||
+ | Heslo uživatele <code>root</code> nenechávejte prázdné! Je to zásadní bezpečnostní chyba! | ||
+ | </div> | ||
+ | <div class="Poznamka"> | ||
+ | Pokud jste heslo uživatele <code>root</code> nenastavili, nebo nastavili a zapomněli, můžete ho nastavit jako správce počítače takto: | ||
+ | |||
+ | # S oprávněními správce se přihlašte do <code>mysql</code> jako ''root'': | ||
+ | mysql -u root | ||
+ | |||
+ | # Změňte si heslo v databázi: | ||
+ | SET PASSWORD = PASSWORD('<em>nové heslo</em>'); | ||
+ | |||
+ | # Vyžádejte si nové načtení hesel z databáze: | ||
+ | FLUSH PRIVILEGES; | ||
+ | |||
+ | # Ukončete klienta <code>mysql</code> | ||
+ | quit | ||
+ | </div> | ||
+ | |||
+ | ; Vytvořte účet správce databáze | ||
+ | * Novější verze phpMyAdminu vám nepovolí připojení na uživatelský účet <code>root</code>. Musíme tedy vytvořit jiný účet. | ||
+ | * Připojte se z příkazového řádku do databáze <code>mysql</code>: | ||
+ | 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 <code>spravce</code>: | ||
+ | CREATE USER 'spravce'@'localhost' IDENTIFIED BY '<em>heslo-spravce</em>'; | ||
+ | GRANT ALL PRIVILEGES ON *.* TO 'spravce'@'localhost' WITH GRANT OPTION; | ||
+ | <div class="Poznamka">Tímto jsme uživateli ''spravce'' povolili přístup do všech databází stejně jako u účtu ''root''. Na produkčních serverech bychom mohli chtít oprávnění omezit.</div> | ||
+ | * 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 <code>root</code>! | ||
+ | |||
+ | <div class="Priklad"> | ||
+ | ; 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 <code>nazevdb</code> si můžete vytvořit příkazem <code>CREATE DATABASE</code> nebo pomocí phpMyAdmina. | ||
+ | |||
+ | * Dodatečná změna hesla uživatele <code>uzivatel</code> — pokud heslo zapomenete: | ||
+ | mysql -u <em>spravce</em> -p | ||
+ | ''(zde zadejte heslo pro účet ''spravce'')'' | ||
+ | SET PASSWORD FOR ''uzivatel'' = PASSWORD('<em>nové heslo</em>'); | ||
+ | </div> | ||
+ | |||
+ | === 6. PHP === | ||
+ | * Nainstalujte PHP a balíčky s knihovnami (všechny balíčky můžete instalovat v jednom kroku): | ||
+ | php php-json php-mbstring php-zip php-gd php-xml php-curl php-mysql | ||
+ | |||
+ | ; Vyzkoušejte komunikaci Apache s modulem PHP | ||
+ | * Vytvořte testovací stránku v jazyce PHP: | ||
+ | ** do souboru <tt>/var/www/html/test.php</tt> zapište PHP kód:<br /><code><?php phpinfo(); ?></code> | ||
+ | * Testovací stránku zobrazte v prohlížeči na adrese:<br /><code>http://<em>IP-adresa-serveru</em>/test.php</code> | ||
+ | |||
+ | Doplňující materiály: [[Instalace software v GNU/Linuxu]]<!-- kvůli instalaci aplikací--> | ||
+ | |||
+ | |||
+ | === 7. phpMyAdmin === | ||
+ | * phpMyAdmin bychom mohli nainstalovat také jako balíček z repozitářů Debianu. Vyzkoušíme si ale instalaci přímo z instalačního balíčku dodavatele. Tím také získáme nejaktuálnější verzi. | ||
+ | |||
+ | <div class="Varovani"> | ||
+ | Upozorňujeme, že při instalaci aplikace ručně musíme následně sami ověřit kompatibilitu aplikace se zbytkem systému a musíme také sami řešit aktualizace. | ||
+ | |||
+ | Pro běžnou práci tedy spíše doporučujeme použít instalaci z balíčku <code>phpmyadmin</code> | ||
+ | </div> | ||
+ | <div class="Poznamka"> | ||
+ | Instalaci ze stránek dodavatele zařazujeme jako cvičení zejména proto, že: | ||
+ | * některé aplikace nejsou v repozitářích a je tedy třeba je instalovat přímo od dodavatele. | ||
+ | * Někdy také opravdu potřebujete aktuální verzi a nestačí vám starší verze z repozitářů vaší distribuce. | ||
+ | </div> | ||
+ | |||
+ | ; Stažení a rozbalení archivu | ||
+ | * Zjistěte nejnovější verzi phpMyAdmina a stáhněte odpovídající soubor příkazem <code>wget</code> (za <code>X.Y.Z</code> dosaďte aktuální verzi): | ||
+ | wget ''https''://files.phpmyadmin.net/phpMyAdmin/''X.Y.Z''/phpMyAdmin-''X.Y.Z''-all-languages.tar.gz | ||
+ | * Rozbalte archiv: | ||
+ | tar xzf phpMyAdmin-''X.Y.Z''-all-languages.tar.gz | ||
+ | <div class="Poznamka">Nezapomeňte upravit verzi v odkazu podle aktuální nejnovější verze — například <code>X.Y.Z → 4.9.2</code>.</div> | ||
+ | * Výsledný rozbalený adresář přesuňte do adresáře <code>/usr/share/</code> a dejte mu název <code>phpmyadmin</code>. (Použijte příkaz pro přesun adresáře včetně podadresářů.) | ||
+ | * Přidělte oprávnění k adresáři pro uživatele <code>www-data</code>, který se automaticky vytvořil. | ||
+ | sudo chown -R www-data:www-data /usr/share/phpmyadmin | ||
+ | |||
+ | ; Vytvoření databázového uživatele, pod kterým bude phpMyAdmin pracovat | ||
+ | * Vytváření uživatele v databázi už jsme jednou prováděli. Budeme postupovat stejně: | ||
+ | mysql -u spravce -p | ||
+ | CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
+ | GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY '<span style="font-style:italic">heslo</span>'; | ||
+ | FLUSH PRIVILEGES; | ||
+ | EXIT; | ||
+ | * phpMyAdmin pak bude pracovat pod uživatelským účtem phpmyadmin s heslem ''heslo''.<br />(Nastavte dlouhé bezpečné heslo. Vy pod tímto účtem pracovat nebudete, heslo si tedy nepotřebujete pamatovat do budoucna.) | ||
<!-- | <!-- | ||
* Nastavte Apache: | * Nastavte Apache: | ||
Řádka 72: | Řádka 247: | ||
Include /etc/phpmyadmin/apache.conf | Include /etc/phpmyadmin/apache.conf | ||
--> | --> | ||
− | + | ||
+ | ; Vytvořte konfigurační soubor pro phpMyAdmin v Apache | ||
+ | * Vytvořte konfigurační soubor | ||
+ | /etc/apache2/sites-available/phpmyadmin.conf | ||
+ | * Zapište do konfiguračního souboru obsah | ||
+ | <VirtualHost *:9000> | ||
+ | ServerAdmin spravce@localhost | ||
+ | DocumentRoot /usr/share/phpmyadmin | ||
+ | |||
+ | <Directory /usr/share/phpmyadmin> | ||
+ | Options Indexes FollowSymLinks | ||
+ | AllowOverride none | ||
+ | Require all granted | ||
+ | </Directory> | ||
+ | ErrorLog ${APACHE_LOG_DIR}/error_phpmyadmin.log | ||
+ | CustomLog ${APACHE_LOG_DIR}/access_phpmyadmin.log combined | ||
+ | </VirtualHost> | ||
+ | |||
+ | ; Povolte port 9000 pro Apache: | ||
+ | * v souboru: <code>/etc/apache2/ports.conf</code> najděte řádek: | ||
+ | Listen 80 | ||
+ | * a přidejte pod něj nový řádek: | ||
+ | Listen 9000 | ||
+ | |||
+ | ; Povolte virtuální website: | ||
+ | * V příkazovém řádku spusťte: | ||
+ | a2ensite phpmyadmin.conf | ||
+ | |||
+ | ; Restartujte službu Apache | ||
+ | * Restartujte webový server (Apache) | ||
+ | systemctl restart apache2 | ||
+ | |||
<!-- | <!-- | ||
; Varianta vzdálený počítač | ; Varianta vzdálený počítač | ||
Řádka 79: | Řádka 285: | ||
--> | --> | ||
− | + | Doplňující materiály: [[Instalace software v GNU/Linuxu]]<!-- kvůli instalaci aplikací--> | |
− | * | + | |
− | * | + | ; Vyzkoušejte phpMyAdmin |
− | * | + | * Do prohlížeče na Vašem počítači zadejte: |
− | *: | + | http://<em>IP-adresa-serveru</em>:9000 |
+ | * Přihlašujete se jako uživatel ''spravce'' s heslem, které jste si nastavili do databáze MySQL.<br />Další uživatelské účty si můžete vytvořit. | ||
+ | ; Viz také: | ||
+ | * [https://linuxhint.com/install_phpmyadmin_debian_10/ https://linuxhint.com/install_phpmyadmin_debian_10/] | ||
+ | |||
+ | == Nastavení přístupu pro kopírování souborů == | ||
+ | * Webové stránky bychom mohli psát přímo na serveru. | ||
+ | * Ale mnohem pohodlnější bude psát je na lokální počítači a na server je poté nahrát. | ||
+ | * Potřebujeme si tedy vytvořit přístup na server pro kopírování souborů. | ||
+ | |||
+ | |||
+ | === 8. Nastavte přístup do složky s webem === | ||
+ | * Nastavte vlastnictví složky <tt>/var/www/html</tt> 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 <tt>/var/www/html</tt>. | ||
+ | * 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í: | ||
+ | ** <code>php-mbstring</code> | ||
+ | ** <code>php-zip</code> | ||
+ | ** <code>php-gd</code> ... manipulace s obrázky | ||
+ | ** <code>php-xml</code> | ||
+ | ** <code>php-pear</code> | ||
+ | ** <code>php-gettext</code> | ||
+ | ** <code>php-cgi</code> | ||
+ | * Lze instalovat více rozšíření naráz, například: | ||
+ | apt install php-{mbstring,zip,gd,xml,pear,gettext,cgi} | ||
+ | |||
+ | |||
+ | === Volitelné: PHP routování (mod_rewrite) === | ||
+ | * Pokud potřebujete na webu routování, je potřeba ho povolit. | ||
+ | |||
+ | ; Povolte modul <code>mod_rewrite</code> Apache: | ||
+ | sudo a2enmod rewrite | ||
+ | |||
+ | ; Povolte nastavení <code>.htaccess</code>: | ||
+ | * Upravte soubor <code>/etc/apache2/sites-available/default</code>. | ||
+ | * V sekci: | ||
+ | <Directory /var/www/> | ||
+ | * Nahraďte: | ||
+ | AllowOverride None | ||
+ | * za: | ||
+ | AllowOverride All | ||
+ | |||
+ | == Další zdroje == | ||
+ | * [https://wiki.debian.org/LaMP Wiki Debian.org → LAMP] | ||
+ | * [https://linuxhint.com/install_phpmyadmin_debian_10/ LinuxHint → Install phpMyAdmin on Debian 10] | ||
+ | * [https://kifarunix.com/install-phpmyadmin-on-debian-10-buster/ KifarUnix.com → Install phpMyAdmin on Debian 10 Buster] | ||
+ | * [https://kifarunix.com/install-lamp-stack-with-mariadb-10-on-debian-10-buster/ KifarUnix.com → Install LAMP stack with MariaDB 10 on Debian 10 Buster] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | == Navazující návody == |
− | * [ | + | * [[Vzdálený přístup k databázi]] |
+ | * [[Sdílení souborů pomocí Samby]] | ||
+ | * [[Instalace RS Joomla]] |
Aktuální verze z 1. 12. 2021, 07:37
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.
Instalace webového serveru
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 2020 Debian 10 Buster).
- 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í.
- Na obrazovce Výběr programů POZOR!!!
- Volby vybíráte mezerníkem — Enter potvrzuje celou nabídku!
- Zvolte úlohy:
- webový server,
- SSH server,
- základní systémové nástroje.
- Naopak zrušte zaškrtnutí u:
- Debian Desktop Environment (to by instalovalo grafické uživatelské rozhraní)
tasksel
.- 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
- HTTP server je nainstalovaný. Statické HTML či stránky s JavaScriptem byste nyní už mohli spouštět.
- Webové aplikace dnes ale vyžadují obvykle další součásti — PHP a databázi.
5. Databáze
- Instalace většiny balíčků již proběhla v rámci instalace serveru.
- Doinstalujte balíčky pro databázi MariaDB:
-
mariadb-server
-
mariadb-client
-
- Ověřte, že služba MariaDB/MySQL běží:
systemctl status mysql
- Zabezpečte instalaci MariaDB/MySQL (spusťte jako správce, jinak vám nepovolí přihlášení!):
mysql_secure_installation
- Pročtěte si doporučená nastavení a aplikujte je. Nastavte heslo pro uživatele
root
.
Heslo uživatele root
nenechávejte prázdné! Je to zásadní bezpečnostní chyba!
Pokud jste heslo uživatele root
nenastavili, nebo nastavili a zapomněli, můžete ho nastavit jako správce počítače takto:
# S oprávněními správce se přihlašte domysql
jako root: mysql -u root # Změňte si heslo v databázi: SET PASSWORD = PASSWORD('nové heslo'); # Vyžádejte si nové načtení hesel z databáze: FLUSH PRIVILEGES; # Ukončete klientamysql
quit
- 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
!
- 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.
- Dodatečná změna hesla uživatele
uzivatel
— pokud heslo zapomenete:
mysql -u spravce -p (zde zadejte heslo pro účet spravce) SET PASSWORD FOR uzivatel = PASSWORD('nové heslo');
6. PHP
- Nainstalujte PHP a balíčky s knihovnami (všechny balíčky můžete instalovat v jednom kroku):
php php-json php-mbstring php-zip php-gd php-xml php-curl php-mysql
- 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
Doplňující materiály: Instalace software v GNU/Linuxu
7. phpMyAdmin
- phpMyAdmin bychom mohli nainstalovat také jako balíček z repozitářů Debianu. Vyzkoušíme si ale instalaci přímo z instalačního balíčku dodavatele. Tím také získáme nejaktuálnější verzi.
Upozorňujeme, že při instalaci aplikace ručně musíme následně sami ověřit kompatibilitu aplikace se zbytkem systému a musíme také sami řešit aktualizace.
Pro běžnou práci tedy spíše doporučujeme použít instalaci z balíčku phpmyadmin
Instalaci ze stránek dodavatele zařazujeme jako cvičení zejména proto, že:
- některé aplikace nejsou v repozitářích a je tedy třeba je instalovat přímo od dodavatele.
- Někdy také opravdu potřebujete aktuální verzi a nestačí vám starší verze z repozitářů vaší distribuce.
- Stažení a rozbalení archivu
- Zjistěte nejnovější verzi phpMyAdmina a stáhněte odpovídající soubor příkazem
wget
(zaX.Y.Z
dosaďte aktuální verzi):
wget https://files.phpmyadmin.net/phpMyAdmin/X.Y.Z/phpMyAdmin-X.Y.Z-all-languages.tar.gz
- Rozbalte archiv:
tar xzf phpMyAdmin-X.Y.Z-all-languages.tar.gz
X.Y.Z → 4.9.2
.- Výsledný rozbalený adresář přesuňte do adresáře
/usr/share/
a dejte mu názevphpmyadmin
. (Použijte příkaz pro přesun adresáře včetně podadresářů.) - Přidělte oprávnění k adresáři pro uživatele
www-data
, který se automaticky vytvořil.
sudo chown -R www-data:www-data /usr/share/phpmyadmin
- Vytvoření databázového uživatele, pod kterým bude phpMyAdmin pracovat
- Vytváření uživatele v databázi už jsme jednou prováděli. Budeme postupovat stejně:
mysql -u spravce -p
CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY 'heslo';
FLUSH PRIVILEGES;
EXIT;
- phpMyAdmin pak bude pracovat pod uživatelským účtem phpmyadmin s heslem heslo.
(Nastavte dlouhé bezpečné heslo. Vy pod tímto účtem pracovat nebudete, heslo si tedy nepotřebujete pamatovat do budoucna.)
- Vytvořte konfigurační soubor pro phpMyAdmin v Apache
- Vytvořte konfigurační soubor
/etc/apache2/sites-available/phpmyadmin.conf
- Zapište do konfiguračního souboru obsah
<VirtualHost *:9000> ServerAdmin spravce@localhost DocumentRoot /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options Indexes FollowSymLinks AllowOverride none Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error_phpmyadmin.log CustomLog ${APACHE_LOG_DIR}/access_phpmyadmin.log combined </VirtualHost>
- Povolte port 9000 pro Apache
- v souboru:
/etc/apache2/ports.conf
najděte řádek:
Listen 80
- a přidejte pod něj nový řádek:
Listen 9000
- Povolte virtuální website
- V příkazovém řádku spusťte:
a2ensite phpmyadmin.conf
- Restartujte službu Apache
- Restartujte webový server (Apache)
systemctl restart apache2
Doplňující materiály: Instalace software v GNU/Linuxu
- Vyzkoušejte phpMyAdmin
- Do prohlížeče na Vašem počítači zadejte:
http://IP-adresa-serveru:9000
- 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ů
- Webové stránky bychom mohli psát přímo na serveru.
- Ale mnohem pohodlnější bude psát je na lokální počítači a na server je poté nahrát.
- Potřebujeme si tedy vytvořit přístup na server 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}
Volitelné: 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
Další zdroje
- Wiki Debian.org → LAMP
- LinuxHint → Install phpMyAdmin on Debian 10
- KifarUnix.com → Install phpMyAdmin on Debian 10 Buster
- KifarUnix.com → Install LAMP stack with MariaDB 10 on Debian 10 Buster