GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So richten Sie Laravel Bagisto mit Nginx und PHP-FPM in Rocky Linux/Alma Linux 8 ein

In dieser Anleitung lernen wir, wie man Laravel Bagisto mit Nginx und PHP-FPM mit MariaDB als Datenquelle konfiguriert.

Zugehöriger Inhalt:

  • So installieren Sie Mysql 8 auf Rocky Linux/Centos 8

Inhaltsverzeichnis

  1. Stellen Sie sicher, dass die Serverpakete auf dem neuesten Stand sind
  2. Selinux deaktivieren
  3. Mariadb installieren
  4. Mysql-Benutzer für Bagisto erstellen
  5. Installation von PHP 7.4 in Rocky Linux 8
  6. Installieren von nginx in Rocky Linux 8
  7. Bearbeiten Sie die PHP- und php-fpm-Konfiguration für Bagisto
  8. Starten und Aktivieren des php-fpm-Dienstes
  9. Installation von PHP Composer
  10. Laden Sie Bagisto herunter und konfigurieren Sie es
  11. Konfigurieren Sie Nginx, um Bagosto vom virtuellen Host aus zu bedienen
  12. Zugriff auf Bagisto über die Web-URL

1. Stellen Sie sicher, dass die Serverpakete auf dem neuesten Stand sind

Lassen Sie uns mit diesem Befehl sicherstellen, dass unsere Serverpakete auf dem neuesten Stand sind:

sudo dnf -y update

Installieren Sie allgemeine Pakete, die wir benötigen

sudo dnf install -y git unzip vim

Konfigurieren Sie auch die Zeitzone

sudo timedatectl set-timezone Africa/Nairobi

2. SELinux deaktivieren

Lassen Sie uns als Nächstes SELinux deaktivieren. Wir werden SELinux auf permisive setzen. Bearbeiten Sie diese Datei:

sudo vim /etc/selinux/config

Dann aktualisieren Sie diese Zeile:

SELINUX=permisive

Um sicherzustellen, dass die Änderungen sofort ohne Neustart übernommen werden, verwenden Sie diesen Befehl:

setenforce 0

3. Installation von Mariadb

Mariadb ist ein beliebtes Opensource-Relational-Management-System. Es ist in den Standard-Repositories als mariadb-server verfügbar .

Installieren Sie es mit diesem Befehl:

sudo dnf install -y mariadb-server

Sobald mariadb installiert ist, können Sie die Details mit diesem Befehl bestätigen:

$ 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.

Der Dienst wird standardmäßig nicht gestartet. Beginnen Sie mit diesem Befehl:

sudo systemctl start mariadb

Bestätigen Sie den Status mit diesem Befehl:

$ 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.

Um sicherzustellen, dass Mariadb beim Booten startet, aktivieren Sie es mit diesem systemd-Befehl:

sudo systemctl enable mariadb

Sobald der MySQL-Dienst ausgeführt wird, müssen Sie ihn sichern. Mysql bietet ein Befehlszeilenprogramm, das dies tut:

sudo mysql_secure_installation

Der obige Befehl führt Sie durch die Eingabeaufforderungen zum Sichern und Festlegen eines Root-Passworts für die mysql-Instanz.

Weitere Informationen zum Installieren und Konfigurieren von Mariadb in Rocky Linux finden Sie unter So installieren und konfigurieren Sie Mariadb 10 in Rocky Linux/Alma Linux 8.

4. MySQL-Benutzer für Bagisto erstellen

Es wird immer empfohlen, für jede App, die sich mit der DB verbindet, einen dedizierten Benutzer zu haben. Sehen Sie sich hier diesen Leitfaden zur Verwaltung von MySQL-Berechtigungen an. Wir richten eine Datenbank, einen Benutzer und ein Passwort ein, die von nextcloud verwendet werden:

Mit MySQL-Server verbinden:

mysql -u root -p

Geben Sie nach Eingabe Ihres Root-Passworts Folgendes in die mysql-Eingabeaufforderung ein:

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

Nachdem wir unsere MySQL-Verbindung konfiguriert haben, gehen wir zum nächsten Abschnitt, in dem wir PHP und Nginx installieren und konfigurieren.

5. PHP 7.4 unter Rocky Linux installieren

Bagisto funktioniert gut mit PHP 7.4. Die Standard-PHP-Version in Rocky Linux ist möglicherweise veraltet. Um die Kontrolle über die PHP-Version zu haben, installieren wir das Remi-Release-Repo mit diesem Befehl:

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

Aktivieren Sie Version 7.4 von PHP

sudo dnf module enable -y php:remi-7.4

Mit diesem Befehl können Sie bestätigen, dass die richtige Version aktiviert ist:

sudo dnf module list php

Installieren Sie dann php und Abhängigkeiten

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

Überprüfen Sie die PHP-Version

$ 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

Weitere Informationen zum Einrichten von PHP und Nginx finden Sie in dieser Anleitung zum Installieren und Einrichten von PHP und Nginx (LEMP) unter Rocky Linux/Alma Linux 8.

