Novinky

Instalace LAMP a phpMyadmin pro Ubuntu 20.02xx

Přináším návod na instalaci zásobníku LAMP (Linux, Apache, MySQL, PHP) pro Ubuntu 20.04 a vyší verzi, včetně ostatních linuxových operačních systémů. Součástí návodu je také instalace serveru phpMyadmin, nutného pro správu databází na webu.

Tento návod přinášíme na žádost člena našeho webu Kisela.
Nutné podmínky pro instalaci:
1/ Počítejte s tím, že budete instalovat LAMP na localhost svého domácího počítače (PC).
2/ Počítejte s tím, že byste měli pracovat na tomto server Ubuntu 20.04 s účtem "sudo" a tedy bez oprávnění root a základní brány firewallu.
Nutná bezpečnostní varování
Protože pracujeme s aplikací PHP (hostování webových stránek), která může být napadena útokem, nikdy nespouštějte aplikaci phpMyAdmin na vzdálených systémech přes jednoduché připojení HTTP!










*********************************************************

INSTALACE APACHE



1/Nainstalujte Apache pomocí správce balíčků Ubuntu apt v Terminálu zadejte:

sudo su
sudo apt update 
sudo apt install apache2 

Jestliže sudo používáte poprvé, budete vyzváni k zadání hesla uživatele, abyste potvrdili, že máte správná oprávnění ke správě systémových balíčků apt. Budete také vyzváni k potvrzení instalace Apache stisknutím Y, poté ENTER.

2/ Nyní se přesvědčíme, jestli náš webový server Apache běží nebo ne, a to přákazem v terminálu:
$ sudo systemctl status apache2

Po zadání tohoto kódu byste měli dostat výstup. Zelené označení signalizuje, že jdete správnou cestou. Apache2 máte zapnuté. Tedy gratulujeme! Služba Apache je v provozu !!:


3/ Dále je nutné upravit nastavení brány firewall tak, aby umožňovala přenos HTTP. To znamná, musíme povolit webový server Apache, aby pracoval přes UFW firewall. UFW zkratka: U complicated F obranaW všechno. Jde o právu Netfilter firewall, který je koncipován tak, aby bylo snadné použití. Výhoda UFW je v tom, že akceptuje výchozí nastavení ve všech verzích Ubuntu.
POZOR! Ve výchozím nastavení nelze k webovému prohlížeči Apache přistupovat ze vzdálených systémů, pokud jste povolili bránu firewall UFW v Ubuntu 20.04 LTS. Podle níže uvedených kroků musíte povolit porty http a https.
Nejprve pomocí příkazu zobrazte seznam profilů aplikací dostupných ve vašem systému Ubuntu:
Objeví se vám UFW, která má různé použitelné profily. Můžete nejprve nechat si zobrazit seznam aktuálně dostupných profilů aplikací UFW, takže soustíte:
sudo ufw app list 

Měl by se objevit minimálně tento výstup takto:

Každý z těchto profilů znamená:
Apache : Tento profil otevírá pouze port 80(normální, nezašifrovaný webový provoz).
Apache Full : Tento profil otevírá port 80 (normální, nezašifrovaný webový provoz) a port 443 (přenos šifrovaný TLS / SSL).
Apache Secure : Tento profil otevírá pouze port 443(přenos šifrovaný TLS / SSL).
Prozatím je nejlepší povolit pouze připojení na portu 80, protože se jedná o novou instalaci Apache a stále nemáte nakonfigurovaný certifikát TLS / SSL tak, aby umožňoval přenos HTTPS na vašem serveru.
Jak vidíte, aplikace Apache a OpenSSH nainstalovaly profily UFW. Informace o každém profilu a jeho zahrnutých pravidlech můžete vypsat pomocí příkazu ufw app info "Název profilu" .
sudo ufw app info "Apache Full"



4/ Z tohoto kódu (na obrázku) je zřejmé, že „Apache Full“ nám povoluje provozu na portech 80 a 443. To ale není všechno, nyní musíme povolit ještě příchozí přenosy HTTP a HTTPS pro tento Apache profil, což provedeme v Terminálu zadáním dalšího kódu:
sudo ufw allow in "Apache Full"

5/ Změnu následně ověříte:
sudo ufw status 

Nyní byste měli v Terminálu vidět něco takového. Porovnejte si to s vaším výstupem:
Provoz na vašem interním portu 80 je nyní povolen pro váš localhost na domácím PC.
Zbýva teď ověřit, zda je vše správně, a to tak, že do URL řádku vašeho browseru/prohlížeče napišete: http://localhost, nebo http://127.0.0.1
Následně se vám musí zobrazit výchozí webová stránka Ubuntu 20.04 Apache, která je určena pro informační a testovací účely:


*****************************************************

INSTALACE MYSQL



5/ Dále je nutné nainstalovat databázový systém MySQL, abyste mohli ukládat a spravovat data pro svůj web. MySQL je světově osvědčený systém pro správu databází používaný v prostředí PHP. I zde použijeme v Terminálu (CTRL+T) příkaz "apt"
sudo apt install mysql-server 

Vše po instalaci potom potvrdíte zadáním Y a ENTER.

6/ Konfigurace MySQL, velmi důležitá část mastavení

Pro naši novou instalaci MySQL musíme bezpodmínečně nastavit bezpečnostní skript DBMS. Zde nastavíme heslo pro přihlášení root (základního uživatele, tedy vás, jako majitele webu) a po případě další vašěe uživatelé. Tudíž vložte do T (terminálu) kód bezpečnostní ho skriptu pomocí sudo.
POZOR, důležitá informace - ve výchozím nastavení je heslo uživatele root MySQL prázdné! Avšak není příliš chytré používat prázdné heslo pro účet správce databáze, také na localhostu je to nebezpečné. Proto v každém případě server MySQL je dobré a chytré zabezpečit spuštěním následujícím kódem:
sudo mysql_secure_installation

Shora uvedený k=d se nás bude ptát na řadu zabezpeřovacích podmínek:
Čtěte pozorně tyto pokyny:
Po otevření skriptu se objeví otázka jestli chcete nastavit součást „Ověření hesla“, nebo ne. Tato součást umožňuje uživatelům konfigurovat silné heslo pro pověření databáze. Pokud je povoleno, automaticky zkontroluje sílu hesla a vynutí, aby uživatelé nastavili pouze ta dostatečně zabezpečená hesla. Pro vaše pověření otevírat databázi MySQL musíte použít silné a jedinečné heslo. Zdůrazňuji, že musí toto heslo mít nejméně 8 znaků a nutnou podmínkou je, že znaky musí obsahovat také nejméně dva alfanumerické znaky!!!
Ten z vás, kdo nechce nastavovat své heslo, jeho sílu a další možnosti, tedy se nezatěžovat dalším složitějším nastavováním v této části č.7, atiskne jinou libovolnou klávesu! Tím pádem další toto nastavování nepovolí.l Takže vynecháme část ověřování hesla a pokračujme ve zbývajících krocích. Takže se musíte držet nastavením tzv. výzev:
A/ První výzva - ověření, a tedy vytvoření hesla. (Stiskněte y | Y pro Ano).-
B/ Druhá výzva se zeptá, zda chcete nastavit Validate Password Plugin, kterým lze otestovat sílu hesla nových uživatelů MySQL, než je považujete za platné. (Stiskněte y | Y pro Ano).
C/ V třetí výzvě se vás systém zeptá na sílu zadavaného hesla. Zadejte nejsilnější úroveň zásad - zadáním č. 2- to pak bude vyžadovat, aby hesla mělo minimálně osm znaků a obsahovala kombinaci velkých, malých písmen, čísel a také nejméně dvou speciálních znaků.
D/ Na otázku zakázat vzdálené přihlášení rootem? (Stiskněte y | Y pro Ano).
E/ Na otázku odebrat anonymní uživatele? (Stiskněte y | Y pro Ano).
To znamená, že root bude povolen pouze k připojení z 'localhost'. Nikdo tak nemůže uhodnout vaše heslo root ze sítě. (Stiskněte y | Y pro Ano).
E/ Na otázku odebrat testovací databázi a přístup k ní? (Stiskněte y | Y pro Ano).
G/ Na otázku opětovné načtení tabulek oprávnění, které zajistí, že se všechny změny
projeví okamžitě. (Stiskněte y | Y pro Ano).
Úspěch. Hhotovo!
POZNÁMKA: Stisknutím klávesnice "Y" a poté ENTER přijmeme shora nastavené výchozí hodnoty pro všechny následující otázky. Tím odstraníte některé anonymní uživatele a testovací databázi, deaktivujete vzdálená přihlášení root a načtete tato nová pravidla, aby MySQL okamžitě respektoval provedené změny. Po tomto uložení a uzavření skriptu bude vaše instalace MySQL zabezpečena. Nyní bychom měli přejít k vytvoření vyhrazeného uživatele databáze pomocí klienta MySQL.

