C贸mo instalar Shopware con NGINX y Let’s Encrypt en CentOS 7

Asistente de configuraci贸n de Shopware

Shopware es la pr贸xima generaci贸n de software de comercio electr贸nico de c贸digo abierto. Basado en tecnolog铆as de vanguardia como Symfony 3, Doctrine2 y Zend Framework, Shopware se presenta como la plataforma perfecta para su pr贸ximo proyecto de comercio electr贸nico. Este tutorial lo guiar谩 a trav茅s de la instalaci贸n de Shopware Community Edition (CE) en el sistema CentOS 7 mediante el uso de NGINX como servidor web.

Requisitos

Aseg煤rese de que su sistema cumpla con los siguientes requisitos m铆nimos:

  • Sistema operativo basado en Linux con servidor web NGINX o Apache 2.x (con mod_rewrite) instalado.
  • PHP 5.6.4 o superior con extensiones ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo y pdo/mysql. Se recomienda PHP 7.1 o superior.
  • MySQL 5.5.0 o superior.
  • Posibilidad de configurar trabajos cron.
  • M铆nimo 4 GB de espacio disponible en disco duro.
  • IonCube Loader versi贸n 5.0.0 o superior (opcional).

NOTA: Shopware est谩 actualmente hasta PHP 7.2.x compatible.

  • Un sistema operativo que ejecuta CentOS 7.
  • Un usuario no root con privilegios sudo.

Pasos iniciales

Compruebe su versi贸n de CentOS:

cat /etc/centos-release

Configurar la zona horaria:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Actualice los paquetes de su sistema operativo (software). Este es un primer paso importante porque garantiza que tenga las 煤ltimas actualizaciones y correcciones de seguridad para los paquetes de software predeterminados de su sistema operativo:

sudo yum update -y

Instale algunos paquetes esenciales que son necesarios para la administraci贸n b谩sica del sistema operativo CentOS:

sudo yum install -y curl wget vim unzip socat epel-release

Paso 1 – Instalar PHP y extensiones de PHP

Configure el repositorio Webtatic YUM:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Instale PHP, as铆 como las extensiones de PHP necesarias para Shopware:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mysql php72w-curl php72w-json php72w-zip php72w-gd php72w-xml php72w-mbstring php72w-opcache

Para mostrar PHP compilado en m贸dulos, puede ejecutar:

php -m

ctype
curl
exif
fileinfo
. . .
. . .


Compruebe la versi贸n de PHP:

php --version
# PHP 7.2.14 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
#     with Zend OPcache v7.2.14, Copyright (c) 1999-2018, by Zend Technologies

Inicie y habilite el servicio PHP-FPM:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Podemos pasar al siguiente paso, que es la instalaci贸n de IonCube Loader.

Paso 2: instale IonCube Loader (opcional)

Descarga el cargador IonCube:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Extraiga el cargador:

tar xfz ioncube_loaders_lin_*.gz

Encuentre el directorio de extensiones de PHP en el sistema ejecutando el siguiente comando:

php -i | grep extension_dir
# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

Copie ionCube Loader en el directorio de extensiones de PHP:

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules

Incluya el cargador a trav茅s de la configuraci贸n de PHP:

sudo vim /etc/php.ini

Luego agregue una l铆nea en el archivo para incluir el cargador ionCube. Puede estar en cualquier parte del archivo a continuaci贸n. [PHP] l铆nea:

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so

Guarde el archivo y reinicie PHP-FPM:

sudo systemctl restart php-fpm.service

Paso 3: instale MariaDB y cree una base de datos para Shopware

Instale el servidor de base de datos MariaDB:

sudo yum install -y mariadb-server

Compruebe la versi贸n de MariaDB:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.26, for Linux (x86_64) using  EditLine wrapper

Inicie y habilite el servicio MariaDB:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Ejecute el script de instalaci贸n mysql_secure para mejorar la seguridad de MariaDB y establezca la contrase帽a para el usuario root de MariaDB:

sudo mysql_secure_installation

Contesta cada una de las preguntas:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Con茅ctese al shell de MariaDB como usuario ra铆z:

sudo mysql -u root -p
# Enter password

Cree una base de datos MariaDB vac铆a y un usuario para Shopware y recuerde las credenciales:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

Salir de MariaDB:

mysql> exit

Reemplace dbname, nombre de usuario y contrase帽a con sus propios nombres.

Paso 4: instale el cliente Acme.sh y obtenga el certificado Let’s Encrypt (opcional)

