GNU/Linux >> Znalost Linux >  >> Rocky Linux

Jak nastavit Laravel Bagisto s Nginx a PHP-FPM v Rocky Linux/Alma Linux 8

V této příručce se naučíme, jak nakonfigurovat Laravel Bagisto s Nginx a PHP-FPM s MariaDB jako zdrojem dat.

Související obsah:

  • Jak nainstalovat Mysql 8 na Rocky Linux/Centos 8

Obsah

  1. Ujistěte se, že jsou serverové balíčky aktuální
  2. Zakázat Selinux
  3. Instalace Mariadb
  4. Vytvoření uživatele Mysql pro Bagisto
  5. Instalace PHP 7.4 v Rocky Linux 8
  6. Instalace nginx v Rocky Linux 8
  7. Upravit konfiguraci PHP a php-fpm pro Bagisto
  8. Spuštění a povolení služby php-fpm
  9. Instalace skladatele php
  10. Stáhněte si a nakonfigurujte Bagisto
  11. Nakonfigurujte Nginx tak, aby obsluhoval Bagosto z virtuálního hostitele
  12. Přístup k Bagisto z webové adresy URL

1. Ujistěte se, že serverové balíčky jsou aktuální

Ujistíme se, že naše serverové balíčky jsou aktuální pomocí tohoto příkazu:

sudo dnf -y update

Nainstalujte běžné balíčky, které budeme potřebovat

sudo dnf install -y git unzip vim

Nakonfigurujte také časové pásmo

sudo timedatectl set-timezone Africa/Nairobi

2. Zakázat SELinux

Dále deaktivujeme SELinux. Nastavíme SELinux na permisivní. Upravte tento soubor:

sudo vim /etc/selinux/config

Pak aktualizujte tento řádek:

SELINUX=permisive

Chcete-li zajistit, aby se změny projevily okamžitě bez restartu, použijte tento příkaz:

setenforce 0

3. Instalace Mariadb

Mariadb je populární Opensource relační systém pro správu. Je k dispozici ve výchozích úložištích jako mariadb-server .

Nainstalujte jej pomocí tohoto příkazu:

sudo dnf install -y mariadb-server

Jakmile je mariadb nainstalován, můžete potvrdit podrobnosti pomocí tohoto příkazu:

$ rpm -qi mariadb-server
Name        : mariadb-server
Epoch       : 3
Version     : 10.3.28
Release     : 1.module+el8.4.0+427+adf35707
Architecture: x86_64
Install Date: Mon 10 Jan 2022 11:09:11 PM EAT
Group       : Unspecified
Size        : 85968333
License     : GPLv2 with exceptions and LGPLv2 and BSD
Signature   : RSA/SHA256, Mon 31 May 2021 03:18:29 AM EAT, Key ID 15af5dac6d745a60
Source RPM  : mariadb-10.3.28-1.module+el8.4.0+427+adf35707.src.rpm
Build Date  : Mon 31 May 2021 02:56:08 AM EAT
Build Host  : ord1-prod-x86build003.svc.aws.rockylinux.org
Relocations : (not relocatable)
Packager    : [email protected]
Vendor      : Rocky
URL         : http://mariadb.org
Summary     : The MariaDB server and related files
Description :
MariaDB is a multi-user, multi-threaded SQL database server. It is a
client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains
the MariaDB server and some accompanying files and directories.
MariaDB is a community developed branch of MySQL.

Služba se ve výchozím nastavení nespustí. Začněte tímto příkazem:

sudo systemctl start mariadb

Potvrďte stav tímto příkazem:

$ sudo systemctl status mariadb
● mariadb.service - MariaDB 10.3 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-11 05:58:54 UTC; 7min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 40293 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 23176)
   Memory: 83.8M
   CGroup: /system.slice/mariadb.service
           └─40293 /usr/libexec/mysqld --basedir=/usr

Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: See the MariaDB Knowledgebase at http://mariadb.com/kb or the
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: MySQL manual for more instructions.
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: Please report any problems at http://mariadb.org/jira
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: The latest information about MariaDB is available at http://mariadb.org/.
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: You can find additional information about the MySQL part at:
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: http://dev.mysql.com
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: Consider joining MariaDB's strong and vibrant community:
Jan 11 05:58:54 rockysrv.citizix.com mysql-prepare-db-dir[40191]: https://mariadb.org/get-involved/
Jan 11 05:58:54 rockysrv.citizix.com mysqld[40293]: 2022-01-11  5:58:54 0 [Note] /usr/libexec/mysqld (mysqld 10.3.28-MariaDB) starting as process 40293 ...
Jan 11 05:58:54 rockysrv.citizix.com systemd[1]: Started MariaDB 10.3 database server.

Chcete-li zajistit, aby se mariadb spustil při bootování, povolte jej pomocí tohoto příkazu systemd:

sudo systemctl enable mariadb

Jakmile je služba mysql spuštěna, musíte ji zabezpečit. Mysql poskytuje nástroj příkazového řádku, který to udělá:

sudo mysql_secure_installation

Výše uvedený příkaz vás provede výzvami k zabezpečení a nastavení hesla uživatele root pro instanci mysql.

Další informace o tom, jak nainstalovat a nakonfigurovat mariadb v Rocky Linuxu, najdete v části Jak nainstalovat a konfigurovat Mariadb 10 v Rocky Linux/Alma Linux 8.

4. Vytváření uživatele mysql pro Bagisto

Vždy se doporučuje mít vyhrazeného uživatele pro každou aplikaci, která se připojuje k DB. Podívejte se na tohoto průvodce správou oprávnění mysql zde. Nastavíme databázi, uživatele a heslo, které bude nextcloud používat:

Připojte se k serveru mysql:

mysql -u root -p

Po zadání hesla uživatele root zadejte do výzvy mysql následující:

create database bagisto;
create user 'bagisto_user'@'%' identified by 'S0mStrongPa$$word';
grant all privileges on bagisto.* to 'bagisto_user'@'%';

Nyní, když jsme nakonfigurovali naše připojení mysql, pojďme k další části, kde nainstalujeme a nakonfigurujeme PHP a Nginx.

5. Instalace PHP 7.4 v Rocky Linux

Bagisto funguje dobře s PHP 7.4. Výchozí verze php v Rocky Linuxu může být zastaralá. Chcete-li mít kontrolu nad verzí php, nainstalujte remi release repo pomocí tohoto příkazu:

sudo dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Povolit verzi 7.4 php

sudo dnf module enable -y php:remi-7.4

Pomocí tohoto příkazu můžete potvrdit, že je povolena správná verze:

sudo dnf module list php

Poté nainstalujte php a závislosti

sudo dnf install -y php \
    php-cli \
    php-common \
    php-fpm \
    php-intl \
    php-gd \
    php-zip \
    php-mysql

Zkontrolujte verzi php

