LAMP stack je populární platforma pro vývoj webových aplikací s otevřeným zdrojovým kódem, kterou lze použít ke spouštění a nasazování dynamických webových stránek a webových aplikací. Zásobník LAMP se obvykle skládá z webového serveru Apache, databází MariaDB/MySQL, programovacích jazyků PHP/Python/Perl. LAMP je zkratka L inux, M ariaDB/M YSQL, P HP/P ython/P erl. Tento tutoriál popisuje, jak nainstalovat Apache, MySQL, PHP (zásobník LAMP) na server Ubuntu 18.04 LTS.
Nainstalujte Apache, MySQL, PHP (LAMP) Stack na Ubuntu 18.04 LTS
Pro účely tohoto tutoriálu budeme používat následující testovací box Ubuntu.
- Operační systém :Ubuntu 18.04.1 LTS Server Edition
- IP adresa :192.168.225.22/24
1. Nainstalujte webový server Apache
Nejprve aktualizujte server Ubuntu pomocí příkazů:
$ sudo apt update
$ sudo apt upgrade
Dále nainstalujte webový server Apache:
$ sudo apt install apache2
Zkontrolujte, zda webový server Apache běží nebo ne:
$ sudo systemctl status apache2
Ukázkový výstup by byl:
● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago Main PID: 2025 (apache2) Tasks: 55 (limit: 2320) CGroup: /system.slice/apache2.service ├─2025 /usr/sbin/apache2 -k start ├─2027 /usr/sbin/apache2 -k start └─2028 /usr/sbin/apache2 -k start Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server... Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.
Gratulujeme! Služba Apache je v provozu!!
1.1 Upravte firewall tak, aby umožňoval webový server Apache
Ve výchozím nastavení není webový prohlížeč Apache přístupný ze vzdálených systémů, pokud jste povolili bránu firewall UFW v Ubuntu 18.04 LTS. Musíte povolit porty http a https podle následujících kroků.
Nejprve pomocí příkazu:
vypište profily aplikací dostupné ve vašem systému Ubuntu$ sudo ufw app list
Ukázkový výstup:
Available applications: Apache Apache Full Apache Secure OpenSSH
Jak můžete vidět, aplikace Apache a OpenSSH mají nainstalované profily UFW. Informace o každém profilu a jeho zahrnutých pravidlech můžete vypsat pomocí „ufw info aplikace „Název profilu“ příkaz.
Podívejme se na „Apache Full“ profil. Chcete-li to provést, spusťte:
$ sudo ufw app info "Apache Full"
Ukázkový výstup:
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp
Jak vidíte, profil „Apache Full“ obsahuje pravidla umožňující provoz na portech 80 a 443 :
Nyní spusťte následující příkaz pro povolení příchozího provozu HTTP a HTTPS pro tento profil:
$ sudo ufw allow in "Apache Full" Rules updated Rules updated (v6)
Pokud nechcete povolit provoz https, ale pouze provoz http (80), spusťte:
$ sudo ufw app info "Apache"
1.2 Test webového serveru Apache
Nyní otevřete webový prohlížeč a přejděte na stránku http://localhost/ a přejděte na testovací stránku Apache nebo http://IP-Adresa/ .
Testovací stránka Apache
Pokud vidíte obrazovku podobnou výše, můžete jít. Server Apache funguje!
2. Nainstalujte MySQL
Chcete-li nainstalovat MySQL na Ubuntu, spusťte:
$ sudo apt install mysql-server
Ověřte, zda služba MySQL běží nebo ne, pomocí příkazu:
$ sudo systemctl status mysql
Ukázkový výstup:
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago Main PID: 3423 (mysqld) Tasks: 27 (limit: 2320) CGroup: /system.slice/mysql.service └─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server... Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.
Mysql běží!
2.1 Nastavení hesla administrátora databáze (root)
Ve výchozím nastavení je MySQL root uživatelské heslo je prázdné. Musíte zabezpečit server MySQL spuštěním následujícího skriptu:
$ sudo mysql_secure_installation
Budete dotázáni, zda chcete nastavit VALIDATE PASSWORD plugin nebo ne. Tento plugin umožňuje uživatelům konfigurovat silné heslo pro přihlašovací údaje k databázi. Pokud je povoleno, automaticky zkontroluje sílu hesla a vynutí uživatele, aby nastavili pouze ta hesla, která jsou dostatečně bezpečná. Tento plugin můžete bezpečně ponechat deaktivovaný . Pro přihlašovací údaje k databázi však musíte použít silné a jedinečné heslo. Pokud tento plugin nechcete aktivovat, jednoduše stiskněte libovolnou klávesu, abyste přeskočili část ověření hesla a pokračujte ve zbývajících krocích.
Pokud je vaše odpověď Ano , budete požádáni o výběr úrovně ověření hesla.
Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No y
Dostupná ověření hesla jsou nízká , střední a silný . Stačí zadat příslušné číslo (0 pro nízké, 1 pro střední a 2 pro silné heslo) a stisknout klávesu ENTER.
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
Nyní zadejte heslo pro uživatele root MySQL. Mějte prosím na paměti, že musíte použít heslo pro uživatele root mysql v závislosti na zásadách hesel, které jste zvolili v předchozím kroku. Pokud jste plugin nepovolili, použijte jakékoli silné a jedinečné heslo podle svého výběru.
Please set the password for root here. New password: Re-enter new password: Estimated strength of the password: 50 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Jakmile zadáte heslo dvakrát, uvidíte sílu hesla (v našem případě je to 50 ). Pokud je to pro vás v pořádku, stiskněte Y a pokračujte se zadaným heslem. Pokud nejste spokojeni s délkou hesla, stiskněte jakoukoli jinou klávesu a nastavte silné heslo. Se svým aktuálním heslem souhlasím, proto jsem zvolil y .
U ostatních otázek stačí napsat y a stiskněte ENTER. Toto odebere anonymního uživatele, zakáže vzdálené přihlášení uživatele root a odstraní testovací databázi.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
A je to. Heslo pro uživatele root MySQL bylo nastaveno.
2.2 Změna metody ověřování pro uživatele root MySQL
Ve výchozím nastavení je uživatel root MySQL nastaven na ověřování pomocí auth_socket plugin v MySQL 5.7 a novějších verzích na Ubuntu. I když to zvyšuje bezpečnost, bude to také komplikovat věci, když přistupujete k databázovému serveru pomocí externích programů, například phpMyAdmin. Chcete-li tento problém vyřešit, musíte změnit metodu ověřování z auth_socket na mysql_native_password . Chcete-li tak učinit, přihlaste se do řádku MySQL pomocí příkazu:
$ sudo mysql
Spuštěním následujícího příkazu na výzvu mysql vyhledejte aktuální metodu ověřování pro všechny uživatelské účty mysql:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Ukázkový výstup:
+------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.00 sec)
Jak vidíte, uživatel root mysql používá auth_socket
plugin pro ověřování.
Chcete-li toto ověření změnit na mysql_native_password spusťte následující příkaz na příkazovém řádku mysql. Nezapomeňte nahradit "heslo" se silným a jedinečným heslem dle vašeho výběru. Pokud jste povolili plugin VALIDATION, ujistěte se, že jste použili silné heslo podle aktuálních požadavků zásad.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Aktualizujte změny pomocí příkazu:
FLUSH PRIVILEGES;
Nyní znovu zkontrolujte, zda je metoda ověřování změněna nebo není pomocí příkazu:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Ukázkový výstup:
Dobrý! Nyní se uživatel root myql může autentizovat pomocí hesla pro přístup k shellu mysql.
Ukončete výzvu mysql:
exit
3. Nainstalujte PHP
Chcete-li nainstalovat PHP, spusťte:
$ sudo apt install php libapache2-mod-php php-mysql
Po instalaci PHP vytvořte info.php soubor v kořenové složce dokumentů Apache. Obvykle bude kořenová složka dokumentů Apache /var/www/html/ nebo /var/www/ ve většině distribucí Linuxu založených na Debianu. V Ubuntu 18.04 LTS je to /var/www/html/ .
Vytvořme info.php soubor v kořenové složce Apache:
$ sudo vi /var/www/html/info.php
Přidejte následující řádky:
<?php phpinfo(); ?>
Stiskněte klávesu ESC a zadejte :wq pro uložení a ukončení souboru. Restartujte službu apache, aby se změny projevily.
$ sudo systemctl restart apache2
3.1 Test PHP
Otevřete webový prohlížeč a přejděte na http://IP-adresa/info.php URL.
Nyní uvidíte testovací stránku php.
testovací stránka php
Obvykle, když uživatel požaduje adresář z webového serveru, Apache nejprve vyhledá soubor s názvem index.html . Pokud chcete změnit Apache tak, aby sloužil php souborům místo jiných, přesuňte index.php na první pozici v dir.conf soubor, jak je uvedeno níže
$ sudo vi /etc/apache2/mods-enabled/dir.conf
Zde je obsah výše uvedeného souboru.
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Přesuňte soubor "index.php" na první. Jakmile provedete změny, váš dir.conf soubor bude vypadat níže.
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Stiskněte ESC a zadejte :wq pro uložení a zavření souboru. Restartujte službu Apache, aby se změny projevily.
$ sudo systemctl restart apache2
3.2 Instalace modulů PHP
Chcete-li zlepšit funkčnost PHP, můžete nainstalovat některé další moduly PHP.
Chcete-li zobrazit seznam dostupných modulů PHP, spusťte:
$ sudo apt-cache search php- | less
Ukázkový výstup:
Pomocí kláves se šipkami procházejte výsledek. Pro ukončení zadejte q a stiskněte klávesu ENTER.
Chcete-li najít podrobnosti o jakémkoli konkrétním modulu php, například php-gd , spustit:
$ sudo apt-cache show php-gd
Chcete-li nainstalovat modul php, spusťte:
$ sudo apt install php-gd
Chcete-li nainstalovat všechny moduly (není však nutné), spusťte:
$ sudo apt-get install php*
Po instalaci libovolného php modulu nezapomeňte restartovat službu Apache. Chcete-li zkontrolovat, zda je modul načten nebo ne, otevřete soubor info.php ve svém prohlížeči a zkontrolujte, zda je přítomen.
Dále možná budete chtít nainstalovat jakékoli nástroje pro správu databází pro snadnou správu databází prostřednictvím webového prohlížeče. Pokud ano, nainstalujte phpMyAdmin, jak je popsáno v následujícím odkazu.
- Nainstalujte phpMyAdmin s LAMP Stack na Ubuntu 18.04 LTS
Gratulujeme! Úspěšně jsme nastavili zásobník LAMP na serveru Ubuntu 18.04 LTS.
Přečtěte si také:
- Nainstalujte Nginx, MariaDB, PHP (LEMP) Stack v Ubuntu 18.04 LTS
- Nainstalujte Apache, MariaDB, PHP (LAMP) stack na Arch Linux
- Nainstalujte Nginx, MariaDB, PHP (LEMP) stack na Arch Linux
A to je zatím vše. Jak můžete vidět, nastavení zásobníku LAMP v Ubuntu je naprosto snadné a přímočaré.
Odkaz:
- Digitální oceán