GNU/Linux >> Znalost Linux >  >> Fedora

Jak nainstalovat Nginx s PHP a MariaDB (LEMP Stack) na Fedora 31

Zásobník softwaru LEMP je skupina softwaru s otevřeným zdrojovým kódem, který se instaluje společně, aby umožnil serveru hostovat webové stránky a aplikace. Je to zkratka pro L inux, E Server Nginx, M ySQL (zde pomocí MariaDB) a P HP.

V této příručce nainstalujete zásobník LEMP na server založený na Fedoře 31. Nainstalujeme také PHPMyAdmin, Redis a Opcache.

Předpoklady

  • Server se systémem Fedora 31.

  • Uživatel sudo bez oprávnění root.

  • Ujistěte se, že je vše aktualizováno.

    $ sudo dnf upgrade
    
  • Několik balíčků, které váš systém potřebuje.

    $ sudo dnf install wget curl nano -y
    

    Některé z těchto balíčků již mohou být ve vašem systému nainstalovány.

  • Zakázat SELinux.

    $ sudo setenforce 0
    

Konfigurovat bránu firewall

Prvním krokem je konfigurace firewallu. Server Fedora je dodáván s předinstalovaným firewallem Firewalld.

Zkontrolujte, zda je spuštěna brána firewall.

$ sudo firewall-cmd --state

Měli byste získat následující výstup.

running

Nastavte výchozí zónu brány firewall na veřejnou.

$ sudo firewall-cmd --set-default-zone=public

Zkontrolujte aktuální povolené služby/porty.

$ sudo firewall-cmd --zone=public --permanent --list-services

Měl by ukazovat následující výstup.

dhcpv6-client mdns ssh

Povolit porty HTTP a HTTPS.

$ sudo firewall-cmd --zone=public --permanent --add-service=http
$ sudo firewall-cmd --zone=public --permanent --add-service=https

Znovu zkontrolujte stav brány firewall.

$ sudo firewall-cmd --zone=public --permanent --list-services

Měli byste vidět podobný výstup.

dhcpv6-client http https mdns ssh

Znovu načtěte bránu firewall.

$ sudo systemctl reload firewalld

Instalovat PHP

Fedora 31 se standardně dodává s PHP 7.3. Ale chceme nainstalovat PHP 7.4, pro které potřebujeme přidat repozitář REMI.

Nainstalujte si úložiště REMI, což je oficiální úložiště Fedory pro instalaci balíčků PHP.

$ sudo dnf -y install https://rpms.remirepo.net/fedora/remi-release-31.rpm

Povolte remi a remi-php74 repozitáře a deaktivujte remi-modular úložiště. To umožňuje úložiště potřebné k instalaci balíčků PHP 7.4.

$ sudo dnf config-manager --set-enabled remi
$ sudo dnf config-manager --set-enabled remi-php74
$ sudo dnf config-manager --set-disabled remi-modular

Nainstalujte PHP 7.4 spolu s některými dalšími balíčky.

$ sudo dnf install -y php-cli php-fpm php-mysqlnd

Zkontrolujte, zda PHP funguje správně.

$ php --version

Měli byste vidět podobný výstup.

