Instalace webového serveru

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Doplněny zdroje.)
(Zpřehlednění návodu a zvýraznění některých bodů (součásti pro instalaci), doplněn tasksel.)
Řádka 35: Řádka 35:
  
  
== Postup ==
+
 
 +
== Instalace webového serveru ==
 +
 
  
 
=== 1. Vytvoření virtuálního stroje ===
 
=== 1. Vytvoření virtuálního stroje ===
Řádka 43: Řádka 45:
 
* Vložte do virtuální mechaniky obraz CD Debian pro síťovou instalaci:
 
* 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í.
 
** 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 2013 Debian Wheezy).  
+
** 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.
 
** 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.
  
Řádka 50: Řádka 52:
 
; Pokud pracujete ve VirtualBox-u
 
; Pokud pracujete ve VirtualBox-u
 
* [[VirtualBox — základy ovládání|Základy ovládání 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.
 
* Spusťte virtuální stroj.
 
* Po spuštění instalátoru postupujte podle pokynů na obrazovce.
 
* 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>.
 
* Název počítače zadejte <code>vmdb-prijmeni</code>, doménu <code>vm-oauh.local</code>.
 
<div class="Poznamka">
 
<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>.
 
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>
 
</div>
 +
 
* Při rozdělování disku stačí použít standardní nastavení.
 
* Při rozdělování disku stačí použít standardní nastavení.
* Při instalaci zvolte úlohy (''POZOR, volte mezerníkem'' &mdash; Enter potvrzuje celou nabídku!): <br />webový server, SSH server, základní systémové nástroje!
+
 
<div class="Varovani">Neinstalujte grafické rozhraní. Jeho instalace zabere spoustu času a je vám k ničemu.</div>
+
* Na obrazovce ''Výběr programů'' POZOR!!!
 +
* Volby vybíráte ''mezerníkem'' &mdash; 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&nbsp;je vám k&nbsp;ničemu. Pokud jste ho omylem zvolili, restartujte virtuální stroj a&nbsp;začněte od začátku. Vyjde to i&nbsp;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.
 
* Zavaděč GRUB umístěte do MBR.
  
Řádka 78: Řádka 93:
 
    aptitude update
 
    aptitude update
 
-->
 
-->
 +
 +
  
 
== Ověření funkčnosti ==
 
== Ověření funkčnosti ==
 +
  
 
=== 3. Připojení k serveru přes SSH ===
 
=== 3. Připojení k serveru přes SSH ===
Řádka 92: Řádka 110:
  
 
Doplňující zdroje: [[Správa síťového rozhraní počítače]], [[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 ===
 
=== 4. Vyzkoušejte funkčnost webového serveru ===
Řádka 105: Řádka 124:
  
 
<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>
 
<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 ==
 
== Dokončení úlohy ==
 +
* HTTP server je nainstalovaný. Statické HTML či stránky s&nbsp;JavaScriptem byste nyní už mohli spouštět.
 +
* Webové aplikace dnes ale vyžadují obvykle další součásti &mdash; PHP a&nbsp;databázi.
 +
  
 
=== 5. Databáze ===
 
=== 5. Databáze ===
Řádka 144: Řádka 168:
 
  CREATE USER 'spravce'@'localhost' IDENTIFIED BY '<em>heslo-spravce</em>';
 
  CREATE USER 'spravce'@'localhost' IDENTIFIED BY '<em>heslo-spravce</em>';
 
  GRANT ALL PRIVILEGES ON *.* TO 'spravce'@'localhost' WITH GRANT OPTION;
 
  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&nbsp;účtu ''root''. Na produkčních serverech bychom mohli chtít oprávnění omezit.</div>
 
* Aktualizujte uživatelská oprávnění:
 
* Aktualizujte uživatelská oprávnění:
 
  FLUSH PRIVILEGES;
 
  FLUSH PRIVILEGES;
Řádka 163: Řádka 188:
 
  SET PASSWORD FOR ''uzivatel'' = PASSWORD('<em>nové heslo</em>');
 
  SET PASSWORD FOR ''uzivatel'' = PASSWORD('<em>nové heslo</em>');
 
</div>
 
</div>
 +
  
 
=== 6. PHP ===
 
=== 6. PHP ===
Řádka 174: Řádka 200:
  
 
Doplňující materiály: [[Instalace software v GNU/Linuxu]]<!-- kvůli instalaci aplikací-->
 
Doplňující materiály: [[Instalace software v GNU/Linuxu]]<!-- kvůli instalaci aplikací-->
 +
  
 
=== 7. phpMyAdmin ===
 
=== 7. phpMyAdmin ===
Řádka 245: Řádka 272:
 
; Viz také:
 
; Viz také:
 
* [https://linuxhint.com/install_phpmyadmin_debian_10/ https://linuxhint.com/install_phpmyadmin_debian_10/]
 
* [https://linuxhint.com/install_phpmyadmin_debian_10/ https://linuxhint.com/install_phpmyadmin_debian_10/]
 +
 +
 +
  
 
== Nastavení přístupu pro kopírování souborů ==
 
== 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&nbsp;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 ===
 
=== 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.
 
* 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
 
  chown -R ''vaseuzivatelkejmeno'' /var/www/html
 +
  
 
=== 9. Vyzkoušejte připojení přes WinSCP ===
 
=== 9. Vyzkoušejte připojení přes WinSCP ===
Řádka 256: Řádka 291:
 
* V pravém okně najděte složku <tt>/var/www/html</tt>.
 
* 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.
 
* Do složky by nyní měly jít kopírovat soubory, obrázky, webové stránky atd.
 +
 +
  
  
Řádka 261: Řádka 298:
 
* Virtuální stroj vypnete příkazem: (viz [[Základy CLI]])
 
* Virtuální stroj vypnete příkazem: (viz [[Základy CLI]])
 
  systemctl poweroff
 
  systemctl poweroff
 +
 +
  
  
 
== Další vhodná rozšíření ==
 
== Další vhodná rozšíření ==
 +
  
 
=== Rozšíření PHP ===
 
=== Rozšíření PHP ===
Řádka 277: Řádka 317:
 
* Lze instalovat více rozšíření naráz, například:
 
* Lze instalovat více rozšíření naráz, například:
 
  apt install php-{mbstring,zip,gd,xml,pear,gettext,cgi}
 
  apt install php-{mbstring,zip,gd,xml,pear,gettext,cgi}
 +
 +
 
=== PHP routování (mod_rewrite) ===
 
=== PHP routování (mod_rewrite) ===
 
* Pokud potřebujete na webu routování, je potřeba ho povolit.
 
* Pokud potřebujete na webu routování, je potřeba ho povolit.
Řádka 291: Řádka 333:
 
* za:
 
* za:
 
  AllowOverride All
 
  AllowOverride All
 +
  
  
Řádka 299: Řádka 342:
 
* [https://kifarunix.com/install-lamp-stack-with-mariadb-10-on-debian-10-buster/ KifarUnix.com &rarr; Install LAMP stack with MariaDB 10 on Debian 10 Buster]
 
* [https://kifarunix.com/install-lamp-stack-with-mariadb-10-on-debian-10-buster/ KifarUnix.com &rarr; Install LAMP stack with MariaDB 10 on Debian 10 Buster]
  
=== Navazující návody ===
+
 
 +
== Navazující návody ==
 
* [[Vzdálený přístup k databázi]]
 
* [[Vzdálený přístup k databázi]]
 
* [[Sdílení souborů pomocí Samby]]
 
* [[Sdílení souborů pomocí Samby]]
 
* [[Instalace RS Joomla]]
 
* [[Instalace RS Joomla]]

Verze z 25. 11. 2020, 22:32


Linux is like a tee-pee. No gates, no windows, Apache inside...

Zdroj: GeeksAreSexy.net

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 Obchodní akademii Uherské Hradiště.
Na této stránce používáme distribuci Debian ve verzi 10 Buster. Na ostatních distribucích budou nejspíš k dispozici podobné nebo stejné nástroje a tipy.

Obsah

Zadání úlohy

Teoretický úvod

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

Doplňující materiály: Debian: návod pro uživatele.

Pokud pracujete ve VirtualBox-u


2. Instalace serveru

Doporučení: Nezadávejte heslo pro účet správce, tím se účet vůbec nevytvoří a budete moci používat sudo.

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!
Pokud už máte nainstalovaný Linux, můžete úlohy doinstalovat pomocí programu tasksel.

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

ip a
Nyní již můžete okno virtuálního stroje minimalizovat, dále již budete pracovat ze svého počítače přes SSH.

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

Doplňující materiály: Instalace software v GNU/Linuxu

Doplňující otázka: Fungují české znaky??? Jak opravit kódování češtiny, pokud by to bylo potřeba?



Dokončení úlohy


5. Databáze

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ší.
systemctl status mysql
mysql_secure_installation

Heslo uživatele root nenechávejte prázdné! Je to zásadní bezpečnostní chyba!

Pokud později zjistíte, že 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
sudo mysql --user=root mysql -p
SELECT user, password FROM user;
CREATE USER 'spravce'@'localhost' IDENTIFIED BY 'heslo-spravce';
GRANT ALL PRIVILEGES ON *.* TO 'spravce'@'localhost' WITH GRANT OPTION;
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.
FLUSH PRIVILEGES;
quit
mysql -u spravce -p
(zde již zadejte nově vytvořené heslo pro účet spravce)
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říkazem CREATE 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

php php-json php-mbstring php-zip php-gd php-xml php-curl php-mysql
Vyzkoušejte komunikaci Apache s modulem PHP

Doplňující materiály: Instalace software v GNU/Linuxu


7. phpMyAdmin

Stažení a rozbalení archivu
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.tar.gz
tar xzf phpMyAdmin-4.9.2-all-languages.tar.gz
Nezapomeňte upravit verzi v odkazu podle aktuální nejnovější verze.
sudo chown -R www-data:www-data /usr/share/phpmyadmin
Vytvoření databázového uživatele, pod kterým bude phpMyAdmin pracovat
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;
Vytvořte konfigurační soubor pro phpMyAdmin v Apache
/etc/apache2/sites-available/phpmyadmin.conf
<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>
Listen 80
Listen 9000
a2ensite phpmyadmin.conf
Restartujte službu Apache
systemctl restart apache2


Doplňující materiály: Instalace software v GNU/Linuxu

Vyzkoušejte phpMyAdmin
   http://IP-adresa-serveru:9000
Viz také



Nastavení přístupu pro kopírování souborů


8. Nastavte přístup do složky s webem

chown -R vaseuzivatelkejmeno /var/www/html


9. Vyzkoušejte připojení přes WinSCP



Vypnutí stroje

systemctl poweroff



Další vhodná rozšíření

Rozšíření PHP

apt install php-{mbstring,zip,gd,xml,pear,gettext,cgi}


PHP routování (mod_rewrite)

Povolte modul mod_rewrite Apache
sudo a2enmod rewrite
Povolte nastavení .htaccess
<Directory /var/www/> 
AllowOverride None 
AllowOverride All


Další zdroje


Navazující návody

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje