Cómo instalar Shopware 6 con Nginx y Let’s Encrypt SSL en Ubuntu 20.04

Tienda 6

Shopware CE es una plataforma de comercio electrónico gratuita y de código abierto escrita en Symfony y Vue.js. Se basa en una pila de tecnología bastante moderna y es una muy buena alternativa a otra aplicación de comercio electrónico, como Magento. Es una aplicación muy poderosa y flexible y le brinda la libertad de aprovechar rápida y fácilmente su potencial de crecimiento y enfocarse en la experiencia perfecta del cliente. Proporciona una interfaz de administración simple y fácil de usar para administrar clientes y pedidos. Le permite administrar los precios de los productos, cambiar o actualizar temas, diseñar plantillas de correo electrónico para comercializar sus productos y generar resultados estadísticos.

En este tutorial, le mostraremos cómo instalar Shopware CE con Nginx y Let’s Encrypt en Ubuntu 20.04.

requisitos previos

  • Un servidor con Ubuntu 20.04 con un mínimo de 4 GB de RAM.
  • Un nombre de dominio válido apuntado con su servidor.
  • Una contraseña de root está configurada en su servidor.

Instalar Nginx y MariaDB

Primero, instale el servidor web Nginx y el servidor de la base de datos MariaDB usando el siguiente comando:

apt-get install nginx mariadb-server -y

Una vez que ambos paquetes estén instalados, inicie el servicio Nginx y MariaDB, y habilítelos para que se inicien en el arranque del sistema:

systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadb

Instalar PHP y otros componentes

Shopware 6 admite versiones de PHP entre 7.2 y 7.3. Por lo tanto, deberá instalar PHP junto con otras bibliotecas en su sistema.

Primero, agregue el repositorio de PHP en su sistema con el siguiente comando:

apt-get install software-properties-common -y
add-apt-repository ppa:ondrej/php

Una vez que se agrega el repositorio, instale PHP con otras bibliotecas usando el siguiente comando:

apt-get install php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mysql php7.2-curl php7.2-json php7.2-zip php7.2-gd php7.2-xml php7.2-mbstring php7.2-intl php7.2-opcache git unzip socat curl bash-completion -y

Una vez que todos los paquetes estén instalados, edite el archivo php.ini y modifique algunas configuraciones deseadas:

nano /etc/php/7.2/fpm/php.ini

Cambia las siguientes líneas:

memory_limit = 512M
upload_max_filesize = 20M
max_execution_time = 300

Guarde y cierre el archivo cuando haya terminado.

A continuación, deberá instalar el cargador IonCube en su sistema.

Primero, descárgalo con el siguiente comando:

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

Una vez descargado, extraiga el archivo descargado con el siguiente comando:

tar xfz ioncube_loaders_lin_x86-64.tar.gz

A continuación, busque la ruta del directorio de la extensión de PHP:

php -i | grep extension_dir

Debería ver el siguiente resultado:

extension_dir => /usr/lib/php/20190902 => /usr/lib/php/20190902

A continuación, copie el cargador IonCube en el directorio de extensiones de PHP:

cp ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20180731/

A continuación, edite el archivo php.ini y defina el cargador IonCube:

nano /etc/php/7.2/fpm/php.ini

Agregue la siguiente línea dentro [PHP] sección:

zend_extension = /usr/lib/php/20180731/ioncube_loader_lin_7.2.so

Guarde y cierre el archivo y luego reinicie el servicio PHP-FPM para aplicar los cambios.

systemctl restart php7.2-fpm

Configurar la base de datos MariaDB

Primero, asegure la instalación de MariaDB y configure la contraseña de root usando el siguiente script:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): 
Set root password? [Y/n] Y
New password: 
Re-enter new 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

Una vez que haya terminado, inicie sesión en MariaDB shell con el siguiente comando:

mysql -u root -p

Proporcione su contraseña raíz de MariaDB y luego cree una base de datos y un usuario para Shopware:

MariaDB [(none)]> CREATE DATABASE shopwaredb;
MariaDB [(none)]> GRANT ALL ON shopwaredb.* TO 'shopware'@'localhost' IDENTIFIED BY 'password';

A continuación, elimine los privilegios y salga de MariaDB con el siguiente comando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Una vez que haya terminado, puede continuar con el siguiente paso.

Instalar compositor

Composer es un administrador de dependencias para PHP. Se utiliza para instalar todas las dependencias de PHP necesarias para instalar Shopware.

Puede instalarlo usando el comando curl como se muestra a continuación:

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

Una vez instalado, verifique la versión de Composer con el siguiente comando:

composer --version

Deberías obtener el siguiente resultado:

Composer version 1.10.7 2020-06-03 10:03:56

Descargar Shopware

Primero, cree un directorio para Shopware dentro del directorio raíz web de Nginx:

mkdir /var/www/html/shopware

Luego, cambie el directorio a shopware y descargue la última versión de Shopware usando el siguiente comando:

cd /var/www/html/shopware
wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_6.2.2_1592398977.zip