PHP 7.4.3 (cli) (built: Feb 18 2020 11:53:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

Instalovat MariaDB

MariaDB je náhradní náhrada za MySQL, což znamená, že příkazy ke spuštění a ovládání MariaDB jsou stejné jako příkazy pro MySQL.

Fedora 31 se standardně dodává s MariaDB 10.3, ale můžeme nainstalovat i nejnovější verzi 10.4 (dostupnou v době psaní tohoto návodu). K tomu potřebujeme přidat oficiální úložiště MariaDB.

Vytvořte MariaDB.repo v /etc/yum.repos.d/ adresář.

$ sudo nano /etc/yum.repos.d/MariaDB.repo

Přidejte do něj následující kód.

# MariaDB 10.4 Fedora repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/fedora31-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Chcete-li nainstalovat MariaDB, zadejte následující příkazy

$ sudo dnf install MariaDB-server -y

Všimněte si příkazu. Pokud chcete nainstalovat kopii (10.3) do úložiště Fedory, měli byste použít sudo dnf install mariadb-server ale pro verzi 10.4 používáme sudo dnf install MariaDB-server .

Zkontrolujte, zda je MariaDB správně nainstalována.

$ mysql --version

Měli byste vidět následující výstup.

mysql  Ver 15.1 Distrib 10.4.12-MariaDB, for Linux (x86_64) using  EditLine wrapper

Povolte a spusťte službu MariaDB.

$ sudo systemctl enable mariadb
$ sudo systemctl start mariadb

Spuštěním následujícího příkazu provedete výchozí konfiguraci, jako je zadání hesla uživatele root, odebrání anonymních uživatelů, zakázání vzdáleného přihlášení uživatele root a zrušení testovacích tabulek.

$ sudo mysql_secure_installation

S MariaDB 10.4 budete nyní dotázáni, zda chcete použít root heslo nebo unix_socket plugin. Zásuvný modul unix_socket vám umožňuje přihlásit se do MariaDB pomocí přihlašovacích údajů uživatele systému Linux. Je považováno za bezpečnější, i když k používání aplikací třetích stran, jako je PhpMyAdmin, budete potřebovat tradiční uživatelské jméno/heslo. V tomto tutoriálu se budeme držet používání unix_socket pluginu. PhpMyAdmin můžete nadále používat prostřednictvím libovolného uživatele, kterého pro své databáze vytvoříte.

Stisknutím klávesy Enter vyberete výchozí možnost (ta, která je velká, v tomto případě Y).

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
haven't set the root password yet, 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 or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] [PRESS ENTER]
Enabled successfully!
Reloading privilege tables..
 ... Success!

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] [ANSWER n]

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] [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] [PRESS 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] [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] [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!

A je to. Až se příště budete chtít přihlásit do MySQL, použijte následující příkaz

$ sudo mysql

Po zobrazení výzvy zadejte heslo uživatele root.

Instalovat Nginx

Fedora 31 se standardně dodává se stabilní verzí Nginx (1.16.1). Pokud chcete nainstalovat hlavní verzi Nginx, postupujte podle našeho průvodce sestavováním Nginx ze zdroje. Ujistěte se, že máte nejnovější verzi Nginx a závislosti uvedené v tutoriálu. Zbytek pokynů zůstane stejný (názvy cest odpovídajícím způsobem změňte během ./configure příkaz). V tomto tutoriálu se budeme držet stabilní verze Nginx.

Nainstalujte server Nginx.

$ sudo dnf install nginx -y

Zkontrolujte, zda funguje správně.

$ nginx -v

Měli byste vidět následující výstup.

nginx version: nginx/1.16.1

Spusťte a povolte Nginx.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx

Otevřete IP adresu svého serveru v prohlížeči a zobrazí se následující stránka. Znamená to, že Nginx funguje správně.

Nakonfigurujte Nginx

Nastavte adresáře, ve kterých budou serverové bloky sídlit.

$ sudo mkdir /etc/nginx/sites-available
$ sudo mkdir /etc/nginx/sites-enabled

Vytvořte adresář, kde bude váš web žít.

$ sudo mkdir /var/www/example.com/html -p

Pomocí -p direktiva vytváří nadřazené adresáře, které dříve neexistovaly.

Spusťte následující příkaz pro přidání konfiguračního souboru pro váš web.

$ sudo nano /etc/nginx/sites-available/example.com.conf

Vložte následující kód do editoru.

server {
  listen          *:80;
  server_name     example.com;
  root            /var/www/example.com/html;
  index           index.php index.html;

  location / {
    try_files   $uri $uri/ =404;
  }
    
  access_log /var/log/nginx/example.com.access.log;
  error_log /var/log/nginx/example.com.error.log;

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass  unix:/run/php-fpm/www.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
    include  fastcgi_params;
  }
}

Tento soubor předpokládá, že budeme hostit example.com v adresáři /var/www/html . Pokud nebudete používat žádnou doménu a konfigurujete svůj server tak, aby byl přístupný pouze přes IP adresu/localhost, budete muset odstranit odpovídající nastavení blokování serveru z nginx.conf jinak to bude mít problémy s blokem serveru, který vytvoříte.

Tento konfigurační soubor aktivujte jeho propojením s sites-enabled adresář.

$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Otevřete /etc/nginx/nginx.conf soubor pro úpravy.

$ sudo nano /etc/nginx/nginx.conf	

Vložte následující řádky za řádek include /etc/nginx/conf.d/*.conf

include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;

Změňte hodnotu types_hash_max_size od 2048 do 4096.

types_hash_max_size 4096;

Stiskněte Ctrl + X zavřete editor a stiskněte Y po zobrazení výzvy k uložení souboru. Otestujte konfiguraci Nginx.

$ sudo nginx -t

Měli byste vidět následující výstup indikující, že vaše konfigurace je správná.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Znovu načtěte službu Nginx.

$ sudo systemctl reload nginx

Konfigurace PHP-FPM

Otevřete soubor /etc/php-fpm.d/www.conf .

$ sudo nano /etc/php-fpm.d/www.conf

Musíme nastavit unixového uživatele/skupinu PHP procesů na nginx . Najděte user=apache a group=apache řádků v souboru a změňte je na nginx.

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...

Také nastavte oprávnění k vlastnictví pro unixový socket na nginx a odstraňte ; před nimi.

listen.owner = nginx
listen.group = nginx

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Restartujte proces PHP-fpm.

$ sudo systemctl restart php-fpm

Chcete-li otestovat nastavení PHP, vytvořte soubor test.php v html složka.

$ sudo nano /var/www/example.com/html/test.php

Přidejte do něj následující obsah a uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

<?php phpinfo();

Spusťte http://<yourserverip>/test.php ve vašem webovém prohlížeči a měli byste vidět následující.

Závěr

To je pro tento tutoriál vše. Nastavení LEMP je dokončeno a můžete začít vytvářet a hostovat své webové stránky a aplikace.


Fedora
  1. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na CentOS 7

  2. Jak nainstalovat Phorum s Nginx na Fedora 30

  3. Jak nainstalovat WordPress s LEMP (Nginx, MariaDB a PHP) na Rocky Linux 8?

  1. Jak nainstalovat Pagekit CMS s Nginx na Fedoru 29

  2. Jak nainstalovat Nginx s PHP a MySQL (LEMP Stack) na Ubuntu 18.04

  3. Jak nainstalovat InvoicePlane s Nginx na Fedora 29

  1. Jak nainstalovat říjnový CMS s Nginx na Fedoře 29

  2. Jak nainstalovat Shopware s NGINX a Lets Encrypt na Fedoře 30

  3. Jak nainstalovat Fuel CMS s Nginx na Fedora 31