GNU/Linux >> Linux Esercitazione >  >> Rocky Linux

Come configurare Laravel Bagisto con Nginx e PHP-FPM in Rocky Linux/Alma Linux 8

In questa guida impareremo come configurare Laravel Bagisto con Nginx e PHP-FPM con MariaDB come fonte dati.

Contenuti correlati:

  • Come installare Mysql 8 su Rocky Linux/Centos 8

Indice dei contenuti

  1. Assicurati che i pacchetti del server siano aggiornati
  2. Disabilita Selinux
  3. Installazione di Mariadb
  4. Creazione utente Mysql per Bagisto
  5. Installazione di PHP 7.4 in Rocky Linux 8
  6. Installazione di nginx in Rocky Linux 8
  7. Modifica la configurazione PHP e php-fpm per Bagisto
  8. Avvio e abilitazione del servizio php-fpm
  9. Installazione del compositore php
  10. Scarica e configura Bagisto
  11. Configura Nginx per servire Bagosto da virtualhost
  12. Accesso a Bagisto dalla web url

1. Assicurati che i pacchetti del server siano aggiornati

Assicuriamoci che i nostri pacchetti server siano aggiornati con questo comando:

sudo dnf -y update

Installa i pacchetti comuni di cui avremo bisogno

sudo dnf install -y git unzip vim

Configura anche il fuso orario

sudo timedatectl set-timezone Africa/Nairobi

2. Disabilita SELinux

Quindi, disabilitiamo SELinux. Imposteremo SELinux su permissivo. Modifica questo file:

sudo vim /etc/selinux/config

Quindi aggiorna questa riga:

SELINUX=permisive

Per assicurarti che le modifiche vengano applicate immediatamente senza riavviare, usa questo comando:

setenforce 0

3. Installazione di Mariadb

Mariadb è un popolare sistema di gestione relazionale Opensource. È disponibile nei repository predefiniti come mariadb-server .

Installalo con questo comando:

sudo dnf install -y mariadb-server

Una volta installato mariadb, puoi confermare i dettagli usando questo comando:

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

Il Servizio non verrà avviato per impostazione predefinita. Inizia con questo comando:

sudo systemctl start mariadb

Conferma lo stato con questo comando:

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

Per assicurarti che mariadb si avvii all'avvio, abilitalo con questo comando systemd:

sudo systemctl enable mariadb

Una volta che il servizio MySQL è in esecuzione, è necessario proteggerlo. Mysql fornisce un'utilità della riga di comando che lo farà:

sudo mysql_secure_installation

Il comando precedente ti guiderà attraverso le richieste per proteggere e impostare una password di root per l'istanza mysql.

Per ulteriori informazioni su come installare e configurare mariadb in Rocky Linux, consulta Come installare e configurare Mariadb 10 in Rocky Linux/Alma Linux 8.

4. Creazione utente mysql per Bagisto

Si consiglia sempre di avere un utente dedicato per ogni app che si connette al DB. Dai un'occhiata a questa guida sulla gestione delle autorizzazioni MySQL qui. Imposteremo un database, un utente e una password che verranno utilizzati da nextcloud:

Connettiti al server MySQL:

mysql -u root -p

Dopo aver fornito la tua password di root, inserisci quanto segue nel prompt di mysql:

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

Ora che abbiamo configurato la nostra connessione mysql, andiamo alla sezione successiva in cui installiamo e configuriamo PHP e Nginx.

5. Installazione di PHP 7.4 in Rocky Linux

Bagisto funziona bene con PHP 7.4. La versione php predefinita in Rocky Linux potrebbe essere obsoleta. Per avere il controllo sulla versione php, installiamo il repository di rilascio remi usando questo comando:

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

Abilita la versione 7.4 di php

sudo dnf module enable -y php:remi-7.4

Puoi confermare che la versione corretta è abilitata usando questo comando:

sudo dnf module list php

Quindi installa php e le dipendenze

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

Controlla la versione 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

