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
- Stellen Sie sicher, dass die Serverpakete auf dem neuesten Stand sind
- Selinux deaktivieren
- Mariadb installieren
- Mysql-Benutzer für Bagisto erstellen
- Installation von PHP 7.4 in Rocky Linux 8
- Installieren von nginx in Rocky Linux 8
- Bearbeiten Sie die PHP- und php-fpm-Konfiguration für Bagisto
- Starten und Aktivieren des php-fpm-Dienstes
- Installation von PHP Composer
- Laden Sie Bagisto herunter und konfigurieren Sie es
- Konfigurieren Sie Nginx, um Bagosto vom virtuellen Host aus zu bedienen
- 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 installierensudo 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.