Instalace webového serveru

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Upřesnění, že a2ensite je příkaz ke spouštění v příkazovém řádku.)
(7. phpMyAdmin: Proč phpMyAdmin ze stránek výrobce?)
 
(Nejsou zobrazeny 3 mezilehlé verze 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-10}}
+
{{Based on Debian 11}}
  
 
== Zadání úlohy ==
 
== Zadání úlohy ==
Řádka 145: Řádka 145:
 
  systemctl status mysql
 
  systemctl status mysql
  
* Zabezpečte instalaci MariaDB/MySQL.
+
* Zabezpečte instalaci MariaDB/MySQL (spusťte jako správce, jinak vám nepovolí přihlášení!):
 
  mysql_secure_installation
 
  mysql_secure_installation
 
* Pročtěte si doporučená nastavení a&nbsp;aplikujte je. Nastavte heslo pro uživatele <code>root</code>.
 
* Pročtěte si doporučená nastavení a&nbsp;aplikujte je. Nastavte heslo pro uživatele <code>root</code>.
Řádka 211: Řádka 211:
  
 
=== 7. phpMyAdmin ===
 
=== 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.
+
* phpMyAdmin bychom mohli nainstalovat také jako balíček z&nbsp;repozitářů Debianu. Vyzkoušíme si ale instalaci přímo z&nbsp;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&nbsp;musíme také sami řešit aktualizace.
 +
 
 +
Pro běžnou práci tedy spíše doporučujeme použít instalaci z&nbsp;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&nbsp;repozitářích a&nbsp;je tedy třeba je instalovat přímo od dodavatele.
 +
* Někdy také opravdu potřebujete aktuální verzi a&nbsp;nestačí vám starší verze z&nbsp;repozitářů vaší distribuce.
 +
</div>
  
 
; Stažení a&nbsp;rozbalení archivu
 
; 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>:
+
* Zjistěte nejnovější verzi phpMyAdmina a&nbsp;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/''4.9.2''/phpMyAdmin-''4.9.2''-all-languages.tar.gz
+
  wget ''https''://files.phpmyadmin.net/phpMyAdmin/''X.Y.Z''/phpMyAdmin-''X.Y.Z''-all-languages.tar.gz
 
* Rozbalte archiv:
 
* Rozbalte archiv:
  tar xzf phpMyAdmin-''4.9.2''-all-languages.tar.gz
+
  tar xzf phpMyAdmin-''X.Y.Z''-all-languages.tar.gz
<div class="Poznamka">Nezapomeňte upravit verzi v&nbsp;odkazu podle aktuální nejnovější verze.</div>
+
<div class="Poznamka">Nezapomeňte upravit verzi v&nbsp;odkazu podle aktuální nejnovější verze &mdash; například <code>X.Y.Z &rarr; 4.9.2</code>.</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ářů.)
 
* 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.
 
* Přidělte oprávnění k&nbsp;adresáři pro uživatele <code>www-data</code>, který se automaticky vytvořil.
Řádka 282: Řádka 293:
 
; 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ů ==
Řádka 329: Řádka 337:
  
  
=== PHP routování (mod_rewrite) ===
+
=== Volitelné: 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 343: Řádka 351:
 
* za:
 
* za:
 
  AllowOverride All
 
  AllowOverride All
 
 
  
 
== Další zdroje ==
 
== Další zdroje ==

Aktuální verze z 1. 12. 2021, 07:37


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 11 (Bullseye). 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 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 do mysql 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 klienta mysql
quit
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

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
wget https://files.phpmyadmin.net/phpMyAdmin/X.Y.Z/phpMyAdmin-X.Y.Z-all-languages.tar.gz
tar xzf phpMyAdmin-X.Y.Z-all-languages.tar.gz
Nezapomeňte upravit verzi v odkazu podle aktuální nejnovější verze — například X.Y.Z → 4.9.2.
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>
Povolte port 9000 pro Apache
Listen 80
Listen 9000
Povolte virtuální website
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}


Volitelné: 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