Per maggiori informazioni sulla configurazione di PHP e Nginx, consulta questa guida Come installare e configurare PHP e Nginx (LEMP) su Rocky Linux/Alma Linux 8.

6. Installazione di Nginx in Rocky Linux 8

Quindi, installiamo Nginx nel nostro sistema. Usa questo comando per installare nginx

sudo dnf install -y nginx

Nginx non verrà avviato per impostazione predefinita. Inizia con questo comando:

sudo systemctl start nginx

Verifica lo stato usando questo comando:

$ 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) indica che il servizio è ora attivo e funzionante.

Per abilitare il servizio all'avvio, utilizzare questo comando:

sudo systemctl enable nginx

7. Modifica PHP e php-fpm Config per Bagisto

Aggiorna la configurazione php per ottimizzare per la nostra app.

Apri il file php ini

sudo vim /etc/php.ini

Quindi modificare queste impostazioni sui valori mostrati. Aggiorna il fuso orario per adattarlo al tuo.

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

Quindi modifichiamo le impostazioni di php-fpm.

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

Quindi aggiorna questi valori

user = nginx
group = nginx

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

8. Avvio e abilitazione del servizio php-fpm

Il servizio php-fpm non è avviato per impostazione predefinita. Inizia a usare questo comando:

sudo systemctl start php-fpm

Conferma controllando lo stato:

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

Abilita l'avvio del servizio all'avvio

sudo systemctl enable php-fpm

9. Installazione di php Composer

Composer viene utilizzato per la gestione delle dipendenze

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

Sposta il file phar scaricato nel cestino

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

10. Scarica e configura Bagisto

Ora che abbiamo configurato correttamente il server LEMP nel nostro sistema, scarichiamo e configuriamo Bagisto. Puoi ottenere l'ultima versione di Bagisto dalla pagina Download. Usa questo comando per scaricare ed estrarre Bagisto nel terminale:

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

Sposta il contenuto estratto in /var/www dove può essere servito da nginx

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

Passa alla directory e installa le dipendenze usando il compositore

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

Assicurati che Nginx possieda il contenuto

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

11. Configura Nginx per servire Bagisto da un host virtuale

Siamo riusciti a scaricare i contenuti di NextCloud su /var/www/bagisto . Il prossimo passo è impostare Nginx per servirlo.

Creiamo un sito virtuale nella directory in cui nginx offre contenuti qui /etc/nginx/conf.d :

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

Affinché funzioni, assicurati che i record DNS utilizzati siano mappati con l'IP del server.

Aggiungi il seguente contenuto:

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

Una volta apportate le modifiche precedenti, è necessario riavviare il server nginx e il server php-fom. Usa questi comandi nel terminale per ottenerlo.

sudo systemctl restart php-fpm nginx

12. Accesso a Bagisto dalla web url

Quindi vai al dominio impostato, http://bagisto.citizix.com/ per me.

Verrai guidato attraverso la configurazione del server, la configurazione dell'ambiente, la configurazione del database. Fatto ciò, puoi avviare l'installazione. Infine crei un amministratore e aggiungi le configurazioni SMTP.

Conclusione

In questa guida siamo riusciti a configurare lo stack LEMP per servire la piattaforma eComerce di Bagisto.


Rocky Linux
  1. Come installare Nginx con PHP-FPM e MySQL su openSUSE 12.1

  2. Come installare WordPress con LEMP (Nginx, MariaDB e PHP) su Rocky Linux 8?

  3. Come installare e utilizzare Podman in Rocky Linux/Alma Linux/Centos 8

  4. Come installare e configurare PHP e Nginx (LEMP) su Rocky Linux/Alma Linux 8

  5. Come configurare server e client NFS su Rocky/Alma Linux 8

Come installare MariaDB 10.6 su Rocky Linux 8

Come installare NEOS CMS con Nginx e Lets Encrypt SSL su Rocky Linux 8

Come installare Apache Tomcat 10 con Nginx su Rocky Linux 8

Come installare Joomla con Nginx su Rocky Linux

Come impostare data e ora su desktop e server Rocky Linux 8

Come installare Nginx su Rocky Linux 8