6. Installieren von Nginx in Rocky Linux 8

Lassen Sie uns als Nächstes Nginx in unserem System installieren. Verwenden Sie diesen Befehl, um nginx

zu installieren
sudo dnf install -y nginx

Nginx wird standardmäßig nicht gestartet. Beginnen Sie mit diesem Befehl:

sudo systemctl start nginx

Überprüfen Sie den Status mit diesem Befehl:

$ 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) zeigen an, dass der Dienst jetzt betriebsbereit ist.

Um den Dienst beim Booten zu aktivieren, verwenden Sie diesen Befehl:

sudo systemctl enable nginx

7. Bearbeiten Sie die PHP- und php-fpm-Konfiguration für Bagisto

Aktualisieren Sie die PHP-Konfiguration, um sie für unsere App zu optimieren.

Öffnen Sie die PHP-INI-Datei

sudo vim /etc/php.ini

Ändern Sie dann diese Einstellungen auf die angezeigten Werte. Aktualisieren Sie die Zeitzone, damit sie Ihrer entspricht.

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

Als nächstes bearbeiten wir die php-fpm-Einstellungen.

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

Aktualisieren Sie dann diese Werte

user = nginx
group = nginx

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

8. Starten und Aktivieren des php-fpm-Dienstes

Der Dienst php-fpm wird standardmäßig nicht gestartet. Beginnen Sie mit diesem Befehl:

sudo systemctl start php-fpm

Bestätigen Sie, indem Sie den Status überprüfen:

$ 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.

Den Dienst so aktivieren, dass er beim Booten startet

sudo systemctl enable php-fpm

9. PHP Composer installieren

Composer wird für das Abhängigkeitsmanagement verwendet

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');"

Verschieben Sie die heruntergeladene phar-Datei nach bin

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

10. Bagisto herunterladen und konfigurieren

Nachdem wir den LEMP-Server nun erfolgreich in unserem System konfiguriert haben, lassen Sie uns Bagisto herunterladen und einrichten. Sie können die neueste Version von Bagisto von der Download-Seite herunterladen. Verwenden Sie diesen Befehl, um Bagisto im Terminal herunterzuladen und zu extrahieren:

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

Verschieben Sie den extrahierten Inhalt nach /var/www, wo er von nginx bereitgestellt werden kann

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

Wechseln Sie in das Verzeichnis und installieren Sie Abhängigkeiten mit Composer

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

Stellen Sie sicher, dass Nginx der Inhalt gehört

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

11. Konfigurieren Sie Nginx so, dass Bagisto von einem virtuellen Host bereitgestellt wird

Wir konnten den NextCloud-Inhalt nach /var/www/bagisto herunterladen . Als nächstes muss Nginx eingerichtet werden, um es zu bedienen.

Lassen Sie uns eine virtuelle Website in dem Verzeichnis erstellen, in dem Nginx hier Inhalte bereitstellt /etc/nginx/conf.d :

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

Damit dies funktioniert, stellen Sie bitte sicher, dass die verwendeten DNS-Einträge der Server-IP zugeordnet sind.

Fügen Sie den folgenden Inhalt hinzu:

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;
    }
}

Sobald die obigen Änderungen vorgenommen wurden, müssen wir den Nginx-Server und den PHP-Form-Server neu starten. Verwenden Sie diese Befehle im Terminal, um dies zu erreichen.

sudo systemctl restart php-fpm nginx

12. Zugriff auf Bagisto über die Web-URL

Gehen Sie dann zu Ihrer festgelegten Domain http://bagisto.citizix.com/ für mich.

Sie werden durch die Serverkonfiguration, Umgebungskonfiguration, Datenbankkonfiguration geführt. Sobald dies erledigt ist, können Sie mit der Installation beginnen. Schließlich erstellen Sie einen Administrator und fügen SMTP-Konfigurationen hinzu.

Schlussfolgerung

In diesem Leitfaden ist es uns gelungen, den LEMP-Stack für die Bagisto eCommerce-Plattform einzurichten.


Rocky Linux
  1. So installieren Sie Nginx mit PHP-FPM und MySQL unter openSUSE 12.1

  2. Wie installiere ich WordPress mit LEMP (Nginx, MariaDB und PHP) unter Rocky Linux 8?

  3. So installieren und verwenden Sie Podman in Rocky Linux/Alma Linux/Centos 8

  4. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Rocky Linux/Alma Linux 8

  5. So richten Sie NFS-Server und -Client unter Rocky/Alma Linux 8 ein

So installieren Sie MariaDB 10.6 auf Rocky Linux 8

So installieren Sie NEOS CMS mit Nginx und Lets Encrypt SSL unter Rocky Linux 8

So installieren Sie Apache Tomcat 10 mit Nginx unter Rocky Linux 8

So installieren Sie Joomla mit Nginx unter Rocky Linux

So stellen Sie Datum und Uhrzeit auf Rocky Linux 8 Desktop und Server ein

So installieren Sie Nginx unter Rocky Linux 8