GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte Apache, MySQL, PHP (LAMP Stack) na Ubuntu 20.04 LTS

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 pro Linux, Apache, MariaDB/MYSQL, PHP/Python/Perl. Tento tutoriál krok za krokem popisuje, jak nainstalovat Apache, MySQL, PHP (zásobník LAMP) na serverové edici Ubuntu 20.04 LTS.

Nainstalujte Apache, MySQL, PHP (LAMP Stack) na Ubuntu 20.04 LTS

Pro účely tohoto tutoriálu budeme používat následující systém Ubuntu.

  • Operační systém :Ubuntu 20.04 LTS Server Edition
  • IP adresa :192.168.225.52/24

Nejprve nainstalujme server Apache.

1. Nainstalujte webový server Apache v Ubuntu

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, pomocí příkazu:

$ 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: enabl>
     Active: active (running) since Fri 2020-05-29 07:02:26 UTC; 25s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 23996 (apache2)
      Tasks: 55 (limit: 2283)
     Memory: 5.1M
     CGroup: /system.slice/apache2.service
             ├─23996 /usr/sbin/apache2 -k start
             ├─23998 /usr/sbin/apache2 -k start
             └─23999 /usr/sbin/apache2 -k start

May 29 07:02:26 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
May 29 07:02:26 ubuntuserver apachectl[23981]: AH00558: apache2: Could not reliably det>
May 29 07:02:26 ubuntuserver systemd[1]: Started The Apache HTTP Server.

Gratulujeme! Služba Apache je v provozu!!

1.1. Povolit webový server Apache přes firewall UFW

UFW , znamená U nkomplikované F irew all je program pro správu firewallu netfilter navržený tak, aby byl snadno použitelný. UFW je standardně dostupné ve všech verzích Ubuntu.

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 20.04 LTS. Musíte povolit http a https porty podle níže uvedený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 app info "Profile Name" příkaz.

Podívejme se na “Apache Full” profil pomocí příkazu:

$ 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, "Apache Full" profil obsahuje pravidla umožňující provoz na portech 80 a 443 .

Nyní spusťte následující příkaz, abyste povolili příchozí HTTP a HTTPS provoz pro tento profil:

$ sudo ufw allow in "Apache Full"

Uvidíte výstup jako níže:

Rules updated
Rules updated (v6)

Pokud nechcete povolit https provoz, ale pouze http (80) provoz, běh:

$ sudo ufw app info "Apache"

1.2. Otestujte webový server 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-Address/ .

Pokud vidíte „Výchozí stránku Apache 2 Ubuntu“, jak je uvedeno níže, můžete začít. Server Apache funguje!

2. Nainstalujte MySQL v Ubuntu

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: enabled)
     Active: active (running) since Fri 2020-05-29 07:15:22 UTC; 2min 8s ago
   Main PID: 25242 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 2283)
     Memory: 323.7M
     CGroup: /system.slice/mysql.service
             └─25242 /usr/sbin/mysqld

May 29 07:15:16 ubuntuserver systemd[1]: Starting MySQL Community Server...
May 29 07:15:22 ubuntuserver systemd[1]: Started MySQL Community Server.

Jak vidíte na výše uvedeném výstupu, MySQL běží!

2.1. Nastavte heslo administrátora databáze (root) pro Mysql

Ve výchozím nastavení MySQL root uživatelské heslo je prázdné. Nedoporučuje se používat prázdné heslo pro účet správce databáze. 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" součást nebo ne. Tato součást umožňuje uživatelům konfigurovat silné heslo pro přihlašovací údaje databáze. Pokud je povoleno, automaticky zkontroluje sílu hesla a vynutí uživatele, aby nastavili pouze ta hesla, která jsou dostatečně bezpečná. Je bezpečné jej nechat deaktivované . Pro přihlašovací údaje k databázi však musíte použít silné a jedinečné heslo. Pokud tuto komponentu nechcete povolit, 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.

Zadejte y pokud chcete nastavit VALIDATE PASSWORD komponenta:

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT 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 component?

Press y|Y for Yes, any other key for No: y

Pokud je vaše odpověď Ano , budete požádáni o výběr úrovně ověření hesla. 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: 0

Nyní zadejte heslo pro MySQL root uživatel. Mějte prosím na paměti, že musíte použít heslo pro MySQL root uživatele 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: 100 
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 100 ). 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 .

Pro ostatní otázky 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!

Hotovo! MySQL jsme nastavili root uživatelské heslo.

2.2. Změnit metodu 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 počínaje MySQL 5.7 a novějšími verzemi 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 caching_sha2_password nebo mysql_native_password .

