GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar PrestaShop en Ubuntu 18.04

PrestaShop es una plataforma de comercio electrónico gratuita y de código abierto. Se basa en PHP y MySQL y se puede ampliar con complementos y temas gratuitos y premium.

Con características como una interfaz administrativa intuitiva, múltiples pasarelas de pago, multilingüe, analítico y de informes, PrestaShop es una plataforma elegida por muchos comerciantes en línea.

En este tutorial, le mostraremos cómo instalar PrestaShop en el servidor Ubuntu 18.04. Usaremos Nginx como servidor web, el último PHP 7.2 y MySQL/MariaDB como servidor de base de datos.

Requisitos previos #

Asegúrese de cumplir con los siguientes requisitos previos antes de continuar con este tutorial:

  • Tenga un nombre de dominio que apunte a la IP de su servidor público. Usaremos example.com .
  • Nginx se instala en su servidor Ubuntu siguiendo estas instrucciones.
  • Un certificado SSL instalado para su dominio para encriptar la información del usuario. Puede instalar un certificado SSL gratuito de Let's Encrypt siguiendo estas instrucciones.

Actualice los paquetes del sistema a las últimas versiones e instale la utilidad de descompresión:

sudo apt update && sudo apt upgradesudo apt install unzip

Creando una base de datos MySQL #

PrestaShop almacena su información en una base de datos MySQL.

Si MySQL o MariaDB están instalados en su servidor, puede omitir este paso. De lo contrario, instale el paquete del servidor MySQL 5.7 desde los repositorios predeterminados de Ubuntu escribiendo:

sudo apt install mysql-server mysql-client
Para instalaciones nuevas de MySQL, se recomienda ejecutar mysql_secure_installation comando para mejorar la seguridad de su servidor MySQL.

Para crear una base de datos, inicie sesión en mysql shell:

sudo mysql

Desde el shell de MySQL, ejecute la siguiente instrucción SQL para crear una nueva base de datos llamada prestashop :

CREATE DATABASE prestashop;

A continuación, cree una cuenta de usuario de MySQL llamada prestashop y otorgue los permisos necesarios al usuario ejecutando el siguiente comando:

GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
No olvides cambiar change-with-strong-password con una contraseña segura.

Una vez hecho esto, salga de la consola de MySQL escribiendo:

EXIT;

Instalación y configuración de PHP #

PHP 7.2 es la versión predeterminada de PHP en Ubuntu 18.04 y es totalmente compatible y recomendado para PrestaShop.

Ejecute el siguiente comando para instalar PHP y todos los módulos PHP necesarios:

sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

Una vez que se complete el proceso de instalación, el servicio PHP-FPM se iniciará automáticamente. Puede verificarlo escribiendo:

sudo systemctl status php7.2-fpm

La salida debería verse así:

* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-03-24 11:53:33 PDT; 14s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 15853 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"

Ejecute el siguiente sed Comandos para configurar las opciones de PHP recomendadas:

sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

Descargando PrestaShop #

Al momento de escribir este artículo, la última versión estable de PrestaShop es la versión 1.7.6.2 .

Descargue la última versión de PrestaShop desde la página de descargas de PrestaShop con el siguiente comando wget:

cd /tmpwget https://download.prestashop.com/download/releases/prestashop_1.7.6.2.zip

Cuando se complete la descarga, cree un directorio que contendrá nuestros archivos de PrestaShop:

sudo mkdir -p /var/www/html/example.com

A continuación, extraiga el archivo de PrestaShop:

unzip prestashop_*.zip

Este archivo contiene otro archivo zip “prestashop.zip”, que contiene todos los archivos de PrestaShop. Extraiga los archivos en el directorio raíz de documentos del dominio:

sudo unzip prestashop.zip -d /var/www/html/example.com

Establezca los permisos correctos para que el servidor web pueda tener acceso completo a los archivos y directorios del sitio usando el siguiente chown comando:

sudo chown -R www-data: /var/www/html

Configuración de Nginx #

A estas alturas, ya debería tener Nginx con un certificado SSL instalado en su servidor Ubuntu. De lo contrario, verifique los requisitos previos para este tutorial.