7/ Až nyní přejdeme k vytvoření jedinečného uživatele MySQL (uživatelského účtu roota a jemu předáme jedinečná oprávnění. Root (tedy vlastníka webu, hlavního administratora) bude mít plná oprávnění nad serverem MySQL, což znamená, že má úplnou kontrolu nad každou databází, tabulkou a uživatelem (registrovaným hostem).
Vyžádama si náš přístup, pomocí hesla, které jsme zadali shora při nastavení root, Zavoláme naše oprávněními k přístupu do kořenového uživatele MySQL přílazrm v T:
mysql -u root -p 

Takhle jsme se tedy dostali k serveru MySQL jako uživatel root administrativní databáze. Objevil se tento výstup na Terminálu:


8/ Určitě budete chtít využít databázi MySQLs aplikací PHP pro populární phpMyAdmin, který podporuje vytváření www stránek. V tomto případě se root i další uživatel může autentizovat pomocí staršího, i když stále zabezpečeného mysql_native_passwordpluginu. A to tímto příkazem v T:
CREATE USER 'Vaše uživatel. jméno'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Vaše heslo'; 

POZNÁNKA: Samozřejmě použijete vaše uživatel. jméno a heslo, které jste zadávali shora při vytvoření mySQL.

9/ Na závěr je třeba spustit FLUSH PRIVILEGES kód příkazu. Dojde k uvolnění celé paměťp, kterou server uložil do mezipaměti v důsledku předchozích realizovaných výzev CREATE USER a rovněž případných GRANTpříkazů, které zde však pro jednoduchost neuvádím. V T uložte a potrďte.
FLUSH PRIVILEGES; 

Klienta MySQL ukončete v otevřeném Terminálu napsáním:
exit 


10/ Abychom měli jistotu, že všechno v instalaci MySQL je OK, provedeme její testování - kontrolu. V každém případě by se tato aplikace měla spustit automaticky. Měli bychom pak vidět následující výstup. Zelená barva značení ukazuje, že je služba funkční. Výborně!!Ověříme to kódem v T:
systemctl status mysql.service 



11/ V případě, že MySQL vám nenastartuje, otevřete jej příkazem v T:
sudo systemctl start mysql


12/ Ještě doporučuji druhou kontrolu-test. Připojit se k databázi pomocí mysqladmin nástroje, Slouží pro spouštění administrativních příkazů. Napříkl v následující ukázce se připojujete jako uživatel MySQL s názvem Kvido ( ), vyzvat k zadání hesla ( ) a vrátit verzi. Takže po zobrazení výzvy zadejte samozřejmě heslo:-u, které jste určili při instalaci mySQL v prvotním nastavení..
sudo mysqladmin -p -u Kvido version 

Objeví se vám podobný výstup jako v naší ukázce:

Tento zápis říká, že To znamená, že MySQL je plně funkční. Gratuluji!

11/ V této fázi instalace nezapomeňte na nastavení DirectoryIndexo Apache! Toto systémové nastavení totiž upřednostňuje zkráceně řečeno otevírání na webu základního souboru "index.html" (uložení zpráv pro návštěvníky při údržbě apod.). Ny však pro drtivou většinu otevírání webů pracujeme se základním souborem "index.php". Musíme proto nutně přikročit k úpravě. Z tohoto důvodu provedeme v základním adresáři disku "C" /etc/apache2/mods-enabled/dir.conf soubor změnu pořadí, ve kterém je index.php soubor uveden v rámci DirectoryIndexsměrnice: V terminálu otevřeme:

sudo gedit /etc/apache2/mods-enabled/dir.conf

Takže v tomto otevřeném souboru "dir.conf" (pomocí editeru gedit nebo nano) editujeme/změníme pořadí souborů podle následujicího vzoru:

V našem editoru poté změny uložíme a soubor zavřeme/ukončíme. Následně Apache2 znovu načteme dalším kódem, aby se změny projevily:
sudo systemctl reload apache2 


****************************************************

Instalace PHP



Takže nyní již máme dokončenou instalaci Apache2 pro poskytnutí obsahu vašeho webu a dále MySQL pro ukládání a správu vašich dat. Nyní půjdeme na instalaci PHP, a to pro nastavení, která zpracuje kód tak, aby zobrazoval dynamický obsah konečnému uživateli. Mimo php budeme ale muset doinstalovat také php-mysqlmodul PHP. Ten je rovněž důležitý protože nám poskytuje spolupráci s databázemi, založenými na MySQL. To znamená, že je bezpodmínečně nutné libapache2-mod-php povolit pro komunikaci s Apache, aby došlo ke zpracování souborů PHP. Nainstalujeme proto základní balíčky PHP, který se automaticky postará také o nainstalování všech potřebných závislosti.

8/ Pro instalaci php 7.4 Ubuntu 20.04 spustíme v Terminálu:

apt update
sudo apt install php7.4
sudo apt install php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y


9/ Pro install php 7.3 Ubuntu

sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json


10/ Pro nstalaci php 7.1 Ubuntu 18.04


sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql


11/ Pro instalaci starších verí php 7.4 Ubuntu
sudo apt update
sudo apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath



Ubuntu spustíme v Terminálu:
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

sudo apt install php libapache2-mod-php php-mysql 


9/ Poté si necháme potvrdit verzi PHP tímto příkazem v Terminálu:
php -v 


10/ Testování zpracování PHP na vašem webovém serveru.
Nyní si ověříme podobně také funkci PHP. K tomu je třeba vytvořit soubor info.php v kořenové složce dokumentu Apache2. Ve většině distribucí systému Linux založených na Debianu bude kořenová složka dokumentů apache obvykle automaticky vytvořena ve tvaru: /var/www/html/ nebo /var/www/ . V Linux/Ubuntu 20.04 LTS a dalších vyšších verzích, je to /var/www/html /.



11/ Aby vám www stránka na localhostu, a vůbec na každém vzdáleném serveru fungovala, vytvořte adresář pro svou_doménu:
sudo mkdir /var/www/your_domain 

Dále přiřaďte vlastnictví adresáře s $USERproměnnou prostředí, která bude odkazovat na vašeho aktuálního uživatele systému:
sudo chown -R $USER:$USER /var/www/your_domain 


12/ Poté otevřete nový konfigurační soubor v sites-availableadresáři Apache pomocí preferovaného editoru příkazového řádku. Zde použijeme gedit:
sudo gedit /etc/apache2/sites-available/your_domain.conf 

Načež do nového, prázdného souboru Vložte následující konfiguraci jednoduchých příkazů:
/etc/apache2/sites-available/your_domain.conf
POZOR: Název domény "your_domain" je dále nahrazen pracovním názvem "nekecamweb" zdejšího serveru nekecamweb.cz.

ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Uložte a zavřete!

13/ Pak i hned zadejte a2ensite pro povolení nového virtuálního hostitele:
sudo a2ensite your_domain 


14/ Následně si ověříme, jestli náš konfigurační soubor neobsahuje syntaktické chyby:
sudo apache2ctl configtest 


15/ Na závěr této části instalace načteme Apache2, provedené změny se okamžitě uloží a projeví:
sudo systemctl reload apache2

Tímto krokem jsme zajistili, že náš nový web je již aktivní, kořenový adresář webu je však prázdný. Přišel čas na test, který nám potvrdí, že virtuální hostitel funguje na této adrese:
/var/www/your_domain/index.html
edit /var/www/your_domain/index.html
Do obsahu v editoru nakopírujeme následující obsah:


Pro testování si vyrobíme soubor info.php v root kořenové složce apache v Terminálu takto (požijeme textový editor gedit, případně nano):
sudo gedit /var/www/html/info.php


Nyní, když máte vlastní umístění pro hostování souborů a složek vašeho webu, vytvoříme testovací skript PHP, který potvrdí, že Apache je schopen zpracovat a zpracovat požadavky na soubory PHP. Vytvořte nový soubor s názvem info.php ve vaší vlastní kořenové složce webu:
sudo gedit /var/www/your_domain/info.php 


Tím se otevře prázdný soubor. Přidejte následující text, který je platným kódem PHP, do souboru:
/var/www/vaše_doména/info.php

11/ Po otevření textového editoru nakopírujte na prázdnou stránku tento zápis kódu:

Samozřejmě soubor poté uložte a zavřete/ukončete stránku.
Následně restartujte službu Apache2, aby se změny projevily, a to následovně v Terminálu:
sudo systemctl restart apache2


12/ Po této instalaci doporučuji ještě vylepšit funkčnost PHP doinstalaci dalších modulů PHP. Předtím se podiváme na seznam dostupných modulů PHP:
sudo apt-cache search php- | less

Seznam je zde, sledujte pomocí kláves se šipkami. Pro ukončení zadejte "q", nebo zavřít/ukončit:

Samozřejmě, že se můžeme podívat na jednotlivé moduly, třeba "php-gd"
V tom případě vložíme do terminálu kód:
sudo apt-cache show php-gd

Samozřejmě také nainstalujeme tento php modul:
sudo apt install php-gd


13/ Otevřete webový prohlížeč a přejděte na adresu URL http: //localhost/info.php. Tato stránka poskytuje podrobné informace o php, jako je verze, API serveru a podrobnosti o všech povolených pluginech php.

14/ V tomto provedení se vám však stránka "info.php" jistě nezobrazí. Zbývá ještě jedna operace. Webový server Apache2 totiž nejprve vyhledá soubor s názvem index.html . My však potřebujeme koncovku "php". Takže je třeba změnit funkci Apache aby v prvé řadě zobrazoval soubory s koncovkou "php". Tuto podmínku splníme tak, že přesuneme index.php na první pozici v souboru dir.conf , viz. následující kód:
sudo gedit /etc/apache2/mods-enabled/dir.conf

Takhle musí vypadat kód pro dir.conf. Upravte!

Nyní, doufám, se vám již zobrazí tato testovací stránka "info.php". Do URL řádku ve vašem prohlížeči napište: http://localhost/info.php



--------------------------------------------------------

Instalace phpMyadmin



PhpMyAdmin, vytvořený v programovacím jazyce PHP, je bezplatný (open source) nástroj, který poskytuje front-end webové rozhraní pro MySQL nebo MariaDB. Umožňuje uživatelům přihlásit se a snadno provádět úkoly správy databáze, jako je správa databází, uživatelé a oprávnění.

1/ V této instalaci předpokládáme, že již máte předem nainstalované všechny nástroje LAMP, jak je uvedeno shota tohoto textu. Další jedinou podmínkou je, že pracujete ve vašem Terminálu (CTRL+T) s příkazem "sudo". Jděte tedy do Terminálu a prostřednictvím následujicího příkazu aktualizujte seznamy balíků.
sudo apt update


2/Balíček pro aplikaci phpMyAdmin je k dispozici v repozitáři všech novějších instalacích Linux, tedy i v Ubuntu 18.04., 20.04xx, proto jej přes správce balíčků APT nainstalujte jednoduše takto:
sudo apt install phpmyadmin


3/ Nyní se vám otevřou v příkazovém řádku příkazy:
a/ Zde vyberte server, kterému dávate přednost. Shora jste již instalovali server Apache, tudíž aktivujte klávesu TAB. Červený výběr přesuňte na možnost 'Apache' . Tedy klikněte na "Tab", "OK" zčervena a klikněte na ENTER:


b/ Dále využijeme nastavení konfigurace pomocí jednoduššího nastavení dbconfig-common. Tím páden zvolte možnost „ Ano “, takže dojde k nastavení balíčku phpMyAdmin přes dbconfig-common. Tedy opět klikněte na "Tab", "OK" zčervena a klikněte na ENTER:


c/ Na závěr vložíme velmi důležité heslo (dvakrát stejné za sebou) pro phpMyAdmin:



4/ Po ukončení této instalace bude nová databáze s názvem phpMyAdmin vytvořena s uživatelským jménem phpMyAdmin .

5/ Dále budeme ověřovat, zda instalace phpmyadmin dopadla korektně a je v provozu. Do T napište:
sudo mysql -u root -p


Nyní tedy máme otevřen vstup do aplikace mysql. Za "mysql>" poté píšeme v T další přílazy.

6/ Nyní tam vložíme zápis "show databases;" tímto vložením:
show databases;


Jak vidíte na dalším obrázku po vstupu do mysql, zobrazil se nám přehled nové databáze "nekecamweb" (vlevo vedle čerbené značky). To je název nového webu pro localhost s nímž budeme pracovat.

7/ Nyní se rovněž u phpmyadin přesvědčíme, zda jeho instalace proběhla úspěšně. Provedeme to příkazem v T, který zjistí, jestli najde přídlučný konfigurační soubor:
file /etc/apache2/conf-enabled/phpmyadmin.conf


Jak opět vidíte na obrázku, záznam vstupu nám sděluje úplnou cestu ke konfiguračnímu souboru a symbolický odkaz, na který směruje. Tzn., můžete si tento soubor zobrazit v textovém editoru a podívat se, jaké konfigurační příkazy zobrazuje, prostě s čím konfigurace pracuje. Pronahlédnutí do konfigurace si zobrazte soubor:
sudo gedit etc/apache2/conf-enabled/phpmyadmin.conf/phpmyadmin.conf



8/ A nastává čas, abychom ověřili správnost instalace přístupem k rozhraní phpMyAdmin. Ve vašem prohlížeči zadejte do URL adresu: http://localhost/phpmyadmin/index.php
. Měla by se vám zobrazit úvodní stránka "Přihlášení" do vaší databáze:

Pro přihlášení a otevření vlastní databáze zadejte "Uživatel: root", a "Heslo (lteré jste stanovili v instalaci MySQL". Otevře se vám vaše databáze (zde vidíte databázi nekecamweb). Je prázdná, protože musíte přidat tabulky databáze (většinou pomocí klienta FTP


Jak vidíte na obrázku v našem případě se zobrazuje vytvořený server pro databázi "nekecamweb". Ještě dodávám, že do URL můžete napsat také jen "http://localhost/phpmyadmin/index.php", případně "http://127.0.0.1/phpmyadmin/index.php", nebo jen "http://127.0.0.1/phpmyadmin/".
To je tedy o instalaci LAMP (Linux, Apache, MySQL, PHP) a phpMyadmin všechno!
Hodně zdaru!
Komu z této instalace něco nefunguje, pište dotazy zde do diskuze.

Připravil: Vícha Květoslav (Kvido)
Kvido duben 17 2021 553 0 komentářů

0 komentářů

Zanechat komentář

H
  • Žádné komentáře nebyly zveřejněny.