$ php -v
PHP 7.4.27 (cli) (built: Dec 14 2021 17:17:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.27, Copyright (c), by Zend Technologies

Další informace o nastavení PHP a Nginx najdete v této příručce Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8.

6. Instalace Nginx v Rocky Linux 8

Dále nainstalujme Nginx do našeho systému. Tento příkaz použijte k instalaci nginx

sudo dnf install -y nginx

Nginx se ve výchozím nastavení nespustí. Začněte tímto příkazem:

sudo systemctl start nginx

Zkontrolujte stav pomocí tohoto příkazu:

$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-11 06:15:10 UTC; 6s ago
  Process: 42317 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 42315 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 42313 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 42318 (nginx)
    Tasks: 3 (limit: 23176)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ├─42318 nginx: master process /usr/sbin/nginx
           ├─42319 nginx: worker process
           └─42320 nginx: worker process

Jan 11 06:15:10 rockysrv.citizix.com systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 11 06:15:10 rockysrv.citizix.com nginx[42315]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 11 06:15:10 rockysrv.citizix.com nginx[42315]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 11 06:15:10 rockysrv.citizix.com systemd[1]: Started The nginx HTTP and reverse proxy server.

Active: active (running) označte, že služba je nyní spuštěna.

Chcete-li službu povolit při spouštění, použijte tento příkaz:

sudo systemctl enable nginx

7. Upravte PHP a php-fpm Config pro Bagisto

Aktualizujte konfiguraci php pro optimalizaci pro naši aplikaci.

Otevřete soubor php ini

sudo vim /etc/php.ini

Poté upravte tato nastavení na zobrazené hodnoty. Aktualizujte časové pásmo, aby odpovídalo vašemu.

memory_limit = 2G
max_execution_time = 360
date.timezone = Africa/Nairobi
cgi.fix_pathinfo=0

Nyní upravíme nastavení php-fpm.

sudo vim /etc/php-fpm.d/www.conf

Poté aktualizujte tyto hodnoty

user = nginx
group = nginx

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

8. Spuštění a povolení služby php-fpm

Služba php-fpm není ve výchozím nastavení spuštěna. Začněte používat tento příkaz:

sudo systemctl start php-fpm

Potvrďte kontrolou stavu:

$ sudo systemctl status php-fpm
● php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-01-11 09:22:55 EAT; 31s ago
 Main PID: 43022 (php-fpm)
   Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 6 (limit: 23176)
   Memory: 16.0M
   CGroup: /system.slice/php-fpm.service
           ├─43022 php-fpm: master process (/etc/php-fpm.conf)
           ├─43023 php-fpm: pool www
           ├─43024 php-fpm: pool www
           ├─43025 php-fpm: pool www
           ├─43026 php-fpm: pool www
           └─43027 php-fpm: pool www

Jan 11 09:22:55 rockysrv.citizix.com systemd[1]: Starting The PHP FastCGI Process Manager...
Jan 11 09:22:55 rockysrv.citizix.com php-fpm[43022]: [11-Jan-2022 09:22:55] WARNING: [pool www] ACL set, listen.owner = 'nginx' is ignored
Jan 11 09:22:55 rockysrv.citizix.com php-fpm[43022]: [11-Jan-2022 09:22:55] WARNING: [pool www] ACL set, listen.group = 'nginx' is ignored
Jan 11 09:22:55 rockysrv.citizix.com systemd[1]: Started The PHP FastCGI Process Manager.

Povolte spuštění služby při spuštění

sudo systemctl enable php-fpm

9. Instalace php Composer

Composer se používá pro správu závislostí

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Přesuňte stažený soubor phar do koše

sudo mv composer.phar /usr/local/bin/composer

10. Stáhněte a nakonfigurujte Bagisto

Nyní, když jsme úspěšně nakonfigurovali LEMP server v našem systému, stáhněte si a nastavte Bagisto. Nejnovější verzi Bagisto můžete získat ze stránky ke stažení. Tento příkaz použijte ke stažení a rozbalení Bagisto v terminálu:

cd /tmp
curl -LO https://github.com/bagisto/bagisto/archive/refs/tags/v1.3.3.tar.gz
tar -xzvf v1.3.3.tar.gz

Přesuňte extrahovaný obsah do /var/www, kde jej může poskytovat nginx

sudo mv bagisto-1.3.3/ /var/www/bagisto

Přepněte se do adresáře a nainstalujte závislosti pomocí skladatel

cd /var/www/bagisto
sudo /usr/local/bin/composer install

Ujistěte se, že Nginx vlastní obsah

sudo chown -R nginx.nginx /var/www/bagisto/

11. Nakonfigurujte Nginx tak, aby obsluhoval Bagisto z virtuálního hostitele

Podařilo se nám stáhnout obsah NextCloud na /var/www/bagisto . Dalším krokem je nastavení Nginx, aby jej obsluhoval.

Pojďme vytvořit virtuální web v adresáři, kde nginx poskytuje obsah zde /etc/nginx/conf.d :

sudo vim /etc/nginx/conf.d/bagisto.conf

Aby to fungovalo, ujistěte se, že použité záznamy DNS jsou mapovány s IP serverem.

Přidejte následující obsah:

server {
    listen 80;
    server_tokens off;
    client_max_body_size 100M;
    server_name bagisto.citizix.com;

    root /var/www/bagisto/public;
    index index.php;

    if ($host !~* ^(bagisto.citizix.com)$) {
        return 444;
    }

    location / {
        proxy_read_timeout 600;
        proxy_connect_timeout 600;
        proxy_send_timeout 600;
        try_files $uri $uri/ /index.php?$args;
    }

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

Jakmile budou provedeny výše uvedené změny, musíme restartovat server nginx a server php-fom. K tomu použijte tyto příkazy v terminálu.

sudo systemctl restart php-fpm nginx

12. Přístup k Bagisto z webové adresy URL

Poté přejděte na svou nastavenou doménu http://bagisto.citizix.com/ pro mě.

Budete provedeni Konfigurace serveru, Konfigurace prostředí, Konfigurace databáze. Jakmile je to hotovo, můžete zahájit instalaci. Nakonec vytvořte správce a přidejte konfigurace SMTP.

Závěr

V této příručce se nám podařilo nastavit zásobník LEMP, aby sloužil platformě Bagisto eComerce.


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

  2. Jak nainstalovat a používat Podman v Rocky Linux/Alma Linux/Centos 8

  3. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Rocky Linux/Alma Linux 8

  1. Jak nastavit NFS server a klienta na Rocky/Alma Linux 8

  2. Jak nainstalovat NodeJS a NPM na Rocky Linux/Alma Linux 8

  3. Jak nainstalovat a nakonfigurovat HAProxy load balancer na Rocky Linux/Alma Linux 8

  1. Jak nastavit Laravel Bagisto s Nginx a PHP-FPM v Rocky Linux/Alma Linux 8

  2. Jak nainstalovat a nakonfigurovat Memcached na Rocky Linux/Alma Linux 8

  3. Jak nainstalovat a nakonfigurovat Squid Proxy na Rocky Linux/Alma Linux 8