Cómo instalar Shopware 6 con Nginx y Let’s Encrypt SSL en Ubuntu 20.04
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 tecnológica bastante moderna y es una muy buena alternativa a otra aplicación de comercio electrónico, como Magento. Es una aplicación muy potente y flexible y te da la libertad de aprovechar rápida y fácilmente tu potencial de crecimiento y centrarte en la experiencia perfecta del cliente. Ofrece una interfaz de administración sencilla y fácil de usar para gestionar los clientes y los pedidos. Te permite gestionar los precios de los productos, cambiar o actualizar los temas, diseñar plantillas de correo electrónico para comercializar tus productos y generar resultados estadísticos.
En este tutorial, te 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 tu servidor.
- Una contraseña de root configurada en tu servidor.
Instalar Nginx y MariaDB
En primer lugar, instala el servidor web Nginx y el servidor de bases de datos MariaDB mediante el siguiente comando:
apt-get install nginx mariadb-server -y
Una vez instalados ambos paquetes, inicia el servicio de Nginx y MariaDB, y haz que se inicien al arrancar el sistema:
systemctl start nginx systemctl start mariadb systemctl enable nginx systemctl enable mariadb
Instalar PHP y otros componentes
Shopware 6 es compatible con versiones de PHP entre la 7.2 y la 7.3. Así que tendrás que instalar PHP junto con otras librerías en tu sistema.
Primero, añade el repositorio de PHP en tu sistema con el siguiente comando:
apt-get install software-properties-common -y add-apt-repository ppa:ondrej/php
Una vez añadido el repositorio, instala PHP con otras librerías con 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 instalados todos los paquetes, edita el archivo php.ini y modifica algunos ajustes deseados:
nano /etc/php/7.2/fpm/php.ini
Cambia las siguientes líneas:
memory_limit = 512M upload_max_filesize = 20M max_execution_time = 300
Guarda y cierra el archivo cuando hayas terminado.
A continuación, tendrás que instalar el cargador IonCube en tu 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, extrae el archivo descargado con el siguiente comando:
tar xfz ioncube_loaders_lin_x86-64.tar.gz
A continuación, localiza la ruta del directorio de la extensión PHP:
php -i | grep extension_dir
Deberías ver la siguiente salida:
extension_dir => /usr/lib/php/20190902 => /usr/lib/php/20190902
A continuación, copia el cargador de IonCube al directorio de extensiones de PHP:
cp ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20180731/
A continuación, edita el archivo php.ini y define el cargador de IonCube:
nano /etc/php/7.2/fpm/php.ini
Añade la siguiente línea dentro de la sección [PHP]:
zend_extension = /usr/lib/php/20180731/ioncube_loader_lin_7.2.so
Guarda y cierra el archivo y reinicia el servicio PHP-FPM para aplicar los cambios.
systemctl restart php7.2-fpm
Configurar la base de datos MariaDB
En primer lugar, asegura la instalación de MariaDB y establece la contraseña de root utilizando el siguiente script:
mysql_secure_installation
Responde a 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 hayas terminado, entra en el shell de MariaDB con el siguiente comando:
mysql -u root -p
Proporciona tu contraseña de root de MariaDB y luego crea 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, vacía los privilegios y sal de MariaDB con el siguiente comando:
MariaDB [(none)]> flush privileges; MariaDB [(none)]> exit;
Una vez que hayas terminado, puedes pasar al siguiente paso.
Instalar Composer
Composer es un gestor de dependencias para PHP. Se utiliza para instalar todas las dependencias de PHP necesarias para instalar Shopware.
Puedes instalarlo utilizando 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, verifica la versión de Composer con el siguiente comando:
composer --version
Deberías obtener la siguiente salida:
Composer version 1.10.7 2020-06-03 10:03:56
Descargar Shopware
Primero, crea un directorio para Shopware dentro del directorio raíz de la web Nginx:
mkdir /var/www/html/shopware
A continuación, cambia el directorio a shopware y descarga la última versión de Shopware con 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, descomprime el archivo descargado con el siguiente comando:
unzip install_6.2.2_1592398977.zip
A continuación, instala todas las dependencias de PHP con el siguiente comando:
composer install
A continuación, cambia la propiedad del directorio shopware y dale los permisos adecuados utilizando el siguiente comando:
chown -R www-data:www-data /var/www/html/shopware chmod -R 755 /var/www/html/shopware
Una vez que hayas terminado, puedes pasar al siguiente paso.
Configurar Nginx para Shopware
En primer lugar, crea un nuevo archivo de configuración del host virtual Nginx para Shopware:
nano /etc/nginx/sites-available/shopware.conf
Añade 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; } }
Guarda y cierra el archivo y luego habilita 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, comprueba si el Nginx tiene algún error de sintaxis con el siguiente comando:
nginx -t
Deberías obtener la siguiente salida:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
A continuación, reinicia el servicio Nginx para aplicar los cambios:
systemctl reload nginx
Accede al asistente de instalación de Shopware
En este punto, Shopware está instalado en tu sistema. Ahora, abre tu navegador web y escribe la URL http://shopware.linuxbuz.com. Deberías ver el asistente de instalación web de Shopware:
Selecciona tu idioma y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Asegúrate de que se han instalado todas las dependencias necesarias y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Acepta los términos y condiciones y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Proporciona los datos de tu base de datos y haz clic en el botón Iniciar la instalación. Una vez que la instalación se haya completado con éxito, deberías ver la siguiente pantalla:
Ahora, haz clic en el botón Siguiente. Deberías ver la pantalla de configuración de Shopware:
Proporciona el nombre de tu tienda, el correo electrónico, el país, el correo electrónico del administrador, el nombre de usuario del administrador, la contraseña y haz clic en el botón Siguiente. Serás redirigido a la pantalla del panel de control de Shopware:
Haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Instala los datos que desees y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Selecciona el agente de correo electrónico que desees y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Selecciona la opción que desees y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Configura tu PayPal o haz clic en el botón Omitir. Deberías ver la siguiente pantalla:
Configura tus credenciales de PayPal o haz clic en el botón Omitir. Deberías ver la siguiente pantalla:
Selecciona tu región y haz clic en el botón Siguiente. Deberías ver la siguiente pantalla:
Haz clic en el botón Omitir. Una vez configurado el Shopware, deberías ver la siguiente pantalla:
Haz clic en el botón Finalizar. Deberías ver el panel de control de Shopware en la siguiente pantalla:
Asegura el Shopware con Let’s Encrypt
Antes de empezar, necesitarás instalar el cliente Certbot en tu sistema para instalar y gestionar el SSL de Let’s Encrypt. Puedes instalarlo con el siguiente comando:
apt-get install certbot python3-certbot-nginx -y
Una vez instalado el cliente Certbot, ejecuta el siguiente comando para descargar e instalar Let’s Encrypt SSL para tu sitio web:
certbot --nginx -d shopware.linuxbuz.com
Proporciona tu dirección de correo electrónico y acepta las condiciones del 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
Selecciona si quieres redirigir el tráfico HTTP a HTTPS o no:
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
Escribe 2 y pulsa enter para iniciar el proceso. Una vez completada la instalación, deberías 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, tu sitio web de Shopware está protegido con Let’s Encrypt SSL. Ahora puedes acceder a tu sitio web de forma segura utilizando la URL https://shopware.linuxbuz.com.
Conclusión
Enhorabuena! has instalado con éxito Shopware con Nginx y Let’s Encrypt SSL en Ubuntu 20.04. Ahora puedes empezar a montar tu propio negocio online con Shopware. No dudes en preguntarme si tienes alguna duda.