Una vez descargado, descomprima el archivo descargado con el siguiente comando:

unzip install_6.2.2_1592398977.zip

Luego, instala todas las dependencias de PHP usando el siguiente comando:

composer install

A continuación, cambie la propiedad del directorio de la tienda y otorgue los permisos adecuados con el siguiente comando:

chown -R www-data:www-data /var/www/html/shopware
chmod -R 755 /var/www/html/shopware

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx para Shopware

Primero, cree un nuevo archivo de configuración de host virtual Nginx para Shopware:

nano /etc/nginx/sites-available/shopware.conf

Agregue las siguientes líneas:

server {
    listen 80;

    index index.php index.html;
    server_name shopware.linuxbuz.com;
    root /var/www/html/shopware/public;

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

    location /recovery/update/ {
        location /recovery/update/assets {
        }
        if (!-e $request_filename){
            rewrite . /recovery/update/index.php last;
        }
    }

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

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        client_max_body_size 24M;
        client_body_buffer_size 128k;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        http2_push_preload on;
    }
}

Guarde y cierre el archivo, luego habilite el archivo de host virtual de Shopware con el siguiente comando:

ln -s /etc/nginx/sites-available/shopware.conf /etc/nginx/sites-enabled/

A continuación, compruebe si hay algún error de sintaxis en Nginx con el siguiente comando:

nginx -t

Deberías obtener el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicie el servicio Nginx para aplicar los cambios:

systemctl reload nginx

Acceder al asistente de instalación de Shopware

En este punto, Shopware está instalado en su sistema. Ahora, abra su navegador web y escriba la URL http://shopware.linuxbuz.com. Debería ver el asistente de instalación web de Shopware:

Tienda 6

Seleccione su idioma y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Comprobación de requisitos del sistema

Asegúrese de que todas las dependencias requeridas estén instaladas y luego haga clic en el próximo botón. Debería ver la siguiente pantalla:

Aceptar terminos y condiciones

Acepte los términos y condiciones, y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Configurar la base de datos de Shopware

Proporcione los detalles de su base de datos y haga clic en el Iniciar instalación botón. Una vez que la instalación se haya completado con éxito, debería ver la siguiente pantalla:

Shopware ha sido instalado

Ahora, haga clic en el próximo botón. Debería ver la pantalla de configuración de Shopware:

Configuración de la tienda Shopware

Proporcione el nombre de su tienda, correo electrónico, país, correo electrónico de administrador, nombre de usuario de administrador, contraseña y haga clic en el próximo botón. Se le redirigirá a la pantalla del panel de control de Shopware:

Tablero de instrumentos de la tienda

Haga clic en el próximo botón. Debería ver la siguiente pantalla:

Importación de datos

Instale los datos deseados y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Configuración de correo electrónico

Seleccione su agente de correo electrónico deseado y haga clic en el próximo botón. Debería ver la siguiente pantalla:

agente de correo local

Seleccione la opción deseada y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Configurar pagos de Paypal en Shopware

Configura tu PayPal o haz click en el Saltar botón. Debería ver la siguiente pantalla:

Modo Sandbox de Paypal

Configure sus credenciales de PayPal o haga clic en el Saltar botón. Debería ver la siguiente pantalla:

Complementos recomendados

Seleccione su región y haga clic en el próximo botón. Debería ver la siguiente pantalla:

Cuenta de tienda

Haga clic en el Saltar botón. Una vez que el Shopware esté configurado, debería ver la siguiente pantalla:

Configuración de Shopware finalizada

Haga clic en el Finalizar botón. Debería ver el panel de control de Shopware en la siguiente pantalla:

Tienda 6

Tienda segura con Let’s Encrypt

Antes de comenzar, deberá instalar el cliente Certbot en su sistema para instalar y administrar Let’s Encrypt SSL. Puedes instalarlo usando el siguiente comando:

apt-get install certbot python3-certbot-nginx -y

Una vez que el cliente de Certbot esté instalado, ejecute el siguiente comando para descargar e instalar Let’s Encrypt SSL para su sitio web:

certbot --nginx -d shopware.linuxbuz.com

Proporcione su dirección de correo electrónico y acepte el término de servicio como se muestra a continuación:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for shopware.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/shopware.conf

Seleccione si desea redirigir o no el tráfico HTTP a HTTPS:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Escriba 2 y presione enter para iniciar el proceso. Una vez que se complete la instalación, debería ver el siguiente resultado:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/shopware.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://shopware.linuxbuz.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=shopware.linuxbuz.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/shopware.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/shopware.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-09-22. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

En este punto, su sitio web de Shopware está protegido con Let’s Encrypt SSL. Ahora puede acceder a su sitio web de forma segura utilizando la URL https://shopware.linuxbuz.com.

Conclusión

¡Felicidades! ha instalado con éxito Shopware con Nginx y Let’s Encrypt SSL en Ubuntu 20.04. Ahora puede comenzar a configurar su propio negocio en línea usando Shopware. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

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