Od verze MySQL 8.0 je preferovaný a výchozí ověřovací plugin caching_sha2_password . caching_sha2_password autentizační plugin poskytuje bezpečnější šifrování hesla než mysql_native_password plugin.

Chcete-li změnit ověřovací plugin, přihlaste se do řádku MySQL pomocí příkazu:

$ sudo mysql

Nebo,

$ mysql -u root -p

Zadejte root MySQL heslo, které jsme nastavili v předchozím kroku.

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:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Ukázkový výstup:

+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| user             | authentication_string                                                  | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
| debian-sys-maint | $A$005$=s%UO"�[email protected]>[email protected] | caching_sha2_password | localhost |
| mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | localhost |
| root             |                                                                        | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+-----------------------+-----------+
5 rows in set (0.00 sec)

Jak vidíte, uživatel root mysql používá auth_socket plugin pro ověřování.

Chcete-li změnit auth_socket plugin do caching_sha2_password , spusťte následující příkaz na příkazovém řádku MySQL. Pokud jste povolili VALIDATE PASSWORD plugin, ujistěte se, že jste použili silné heslo na základě aktuálních požadavků zásad. Silné by se mělo skládat alespoň z 8 znaků včetně velkého písmena, malého písmena, čísla a speciálního znaku.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';

Nahraďte Password123#@! se silným a jedinečným heslem dle vašeho výběru ve výše uvedeném příkazu.

Aktualizujte změny pomocí příkazu:

mysql> FLUSH PRIVILEGES;

Nyní zkontrolujte, zda je aktuální autentizační plugin změněn nebo není pomocí příkazu:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Ukázkový výstup:

Dobrý! Nyní root MySQL uživatel se může autentizovat pomocí hesla pro přístup k prostředí MySQL.

Ukončete výzvu MySQL:

mysql> exit

Poznámka:

I když caching_sha2_password plugin poskytuje vylepšené bezpečné šifrování, má určité problémy s kompatibilitou se stávajícími instalacemi MySQL. Podrobnosti naleznete na tomto odkazu . Pokud narazíte na nějaké problémy s kompatibilitou, je třeba nastavit mysql_native_password plugin jako výchozí ověřovací plugin.

Chcete-li změnit na mysql_native_password plugin, spusťte následující příkaz na řádku MySQL.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Aktualizujte změny pomocí příkazu:

mysql> FLUSH PRIVILEGES;

Nyní znovu zkontrolujte, zda je metoda ověřování změněna nebo není pomocí příkazu:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Ukázkový výstup:

Ukončete výzvu mysql:

mysql> exit

3. Nainstalujte PHP v Ubuntu

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 20.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 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. Otestujte PHP

Otevřete webový prohlížeč a přejděte na http://IP-address/info.php URL.

Uvidíte informace o php, jako je verze, serverové API a podrobnosti o všech povolených php pluginech.

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 poskytoval soubory php namí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 soubor 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. Nainstalujte moduly 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 .

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

Po instalaci 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.

Gratulujeme! Jak můžete vidět, je velmi snadné nainstalovat apache, mysql, php (zásobník LAMP) na Ubuntu 20.04 LTS. Nyní můžete začít hostovat své webové stránky pomocí zásobníku LAMP.

Další informace:

  • Nainstalujte phpMyAdmin s LAMP Stack na Ubuntu 20.04 LTS

Související čtení:

  • Nainstalujte Nginx, MySQL, PHP (LEMP Stack) na Ubuntu 20.04 LTS
  • Instalace Apache, MariaDB, PHP (LAMP Stack) v CentOS 8

Ubuntu
  1. Jak nainstalovat Linux, Apache, MySQL, PHP (LAMP) stack na Ubuntu 16.04

  2. Jak nainstalovat LAMP Stack na Ubuntu 22.04 LTS

  3. Jak nainstalovat Apache, MySQL, PHP (LAMP) na Ubuntu 16.04 LTS

  1. Výukový program serveru Ubuntu 14.10 LAMP s Apache 2, PHP 5 a MySQL (MariaDB)

  2. Výukový program serveru Ubuntu 15.04 LAMP s Apache 2, PHP 5 a MariaDB (místo MySQL)

  3. Výukový program serveru Ubuntu 15.10 LAMP s Apache 2.4, PHP 5 a MariaDB (místo MySQL)

  1. Výukový program serveru Ubuntu 16.04 (LTS) LAMP s Apache, PHP 7 a MySQL

  2. Nainstalujte LAMP Stack (Apache, MariaDB, PHP) na Ubuntu 22.04

  3. Jak nainstalovat zásobník Linux, Apache, MySQL, PHP (LAMP) na Ubuntu 16.04 / Ubuntu 14.04