GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte Apache, MySQL, PHP (LAMP) Stack na Ubuntu 18.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 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

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