GNU/Linux >> Tutoriales Linux >  >> Rocky Linux

Cómo configurar Laravel Bagisto con Nginx y PHP-FPM en Rocky Linux/Alma Linux 8

En esta guía aprenderemos a configurar Laravel Bagisto con Nginx y PHP-FPM con MariaDB como fuente de datos.

Contenido relacionado:

  • Cómo instalar Mysql 8 en Rocky Linux/Centos 8

Tabla de contenido

  1. Asegúrese de que los paquetes del servidor estén actualizados
  2. Deshabilitar Selinux
  3. Instalando Mariadb
  4. Creando un usuario Mysql para Bagisto
  5. Instalación de PHP 7.4 en Rocky Linux 8
  6. Instalación de nginx en Rocky Linux 8
  7. Editar configuración de PHP y php-fpm para Bagisto
  8. Iniciando y habilitando el servicio php-fpm
  9. Instalando php composer
  10. Descargar y configurar Bagisto
  11. Configurar Nginx para servir a Bagosto desde virtualhost
  12. Acceso a Bagisto desde la URL web

1. Asegúrese de que los paquetes del servidor estén actualizados

Asegurémonos de que nuestros paquetes de servidor estén actualizados con este comando:

sudo dnf -y update

Instalar paquetes comunes que necesitaremos

sudo dnf install -y git unzip vim

Configure también la zona horaria

sudo timedatectl set-timezone Africa/Nairobi

2. Deshabilitar SELinux

A continuación, deshabilitemos SELinux. Vamos a establecer SELinux en permisivo. Edite este archivo:

sudo vim /etc/selinux/config

Luego actualice esta línea:

SELINUX=permisive

Para asegurarse de que los cambios se apliquen inmediatamente sin reiniciar, use este comando:

setenforce 0

3. Instalando Mariadb

Mariadb es un popular sistema de gestión relacional de código abierto. Está disponible en los repositorios predeterminados como mariadb-server .

Instálelo con este comando:

sudo dnf install -y mariadb-server

Una vez que mariadb esté instalado, puede confirmar los detalles usando este 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.

El Servicio no se iniciará de forma predeterminada. Comience con este comando:

sudo systemctl start mariadb

Confirme el estado con este 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.

Para asegurarse de que mariadb se inicie en el arranque, habilítelo con este comando systemd:

sudo systemctl enable mariadb

Una vez que el servicio mysql se está ejecutando, debe protegerlo. Mysql proporciona una utilidad de línea de comandos que hará eso:

sudo mysql_secure_installation

El comando anterior lo guiará a través de indicaciones para asegurar y establecer una contraseña de root para la instancia de mysql.

Para obtener más información sobre cómo instalar y configurar mariadb en Rocky Linux, consulte Cómo instalar y configurar Mariadb 10 en Rocky Linux/Alma Linux 8.

4. Creando usuario mysql para Bagisto

Siempre se recomienda tener un usuario dedicado para cada aplicación que se conecta a la base de datos. Consulte esta guía sobre cómo administrar los permisos de mysql aquí. Configuraremos una base de datos, un usuario y una contraseña para que los use nextcloud:

Conéctese al servidor mysql:

mysql -u root -p

Después de proporcionar su contraseña de root, ingrese lo siguiente en el indicador de mysql:

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

Ahora que hemos configurado nuestra conexión mysql, vayamos a la siguiente sección donde instalamos y configuramos PHP y Nginx.

5. Instalación de PHP 7.4 en Rocky Linux

Bagisto funciona bien con PHP 7.4. La versión predeterminada de php en Rocky Linux podría estar desactualizada. Para tener control sobre la versión de php, instalemos el repositorio de lanzamiento de remi usando este comando:

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

Habilitar la versión 7.4 de php

sudo dnf module enable -y php:remi-7.4

Puede confirmar que la versión correcta está habilitada usando este comando:

sudo dnf module list php

Luego instale php y dependencias

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

Comprobar la versión de 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

Para obtener más información sobre cómo configurar PHP y Nginx, consulte esta guía Cómo instalar y configurar PHP y Nginx (LEMP) en Rocky Linux/Alma Linux 8.

6. Instalación de Nginx en Rocky Linux 8

A continuación, instalemos Nginx en nuestro sistema. Use este comando para instalar nginx

sudo dnf install -y nginx

Nginx no se iniciará de forma predeterminada. Comience con este comando:

sudo systemctl start nginx

Verifique el estado usando este 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) indicar que el servicio ya está en funcionamiento.

Para habilitar el servicio en el arranque, use este comando:

sudo systemctl enable nginx

7. Edite la configuración de PHP y php-fpm para Bagisto

Actualice la configuración de php para optimizar nuestra aplicación.

Abra el archivo php ini

sudo vim /etc/php.ini

Luego modifique estos ajustes a los valores mostrados. Actualiza la zona horaria para que se ajuste a la tuya.

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

A continuación, editemos la configuración de php-fpm.

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

Luego actualice estos valores

user = nginx
group = nginx

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

8. Iniciando y habilitando el servicio php-fpm

El servicio php-fpm no se inicia de forma predeterminada. Comience a usar este comando:

sudo systemctl start php-fpm

Confirme comprobando el estado:

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

Habilite el servicio para que se inicie en el arranque

sudo systemctl enable php-fpm

9. Instalando php Composer

Composer se utiliza para la gestión de dependencias

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

Mueve el archivo phar descargado a bin

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

10. Descarga y configura Bagisto

Ahora que hemos configurado con éxito el servidor LEMP en nuestro sistema, descarguemos y configuremos Bagisto. Puede obtener la última versión de Bagisto desde la página de descargas. Use este comando para descargar y extraer Bagisto en la terminal:

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

Mueva el contenido extraído a /var/www donde puede ser servido por nginx

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

Cambie al directorio e instale las dependencias usando composer

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

Asegúrese de que Nginx sea el propietario del contenido

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

11. Configure Nginx para servir a Bagisto desde un host virtual

Logramos descargar el contenido de NextCloud a /var/www/bagisto . El siguiente bit para configurar Nginx para servirlo.

Vamos a crear un sitio virtual en el directorio en el que nginx sirve contenido aquí /etc/nginx/conf.d :

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

Para que esto funcione, asegúrese de que los registros DNS utilizados estén asignados a la IP del servidor.

Agrega el siguiente contenido:

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 vez que se hayan realizado los cambios anteriores, debemos reiniciar el servidor nginx y el servidor php-fom. Use estos comandos en la terminal para lograrlo.

sudo systemctl restart php-fpm nginx

12. Accediendo a Bagisto desde la URL web

Luego diríjase a su dominio establecido, http://bagisto.citizix.com/ para mí.

Pasará por la configuración del servidor, la configuración del entorno y la configuración de la base de datos. Una vez hecho esto, puede comenzar la instalación. Finalmente, crea un administrador y agrega configuraciones SMTP.

Conclusión

En esta guía, logramos configurar la pila LEMP para servir a la plataforma Bagisto eComerce.


Rocky Linux
  1. ¿Cómo instalar WordPress con LEMP (Nginx, MariaDB y PHP) en Rocky Linux 8?

  2. Cómo instalar y usar Podman en Rocky Linux/Alma Linux/Centos 8

  3. Cómo instalar y configurar PHP y Nginx (LEMP) en Rocky Linux/Alma Linux 8

  4. Cómo configurar el servidor y el cliente NFS en Rocky/Alma Linux 8

  5. Cómo instalar NodeJS y NPM en Rocky Linux/Alma Linux 8

Cómo instalar MariaDB 10.6 en Rocky Linux 8

Cómo instalar NEOS CMS con Nginx y Lets Encrypt SSL en Rocky Linux 8

Cómo instalar Apache Tomcat 10 con Nginx en Rocky Linux 8

Cómo instalar Joomla con Nginx en Rocky Linux

Cómo configurar la fecha y la hora en el escritorio y el servidor Rocky Linux 8

Cómo instalar Nginx en Rocky Linux 8