Abre tu editor de texto y crea el siguiente archivo:

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
server {

    listen 80;
    listen 443 ssl http2;

    server_name example.com www.example.com;
    root /var/www/html/example.com;
    index index.php;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # Cloudflare / Max CDN fix
    location ~* \.(eot|otf|ttf|woff(?:2)?)$ {
        add_header Access-Control-Allow-Origin *;
    }

    # Do not save logs for these
    location = /favicon.ico {
        auth_basic off;
        allow all;
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        auth_basic off;
        allow all;
        log_not_found off;
        access_log off;
    }

    # Images
    rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last;
    rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
    rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
    rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last;
    rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last;

    # AlphaImageLoader for IE and fancybox
    rewrite ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 last;

    # Web service API
    rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;

    # Installation sandbox
    rewrite ^(/install(?:-dev)?/sandbox)/(.*) /$1/test.php last;

    #Change this block to your admin folder
    location /admin_CHANGE_ME {
        if (!-e $request_filename) {
            rewrite ^/.*$ /admin_CHANGE_ME/index.php last;
        }
    }

    # File security
    # .htaccess .DS_Store .htpasswd etc
    location ~ /\. {
        deny all;
    }
    # Source code directories
    location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ {
        deny all;
    }
    # Prevent exposing other sensitive files
    location ~ \.(yml|log|tpl|twig|sass)$ {
        deny all;
    }

    # Prevent injection of php files
    location /upload {
        location ~ \.php$ {
            deny all;
        }
    }
    location /img {
        location ~ \.php$ {
            deny all;
        }
    }

    # PHP FPM part
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}

No olvide reemplazar example.com con su dominio de PrestaShop y "admin_CHANGE_ME" con su directorio de administración. Puede encontrar el nombre del directorio enumerando el contenido del directorio raíz de Prestashop:

sudo ls -l /var/www/html/example.com | grep admin

También asegúrese de usar la ruta correcta a los archivos del certificado SSL. Los fragmentos utilizados en esta configuración se crean en esta guía.

Antes de reiniciar el servicio Nginx, verifique la configuración en busca de errores de sintaxis:

sudo nginx -t

La salida debería verse así:

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

Finalmente, reinicie el servicio Nginx escribiendo:

sudo systemctl restart nginx

Instalando PrestaShop #

Ahora que se descargó PrestaShop y se completó la configuración del servidor, puede finalizar la instalación a través de la interfaz web.

Abra su navegador, escriba su dominio y aparecerá una pantalla similar a la siguiente:

Seleccione el idioma que le gustaría usar y haga clic en el botón "Siguiente".

En la siguiente pantalla, se le presentará el acuerdo de licencia de PrestaShop. Lea la licencia y seleccione "Acepto los términos y condiciones anteriores". para continuar:

A continuación, verá la siguiente página de información:

Asegúrese de que se cumplan todos los requisitos previos a la instalación y que su sistema sea compatible con PrestaShop.

En la siguiente pantalla, deberá ingresar los detalles de su tienda. La dirección de correo electrónico es el nombre de usuario para acceder al backend de administración de PrestaShop.

A continuación, el asistente de configuración le pedirá que ingrese los detalles de conexión de su base de datos. Ingrese el usuario de MySQL y los detalles de la base de datos que creó anteriormente:

Haga clic en el botón "Siguiente" y comenzará la instalación:

La instalación puede tardar unos minutos, una vez completada aparecerá la siguiente página informándole que se ha instalado PrestaShop.

Por razones de seguridad, deberá eliminar el directorio de instalación. Para ello, vuelve a la terminal e introduce el siguiente rm comando:

sudo rm -rf /var/www/html/example.com/install

Para acceder a su panel administrativo de PrestaShop, haga clic en el botón "Gestionar su tienda". Ingrese su correo electrónico y contraseña, y será redirigido al panel de administración.

Desde aquí, puede comenzar a personalizar su instalación de PrestaShop y agregar nuevos productos.


Ubuntu
  1. Cómo instalar MySQL 8.0 en Ubuntu 18.04

  2. Cómo instalar MySQL en Ubuntu 20.04

  3. Cómo instalar MySQL en Ubuntu 18.04

  4. Cómo instalar Magento 2 en Ubuntu 18.04

  5. Cómo instalar PHP 7.4/7.3/7.2 en Ubuntu 18.04/Ubuntu 16.04

Cómo instalar Magento en Ubuntu 14.04

Cómo instalar Gibbon en Ubuntu 14.04

Cómo instalar Moodle en Ubuntu 14.04

Cómo instalar Drupal en Ubuntu 14.04

Cómo instalar la pila LAMP en Ubuntu 17.04

Cómo instalar MySQL en Ubuntu 22.04