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:
- Nastavit heslo uživatele root? – Zadejte y nastavte heslo a zadejte heslo dvakrát.
- 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.
- 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ů.
- Odebrat testovací databázi a získat k ní přístup? – Zadejte y k odstranění testovací databáze.
- 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