Cómo instalar PrestaShop con Apache y Let’s Encrypt SSL en CentOS 8

PrestaShop es un carrito de la compra de código abierto escrito en PHP que sirve para crear y gestionar tu negocio online. Proporciona una interfaz sencilla y fácil de usar que te ayuda a lanzar tu tienda online en un tiempo mínimo. Ofrece un montón de características, como una interfaz fácil de usar, múltiples pasarelas de pago (PayPal, Google Checkout), un diseño que responde a los dispositivos móviles, soporte gratuito, multilingüe, analítica, informes y mucho más.

En este post, te mostraremos cómo instalar PrestaShop con Apache y un certificado SSL gratuito de Let’s Encrypt en CentOS 8.

Requisitos previos

  • Un servidor con CentOS 8.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root configurada en tu servidor.

Instalar el servidor LAMP

Antes de empezar, el servidor LAMP debe estar instalado en tu servidor. Si no está instalado, puedes instalarlo junto con otras extensiones de PHP mediante el siguiente comando:

dnf install httpd mariadb-server php php-cli php-bcmath php-mysqli php-gd php-pdo php-xmlrpc php-intl php-posix php-json php-curl php-zip unzip -y

Después de instalar todos los paquetes necesarios, edita el archivo php.ini y cambia algunos ajustes por defecto:

nano /etc/php.ini

Cambia las siguientes líneas:

max_input_vars = 3000
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 600
memory_limit = 256M
date.timezone = Asia/Kolkata

Guarda y cierra el archivo y, a continuación, inicia el servicio de Apache y MariaDB y permite que se inicien al reiniciar el sistema:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

En este punto, el servidor LAMP está instalado en tu servidor.

Crear una base de datos para PrestaShop

PrestaShop utiliza una base de datos MySQL/MariaDB para almacenar sus datos. Así que tendrás que crear una base de datos y suer para PrestaShop.

En primer lugar, inicia sesión en MariaDB con el siguiente comando:

mysql

Una vez iniciada la sesión, crea una base de datos y un usuario con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE prestashopdb;
MariaDB [(none)]> CREATE USER 'prestashopuser'@'localhost' IDENTIFIED BY 'securepassword';

A continuación, concede todos los privilegios a la prestashopdb con el siguiente comando:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashopdb. * TO 'prestashopuser'@'localhost';

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 PrestaShop

A continuación, tendrás que descargar la última versión de PrestaShop desde su página oficial de descargas. Puedes descargarla con el siguiente comando:

wget https://download.prestashop.com/download/releases/prestashop_1.7.7.3.zip

Una vez completada la descarga, descomprime el archivo descargado en el directorio raíz de la web de Apache con el siguiente comando:

unzip prestashop_1.7.7.3.zip -d /var/www/html/prestashop

A continuación, establece la propiedad adecuada en el directorio de prestashop utilizando el siguiente comando:

chown -R apache:apache /var/www/html/prestashop

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar Apache para PrestaShop

A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para PrestaShop. Puedes crearlo con el siguiente comando:

nano /etc/httpd/conf.d/prestashop.conf

Añade las siguientes líneas:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName prestashop.example.com
    DocumentRoot /var/www/html/prestashop

    <Directory /var/www/html/prestashop>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/prestashop-error_log
    CustomLog /var/log/httpd/prestashop-access_log common
</VirtualHost>

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio Apache para aplicar los cambios:

systemctl restart httpd

A continuación, comprueba el estado del servicio Apache con el siguiente comando:

systemctl status httpd

Deberías obtener la siguiente salida:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2021-04-07 01:04:19 EDT; 2h 2min ago
     Docs: man:httpd.service(8)
 Main PID: 47841 (httpd)
   Status: "Total requests: 313; Idle/Busy workers 100/0;Requests/sec: 0.0425; Bytes served/sec: 1.2KB/sec"
    Tasks: 278 (limit: 12524)
   Memory: 35.9M
   CGroup: /system.slice/httpd.service
           ??47841 /usr/sbin/httpd -DFOREGROUND
           ??47843 /usr/sbin/httpd -DFOREGROUND
           ??47844 /usr/sbin/httpd -DFOREGROUND
           ??47845 /usr/sbin/httpd -DFOREGROUND
           ??47846 /usr/sbin/httpd -DFOREGROUND
           ??48061 /usr/sbin/httpd -DFOREGROUND

Apr 07 01:04:19 centos8 systemd[1]: Stopped The Apache HTTP Server.
Apr 07 01:04:19 centos8 systemd[1]: Starting The Apache HTTP Server...

Una vez que hayas terminado, puedes pasar al siguiente paso.

Configurar el cortafuegos

A continuación, tendrás que permitir los puertos 80 y 443 a través del cortafuegos. Puedes permitirlos con el siguiente comando:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https

A continuación, recarga el cortafuegos para aplicar los cambios:

firewall-cmd --reload

Una vez que hayas terminado, puedes pasar al siguiente paso.

Accede a PrestaShop

Ahora, abre tu navegador web y accede a la interfaz web de PrestaShop utilizando la URL http://prestashop.example.com. Serás redirigido a la siguiente página:

Instalador de Prestashop

Elige la lengua

Selecciona tu idioma y haz clic en el botón Siguiente. Deberías ver la siguiente página:

Contrato de licencia

Acepta el acuerdo de licencia y haz clic en el botón Siguiente. Deberías ver la siguiente página:

Detalles de la tienda

Cuenta de administrador

Proporciona el nombre de tu tienda, la información del país, la información de la cuenta y haz clic en el botón Siguiente. Deberías ver la siguiente página:

Configuración de la base de datos

Proporciona el nombre de tu base de datos, el nombre de usuario de la base de datos, la contraseña y haz clic en el botón Siguiente. Una vez finalizada la instalación, deberías ver la siguiente página:

La instalación de Prestashop ha finalizado con éxito

Haz clic en el botón Gestionar tu tienda. Deberías ver la siguiente página:

Eliminar el instalador

Ahora, elimina la carpeta de instalación con el siguiente comando:

rm -rf /var/www/html/prestashop/install

A continuación, haz clic en la URL de administración de PrestaShop. Deberías ver la siguiente página:

Inicio de sesión del administrador de Prestashop

Proporciona tu nombre de usuario y contraseña de administrador y haz clic en el botón INICIAR SESIÓN. Deberías ver el panel de control de PrestaShop en la siguiente página:

Panel de control de Prestashop

Asegura PrestaShop con Let’s Encrypt SSL

A continuación, tendrás que instalar el cliente Certbot para instalar el SSL de Let’s Encrypt para PrestaShop. Puedes instalarlo con el siguiente comando:

dnf install letsencrypt python3-certbot-apache

A continuación, obtén e instala un certificado SSL para tu dominio lets con el siguiente comando:

certbot --apache -d prestashop.example.com

Se te pedirá que proporciones tu dirección de correo electrónico y que aceptes las condiciones del servicio:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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
Account registered.
Requesting a certificate for prestashop.example.com
Performing the following challenges:
http-01 challenge for prestashop.example.com
Waiting for verification.
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/prestashop.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/prestashop.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://prestashop.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email protected]).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/prestashop.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/prestashop.example.com/privkey.pem
   Your certificate will expire on 2021-06-09. 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

Ahora puedes acceder a tu sitio web de forma segura utilizando la URL https://prestashop.example.com.

Conclusión

Enhorabuena! has instalado con éxito PrestaShop con Apache y Let’s Encrypt SSL en CentOS 8. Ahora puedes añadir tu producto a PrestaShop y empezar a vender online. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...