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
- Asegúrese de que los paquetes del servidor estén actualizados
- Deshabilitar Selinux
- Instalando Mariadb
- Creando un usuario Mysql para Bagisto
- Instalación de PHP 7.4 en Rocky Linux 8
- Instalación de nginx en Rocky Linux 8
- Editar configuración de PHP y php-fpm para Bagisto
- Iniciando y habilitando el servicio php-fpm
- Instalando php composer
- Descargar y configurar Bagisto
- Configurar Nginx para servir a Bagosto desde virtualhost
- 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.