GNU/Linux >> Znalost Linux >  >> Cent OS

Nainstalujte Apache, MariaDB, PHP (LAMP Stack) v CentOS 8

LAMP zásobník je kombinací L inux, A pache webový server, M ySQL/M ariaDB, P HP. Tento průvodce krok za krokem vysvětluje, jak nainstalovat Apache, MariaDB, PHP (LAMP Stack) na minimální server CentOS 8. Zásobník LAMP se používá k nasazení webových aplikací a hostování dynamických webových stránek. Testoval jsem tuto příručku na CentOS 8, ale níže uvedené kroky by měly fungovat i na serveru RHEL 8. Pojďme začít.

Instalovat Apache, MariaDB, PHP (LAMP Stack) v CentOS 8

Zde jsou podrobnosti o mém testovacím stroji:

  • Operační systém - CentOS 8 minimální server (8.1.1911 (Core))
  • IP adresa – 192.168.225.52/24
  • Název hostitele - centos8.ostechnix.lan

Všechny níže uvedené příkazy by měly být spouštěny jako "root" uživatel. Pokud se přihlásíte jako normální uživatel, použijte před každým příkazem 'sudo'. # symbol představuje příkazy I am jako uživatel root.

Poznámka:

Jednou z hlavních aktualizací v CentOS 8 je migrace výchozího správce balíčků z YUM na DNF. Stále však můžete YUM na CentOS 8, pokud jste si na to zvykli. Použití DNF je úplně stejné jako YUM. Sestavil jsem seznam příkladů příkazů DNF pro začátečníky. Pokud vás zajímá, jak používat DNF, podívejte se na následující odkaz.

  • Příklady příkazů DNF pro začátečníky

1. Nainstalujte webový server Apache na CentOS 8

Chcete-li nainstalovat Apache na CentOS 8, spusťte následující příkaz jako uživatel root:

# dnf install httpd

Jakmile je Apache nainstalován, povolte a spusťte službu Apache pomocí příkazu:

# systemctl enable httpd
# systemctl start httpd

Případně můžete použít následující příkaz jednoho řádku pro aktivaci a spuštění služby Apache najednou.

# systemctl enable --now httpd

Zkontrolujte, zda služba Apache běží nebo ne, pomocí příkazu:

# systemctl status httpd

Ukázkový výstup:

● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 12:25:08 IST; 39min ago
     Docs: man:httpd.service(8)
 Main PID: 1736 (httpd)
   Status: "Total requests: 6; Idle/Busy workers 100/0;Requests/sec: 0.00253; Bytes served/sec: 13>
    Tasks: 213 (limit: 11501)
   Memory: 25.7M
   CGroup: /system.slice/httpd.service
           ├─1736 /usr/sbin/httpd -DFOREGROUND
           ├─1873 /usr/sbin/httpd -DFOREGROUND
           ├─1874 /usr/sbin/httpd -DFOREGROUND
           ├─1875 /usr/sbin/httpd -DFOREGROUND
           └─1876 /usr/sbin/httpd -DFOREGROUND

Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Starting The Apache HTTP Server...
Feb 07 12:25:08 centos8.ostechnix.lan systemd[1]: Started The Apache HTTP Server.
Feb 07 12:25:08 centos8.ostechnix.lan httpd[1736]: Server configured, listening on: port 80

Jak můžete vidět, služba Apache je načtena a spuštěna. A poslouchá na portu 80. Chcete-li zjistit, která služba naslouchá na konkrétním portu, přečtěte si tuto příručku .

Zkontrolujte verzi Apache:

# httpd -v
Server version: Apache/2.4.37 (centos)
Server built: Dec 23 2019 20:45:34

Dále všechny výchozí porty serveru Apache 80 a 443 přes bránu firewall a směrovač.

Chcete-li povolit port http 80 přes bránu firewall, spusťte:

# firewall-cmd --permanent --add-service=http

Chcete-li povolit https port 443:

# firewall-cmd --permanent --add-service=https

Restartujte bránu firewall a použijte změny pomocí příkazu:

$ systemctl restart firewalld

1.1. Otestujte webový server Apache

