Instalace webového serveru

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Doplnění vytvoření správcovského účtu MySQL.)
m (Doplněny zdroje.)
(Není zobrazeno 13 mezilehlých verzí od 1 uživatele.)
Řádka 9: Řádka 9:
 
<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>
 
<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>
  
{{Debian-verze-7-9}}
+
{{Debian-verze-10}}
  
 
== Zadání úlohy ==
 
== Zadání úlohy ==
Řádka 54: Řádka 54:
 
* 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</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>.
Řádka 63: Řádka 63:
 
* Zavaděč GRUB umístěte do MBR.
 
* Zavaděč GRUB umístěte do MBR.
  
Doplňující materiály: [[Debian: návod pro uživatele]].
+
Doplňující materiály: [[Instalace GNU/Linuxu]], [[Debian: návod pro uživatele]].
  
 
<!--
 
<!--
Řádka 104: Řádka 104:
 
Doplňující materiály: [[Instalace software v GNU/Linuxu]]
 
Doplňující materiály: [[Instalace software v GNU/Linuxu]]
  
<div class="Priklad">Doplňující otázka: Proč nefungují české znaky??? Jak to opravit?</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 ==
  
=== 5. Databáze a phpMyAdmin ===
+
=== 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.
 
* Instalace většiny balíčků již proběhla v rámci instalace serveru.
* Doinstalujte balíčky:
+
* Doinstalujte balíčky pro databázi MariaDB:
** <code>mysql-server</code>
+
** <code>mariadb-server</code>
** <code>phpmyadmin</code>
+
** <code>mariadb-client</code>
** (volitelně) <code>php5-gd</code>
+
 
 +
<div class="Poznamka">MariaDB je svobodná náhrada MySQL. Má stejné ovládání, ale není spravována firmou Oracle a&nbsp;v&nbsp;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.
 +
mysql_secure_installation
 +
* Pročtěte si doporučená nastavení a&nbsp;aplikujte je. Nastavte heslo pro uživatele <code>root</code>.
  
<div class="Poznamka">
 
Instalujte všechny balíčky naráz, pak se systém při instalaci MySQL sám zeptá na heslo uživatele <code>root</code>. (Jinak by ho nechal prázdné.)
 
</div>
 
 
<div class="Varovani">
 
<div class="Varovani">
Heslo uživatele <code>root</code> nenechávejte prázdné! Je to zásadní bezpečnostní chyba a <code>phpMyAdmin</code> by vám ani nepovolil přihlášení!
+
Heslo uživatele <code>root</code> nenechávejte prázdné! Je to zásadní bezpečnostní chyba!
 
</div>
 
</div>
 
<div class="Poznamka">
 
<div class="Poznamka">
Pokud jste nenastavili při instalaci <code>MySQL</code> heslo uživatele <code>root</code>, můžete ho nastavit jako správce počítače příkazem:
+
Pokud později zjistíte, že jste nenastavili při instalaci <code>MySQL</code> heslo uživatele <code>root</code>, můžete ho nastavit jako správce počítače příkazem:
  
<code>mysqladmin -u root password ''nové-heslo''</code>
+
mysql -u root
 +
SET PASSWORD = PASSWORD('<em>nové heslo</em>');
 
</div>
 
</div>
  
Řádka 131: Řádka 138:
 
* Novější verze phpMyAdminu vám nepovolí připojení na uživatelský účet <code>root</code>. Musíme tedy vytvořit jiný účet.
 
* 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>:
 
* Připojte se z příkazového řádku do databáze <code>mysql</code>:
  sudo mysql --user=root mysql
+
  sudo mysql --user=root mysql -p
 
* Můžete vypsat všechny uživatelské účty:
 
* Můžete vypsat všechny uživatelské účty:
 
  SELECT user, password FROM user;
 
  SELECT user, password FROM user;
Řádka 142: Řádka 149:
 
  quit
 
  quit
 
  mysql -u spravce -p
 
  mysql -u spravce -p
(Zde již zadejte nové heslo vytvořeného správce.)
+
''(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>!
 
* 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ě &mdash; vytvoření běžného uživatelského účtu  
 
; Volitelně &mdash; vytvoření běžného uživatelského účtu  
 
* Obdobně jako správcovský účet můžete v&nbsp;konzoli MySQL vytvořit uživatelský účet běžného uživatele s&nbsp;právy pouze pro jednu databázi:
 
* Obdobně jako správcovský účet můžete v&nbsp;konzoli MySQL vytvořit uživatelský účet běžného uživatele s&nbsp;právy pouze pro jednu databázi:
Řádka 150: Řádka 158:
 
* Databázi <code>nazevdb</code> si můžete vytvořit příkazem <code>CREATE DATABASE</code> nebo pomocí phpMyAdmina.
 
* 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> &mdash; 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>
  
; Instalace <code>phpMyAdmin</code>
+
=== 6. PHP ===
* Jako přednastavený server použijte Apache.
+
* Nainstalujte PHP a&nbsp;balíčky s&nbsp;knihovnami (všechny balíčky můžete instalovat v&nbsp;jednom kroku):
* Databázi nastavte pomocí <tt>dbconfig-common</tt>.
+
php php-json php-mbstring php-zip php-gd php-xml php-curl php-mysql
* 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 <tt>MySQL</tt>.)
+
 
* Následně nastavujete ''aplikační heslo pro phpMyAdmin'', tedy heslo, které kterým se k databázi bude identifikovat <tt>phpMyAdmin</tt>.
+
; 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>&lt;?php phpinfo(); ?&gt;</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 ===
 +
* Bohužel, v&nbsp;Debianu 10 není zahrnutý balíček s&nbsp;phpMyAdminem. Je tedy třeba aplikaci stáhnout ručně a&nbsp;nainstalovat.
 +
 
 +
; Stažení a&nbsp;rozbalení archivu
 +
* Zjistěte nejnovější verzi phpMyAdmina a&nbsp;stáhněte odpovídající soubor příkazem <code>wget</code>:
 +
wget ''https''://files.phpmyadmin.net/phpMyAdmin/''4.9.2''/phpMyAdmin-''4.9.2''-all-languages.tar.gz
 +
* Rozbalte archiv:
 +
tar xzf phpMyAdmin-''4.9.2''-all-languages.tar.gz
 +
<div class="Poznamka">Nezapomeňte upravit verzi v&nbsp;odkazu podle aktuální nejnovější verze.</div>
 +
* Výsledný rozbalený adresář přesuňte do adresáře <code>/usr/share/</code> a&nbsp;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&nbsp;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&nbsp;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&nbsp;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 161: Řádka 201:
 
     Include /etc/phpmyadmin/apache.conf
 
     Include /etc/phpmyadmin/apache.conf
 
-->
 
-->
 +
 +
; Vytvořte konfigurační soubor pro phpMyAdmin v&nbsp;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 &mdash; do souboru: <code>/etc/apache2/ports.conf</code> najděte řádek:
 +
Listen 80
 +
* Přidejte pod něj nový řádek:
 +
Listen 9000
 +
 +
* Povolte virtuální website:
 +
a2ensite phpmyadmin.conf
 +
 +
; Restartujte službu Apache
 
* Restartujte webový server (Apache)
 
* Restartujte webový server (Apache)
  /etc/init.d/apache2 restart
+
  systemctl restart apache2
  
 
<!--
 
<!--
Řádka 172: Řádka 239:
 
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í-->
  
=== 6. Vyzkoušejte komunikaci Apache s modulem PHP ===
+
; Vyzkoušejte phpMyAdmin
* Vytvořte testovací stránku v jazyce PHP:
+
** do souboru <tt>/var/www/html/test.php</tt> zapište PHP kód:<br /><code>&lt;?php phpinfo(); ?&gt;</code>
+
* Testovací stránku zobrazte v prohlížeči na adrese:<br /><code>http://<em>IP-adresa-serveru</em>/test.php</code>
+
 
+
=== 7. Vyzkoušejte phpMyAdmin ===
+
 
* Do prohlížeče na Vašem počítači zadejte:  
 
* Do prohlížeče na Vašem počítači zadejte:  
     http://<em>IP-adresa-serveru</em>/phpmyadmin
+
     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.
 
* 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é:
 
; Viz také:
* [https://help.ubuntu.com/community/phpMyAdmin Ubuntu.com&rarr; phpmyadmin]
+
* [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ů ==
Řádka 199: Řádka 260:
 
== Vypnutí stroje ==
 
== Vypnutí stroje ==
 
* Virtuální stroj vypnete příkazem: (viz [[Základy CLI]])
 
* Virtuální stroj vypnete příkazem: (viz [[Základy CLI]])
  shutdown -hP now
+
  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&nbsp;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}
 +
=== 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 ==
 
== Další zdroje ==
* [https://wiki.debian.org/LaMp Wiki Debian.org &rarr; LAMP]
+
* [https://wiki.debian.org/LaMP Wiki Debian.org &rarr; LAMP]
 +
* [https://linuxhint.com/install_phpmyadmin_debian_10/ LinuxHint &rarr; Install phpMyAdmin on Debian 10]
 +
* [https://kifarunix.com/install-phpmyadmin-on-debian-10-buster/ KifarUnix.com &rarr; Install phpMyAdmin 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 ===

Verze z 30. 11. 2019, 17:17


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.


Postup

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.

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;
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