C贸mo instalar Shopware con NGINX y Let’s Encrypt en Fedora 30

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 Fedora 30 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 5 est谩 actualmente hasta PHP 7.2.x compatible.

  • Un sistema operativo que ejecuta Fedora 29.
  • Un usuario no root con privilegios sudo.

Usar茅 el nombre de dominio ejemplo.com en este tutorial. Reemplace la palabra ejemplo.com con su propio nombre de dominio dondequiera que aparezca en los comandos y archivos de configuraci贸n a continuaci贸n (especialmente en el archivo de configuraci贸n nginx y los comandos Let’s encrypt).

Pasos iniciales

Verifique su versi贸n de Fedora:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

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 dnf upgrade -y

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

sudo dnf install -y curl wget vim git聽sudo unzip socat bash-completion

Paso 1 – Instalar PHP y extensiones de PHP

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

sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-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.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
#    with Zend OPcache v7.3.5, 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)

Este paso es opcional porque Shopware ahora funciona sin IonCube, pero puede haber extensiones o temas que usen IonCube, por lo que no est谩 de m谩s instalarlo. 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 dnf install -y mariadb-server

Compruebe la versi贸n de MariaDB:

mysql --version
#聽mysql聽 Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1

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 dnf install -y nginx

Compruebe la versi贸n de NGINX:

nginx -v
#聽nginx version: nginx/1.14.2

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 [::]:80;
    
    server_name example.com;
    root /var/www/shopware;

    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 unix:/run/php-fpm/www.sock;
    }
}

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 {su_usuario}. Reemplace {su_usuario} con el nombre de usuario del usuario con el que est谩 conectado actualmente:

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. Inicialmente, se establecer谩n en apache:

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

Cree el directorio /var/lib/php/session/ y cambie la propiedad a 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/7.2/fpm/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 *