Právě jsme dokončili všechny potřebné kroky k nasazení webového serveru Apache. Pojďme do toho a zkontrolujeme, zda to opravdu funguje nebo ne. Chcete-li to provést, otevřete webový prohlížeč (na libovolném vzdáleném systému v síti, protože jde o minimální server bez grafického uživatelského rozhraní) a přejděte na - http://ip-adresa . Pokud máte na svém systému CentOS nainstalované grafické uživatelské rozhraní, můžete přejít buď na http://localhost nebo http://ip-adresa/ nebo http://název-domény .

Pokud je vše v pořádku, zobrazí se ve vašem prohlížeči následující testovací stránka.

No, webový server Apache funguje!

Dalším krokem v nastavení LAMP je instalace databázového serveru.

2. Nainstalujte databázový server MariaDB na CentOS 8

Spusťte následující příkaz z Terminálu a nainstalujte MariaDB na CentOS 8:

# dnf install mariadb-server mariadb

Jakmile je MariaDB nainstalována, povolte a spusťte službu mariadb pomocí příkazů:

# systemctl enable mariadb
# systemctl start mariadb

Alternativně použijte následující jednořádkový příkaz k povolení a spuštění služby mariadb najednou:

# systemctl enable --now mariadb

Chcete-li ověřit, zda je služba mariadb spuštěna nebo ne, spusťte:

# systemctl status mariadb

Ukázkový výstup:

● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 14:16:59 IST; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 5447 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 5312 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mariadb.service (code=exited, statu>
  Process: 5288 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 5415 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 11501)
   Memory: 84.6M
   CGroup: /system.slice/mariadb.service
           └─5415 /usr/libexec/mysqld --basedir=/usr

Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Please report any problems at ht>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: The latest information about Mar>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: You can find additional informat>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: http://dev.mysql.com
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: Consider joining MariaDB's stron>
Feb 07 14:16:59 centos8.ostechnix.lan mysql-prepare-db-dir[5312]: https://mariadb.org/get-involved/
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Note] /usr/libexec/mysq>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Could not incr>
Feb 07 14:16:59 centos8.ostechnix.lan mysqld[5415]: 2020-02-07 14:16:59 0 [Warning] Changed limits>
Feb 07 14:16:59 centos8.ostechnix.lan systemd[1]: Started MariaDB 10.3 database server

Služba Mariadb je nyní načtena a aktivní!

Zkontrolujte instalační verzi MariaDB:

# mysql -V
mysql Ver 15.1 Distrib 10.3.17-MariaDB, for Linux (x86_64) using readline 5.1

2.1. Nastavit heslo uživatele root (administrátora) databáze

Ve výchozím nastavení je heslo uživatele root databáze prázdné. Pro zabezpečení databázového serveru musíme nastavit heslo pro uživatele root. Chcete-li to provést, spusťte skript mysql_secure_installation:

# mysql_secure_installation

Bude vám položeno několik otázek. Přečtěte si je a odpovězte na ně. Nejprve budete vyzváni k zadání aktuálního hesla pro uživatele root. Protože je heslo ve výchozím nastavení prázdné, jednoduše stiskněte klávesu ENTER a pokračujte. Dále budete vyzváni k zodpovězení následujících otázek:

  1. Nastavit heslo uživatele root? – Zadejte y nastavte heslo a zadejte heslo dvakrát.
  2. Odebrat anonymní uživatele? – Zadejte y k odstranění anonymního uživatele. Ve výchozím nastavení je anonymní uživatel uveden pro účely testování. Měli byste odebrat anonymního uživatele v produkci.
  3. Zakázat vzdálené přihlášení root? – Zadejte y abyste zabránili uživateli root v přístupu k databázovému serveru ze vzdálených systémů.
  4. Odebrat testovací databázi a získat k ní přístup? – Zadejte y k odstranění testovací databáze.
  5. Načíst znovu tabulky oprávnění? – Zadejte y aby se všechny provedené změny projevily.

Ukázkový výstup:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): #Press ENTER
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y #Type y and press ENTER
New password:  #Enter password
Re-enter new password: #Re-enter password
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y #Type y and press ENTER
 ... 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? [Y/n] y #Type y and ress ENTER
 ... Success!

By default, MariaDB 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? [Y/n] y #Type y and press ENTER
 - 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? [Y/n] y #Type y and press ENTER
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Nyní jsme zajistili instalaci MariaDB.

2.2. Přihlaste se do prostředí MariaDB

Spusťte následující příkaz pro přihlášení do mariadb shell jako uživatel root:

# mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.3.17-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Chcete-li ukončit prostředí mariadb, jednoduše spusťte:

exit;

3. Nainstalujte PHP na CentOS 8

PHP je poslední komponentou v zásobníku LAMP. Chcete-li nainstalovat php spolu se všemi ostatními požadovanými moduly php, spusťte jako uživatel root následující příkaz:

# dnf install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring

3.1. Nakonfigurujte Apache pomocí PHP-FPM

Jedním z nejběžnějších známých způsobů spuštění PHP s Apache je mod_php modul. Nicméně PHP-FPM (FastCGI Process Manager) má oproti mod_php několik výhod. Pro ty, kdo by se divili, PHP-FPM je implementace FastCGI PHP. PHP-FPM běží jako samostatný FastCGI server a výrazně zvyšuje výkon vašeho PHP prostředí.

Již jsme nainstalovali php-fpm, takže povolme a spusťte službu php-fpm pomocí příkazů:

# systemctl enable php-fpm
# systemctl start php-fpm

Případně použijte následující jednořádkový příkaz k povolení a spuštění služby php-fpm najednou:

# systemctl enable --now php-fpm

Chcete-li ověřit, zda je služba php-fpm spuštěna nebo ne, spusťte:

# systemctl status php-fpm

Ukázkový výstup:

● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-07 17:24:44 IST; 8s ago
 Main PID: 6053 (php-fpm)
   Status: "Ready to handle connections"
    Tasks: 6 (limit: 11501)
   Memory: 22.6M
   CGroup: /system.slice/php-fpm.service
           ├─6053 php-fpm: master process (/etc/php-fpm.conf)
           ├─6054 php-fpm: pool www
           ├─6055 php-fpm: pool www
           ├─6056 php-fpm: pool www
           ├─6057 php-fpm: pool www
           └─6058 php-fpm: pool www

Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Starting The PHP FastCGI Process Manager...
Feb 07 17:24:44 centos8.ostechnix.lan systemd[1]: Started The PHP FastCGI Process Manager.

Služba php-fpm byla načtena a nyní aktivní.

3.2. Otestujte PHP

Chcete-li ověřit, zda PHP správně funguje nebo ne, vytvořte ukázkový soubor s názvem “info.php“ v kořenové složce webu:

# vi /var/www/html/info.php

Přidejte následující řádky:

<?php 
phpinfo(); 
?>

Restartujte službu Apache, aby se změny projevily:

# systemctl restart httpd

Nyní otevřete webový prohlížeč a přejděte na http://IP_Address/info.php .

Zobrazí se následující stránka php se seznamem všech nainstalovaných modulů a dalších podrobností, jako je verze php, datum sestavení a příkazy atd.

gratuluji! V této fázi byste měli mít plně funkční zásobník LAMP na serveru CentOS 8.

Již jsme publikovali instalaci zásobníku LAMP na různých platformách Linux. Podívejte se na následující odkaz, abyste věděli, jak nastavit LAMP na různých distribucích Linuxu.

  • Vodítka zásobníku LAMP

Cent OS
  1. Jak nainstalovat LAMP Stack na CentOS 7

  2. Jak nainstalovat Apache a PHP (zásobník LAMP) na Rocky Linux/Centos 8

  3. Nainstalujte Zenario s Apache, PHP a MariaDB na CentOS 7

  1. Instalace zásobníku LAMP na CentOS 7

  2. Nainstalujte Apache, PHP a MySQL na CentOS 7 (LAMP)

  3. Jak nainstalovat Apache, PHP 7.1 a MySQL na CentOS 7.3 (LAMP)

  1. Jak nainstalovat Apache, PHP 7.2 a MySQL na CentOS 7.4 (LAMP)

  2. Jak nainstalovat Linux, Apache, MariaDB, PHP (LAMP Stack) na CentOS 7 / RHEL 7

  3. Jak nainstalovat Linux, Apache, MariaDB, PHP (LAMP Stack) na CentOS 8 / RHEL 8