No es necesario proteger su sitio web con HTTPS, pero es una buena pr谩ctica para asegurar el tr谩fico de su sitio. Para obtener un certificado TLS de Let’s Encrypt utilizaremos el cliente acme.sh. Acme.sh es un software de shell Unix puro para obtener certificados TLS de Let’s Encrypt sin dependencias.

Descargue e instale acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email聽protected]
source ~/.bashrc
cd ~

Compruebe la versi贸n de acme.sh:

acme.sh --version
# v2.8.1

Obtener RSA y ECC/ECDSA certificados para su dominio/nombre de host:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Si desea certificados falsos para realizar pruebas, puede agregar el indicador –staging a los comandos anteriores.

Despu茅s de ejecutar los comandos anteriores, sus certificados y claves estar谩n en: Publicidad

  • Para RSA: directorio /home/username/example.com.
  • Para ECC/ECDSA: directorio /home/username/example.com_ecc.

Para enumerar sus certificados emitidos, puede ejecutar:

acme.sh --list

Cree un directorio para almacenar sus certificados. Usaremos un directorio /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Instalar/copiar certificados en el directorio /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Todos los certificados se renovar谩n autom谩ticamente cada 60 d铆as.

Despu茅s de obtener los certificados, salga del usuario ra铆z y regrese al usuario sudo normal:

exit

Paso 5: instalar y configurar NGINX

Instale el servidor web NGINX:

sudo yum install -y nginx

Compruebe la versi贸n de NGINX:

nginx -v

Inicie y habilite el servicio Nginx:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Configure NGINX para Shopware. Ejecute sudo vim /etc/nginx/conf.d/shopware.conf y agregue la siguiente configuraci贸n:

server {
    listen 80;
    listen 443 ssl;
    
    server_name example.com;
    root /var/www/shopware;
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
    }
}

Verifique la configuraci贸n de NGINX para errores de sintaxis:

sudo nginx -t

Recargar servicio NGINX:

sudo systemctl reload nginx.service

Paso 6 – Instalar Shopware

Cree un directorio ra铆z de documentos para Shopware:

sudo mkdir -p /var/www/shopware

Cambie la propiedad del directorio /var/www/shopware a {jour_user}:

sudo chown -R {your_user}:{your_user} /var/www/shopware

Navegue al directorio ra铆z del documento:

cd /var/www/shopware

Descargue y descomprima la 煤ltima versi贸n de Shopware a trav茅s de wget:

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm shopware.zip

NOTA: Actualice la URL de descarga si hay una versi贸n m谩s reciente.

Cambie la propiedad del directorio /var/www/shopware a nginx.

sudo chown -R nginx:nginx /var/www/shopware

Ejecute sudo vim /etc/php-fpm.d/www.conf y configure el usuario y el grupo en nginx.

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Cree el directorio /var/lib/php/session y cambie su propiedad a un usuario nginx.

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session

Aumente memory_limit = 256M y upload_max_filesize = 6M, y configure allow_url_fopen = On si a煤n no est谩 configurado en el archivo /etc/php.ini.

sudo vim /etc/php.ini

Despu茅s de realizar cambios en el archivo /etc/php.ini, vuelva a cargar php-fpm.service:

sudo systemctl reload php-fpm.service

Abra su dominio/IP en el navegador web y siga el asistente de instalaci贸n. El backend de Shopware se encuentra en /backend ejemplo: http://example.com/backend.

Paso 7: complete la configuraci贸n de Shopware

Comience seleccionando el idioma y haga clic en Siguiente:

Asistente de configuraci贸n de Shopware

A continuaci贸n, aseg煤rese de cumplir con todos los requisitos de Shopware:

Se cumplen los requisitos del sistema

Acepte los TOS de Shopware y haga clic en Siguiente:

Aceptar licencia

Ingrese las credenciales de la base de datos y haga clic en Siguiente:

Configuraci贸n de la base de datos de Shopware

Inicie la instalaci贸n para crear tablas de base de datos:

Instalaci贸n de tablas de base de datos

Despu茅s de eso, ver谩 un mensaje sobre la importaci贸n exitosa de la base de datos:

Inicializaci贸n de la base de datos exitosa

Elija una licencia y haga clic en Siguiente:

Elegir licencia

Complete algunas configuraciones b谩sicas para finalizar la configuraci贸n y haga clic en Siguiente:

Ajustes b谩sicos

La instalaci贸n est谩 completa.

La instalaci贸n est谩 completa

Para acceder al 谩rea de administraci贸n, agregue /backend a su URL.

Iniciar sesi贸n en el backend de Shopware

Has instalado Shopware con 茅xito. 隆Disfruta de tu nueva tienda online!

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *