GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat PrestaShop na Ubuntu 18.04

PrestaShopis je bezplatná a otevřená platforma elektronického obchodování. Je založen na PHP a MySQL a lze jej rozšířit o bezplatné a prémiové pluginy a motivy.

Díky funkcím, jako je intuitivní administrativní rozhraní, více platebních bran, vícejazyčný, analytický a reportingový, je PrestaShop platformou, kterou si volí mnoho online obchodníků.

V tomto tutoriálu vám ukážeme, jak nainstalovat PrestaShop na server Ubuntu 18.04. Budeme používat Nginx jako webový server, nejnovější PHP 7.2 a MySQL/MariaDB jako databázový server.

Předpoklady #

Než budete pokračovat v tomto kurzu, ujistěte se, že jste splnili následující předpoklady:

  • Mějte název domény odkazující na IP vašeho veřejného serveru. Použijeme example.com .
  • Nginx se nainstaluje na váš server Ubuntu podle těchto pokynů.
  • Certifikát SSL nainstalovaný pro vaši doménu k šifrování informací o uživateli. Bezplatný certifikát Let’s Encrypt SSL si můžete nainstalovat podle těchto pokynů.

Aktualizujte systémové balíčky na nejnovější verze a nainstalujte nástroj pro rozbalení:

sudo apt update && sudo apt upgradesudo apt install unzip

Vytvoření databáze MySQL #

PrestaShop ukládá své informace do databáze MySQL.

Pokud je na vašem serveru nainstalováno MySQL nebo MariaDB, můžete tento krok přeskočit. V opačném případě nainstalujte serverový balíček MySQL 5.7 z výchozích úložišť Ubuntu zadáním:

sudo apt install mysql-server mysql-client
Pro čerstvé instalace MySQL se doporučuje spustit mysql_secure_installation příkaz ke zlepšení zabezpečení vašeho serveru MySQL.

Chcete-li vytvořit databázi, přihlaste se do prostředí mysql:

sudo mysql

Z prostředí MySQL spusťte následující příkaz SQL a vytvořte novou databázi s názvem prestashop :

CREATE DATABASE prestashop;

Dále vytvořte uživatelský účet MySQL s názvem prestashop a udělte uživateli potřebná oprávnění spuštěním následujícího příkazu:

GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
Nezapomeňte změnit change-with-strong-password se silným heslem.

Po dokončení ukončete konzolu MySQL zadáním:

EXIT;

Instalace a konfigurace PHP #

PHP 7.2 je výchozí verze PHP v Ubuntu 18.04 a je plně podporována a doporučena pro PrestaShop.

Spusťte následující příkaz pro instalaci PHP a všech požadovaných modulů PHP:

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

Jakmile je proces instalace dokončen, služba PHP-FPM se automaticky spustí. Můžete to ověřit zadáním:

sudo systemctl status php7.2-fpm

Výstup by měl vypadat nějak takto:

* 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"

Spusťte následující sed příkazy pro nastavení doporučených možností PHP:

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

Stahování PrestaShopu #

V době psaní tohoto článku je nejnovější stabilní verze PrestaShopu verze 1.7.6.2 .

Stáhněte si nejnovější verzi PrestaShopu ze stránky PrestaShop Downloads pomocí následujícího příkazu wget:

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

Po dokončení stahování vytvořte adresář, který bude obsahovat naše soubory PrestaShop:

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

Dále rozbalte archiv PrestaShop:

unzip prestashop_*.zip

Tento archiv obsahuje další zip soubor „prestashop.zip“, který obsahuje všechny soubory PrestaShopu. Extrahujte soubory do kořenového adresáře dokumentů domény:

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

Nastavte správná oprávnění, aby měl webový server plný přístup k souborům a adresářům webu pomocí následujícího chown příkaz:

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

Konfigurace Nginx #

Nyní byste již měli mít na svém serveru Ubuntu nainstalovaný Nginx s certifikátem SSL. Pokud ne, zkontrolujte předpoklady pro tento tutoriál.

Otevřete textový editor a vytvořte následující soubor:

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;
    }
}

Nezapomeňte nahradit example.com vaší doménou PrestaShop a „admin_CHANGE_ME“ vaším admin adresářem. Název adresáře najdete vypsáním obsahu kořenového adresáře Prestashop:

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

Také se ujistěte, že používáte správnou cestu k souborům certifikátu SSL. Fragmenty použité v této konfiguraci jsou vytvořeny v této příručce.

Před restartováním služby Nginx zkontrolujte, zda konfigurace neobsahuje chyby syntaxe:

sudo nginx -t

Výstup by měl vypadat takto:

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

Nakonec restartujte službu Nginx zadáním:

sudo systemctl restart nginx

Instalace PrestaShop #

Nyní, když je PrestaShop stažen a konfigurace serveru dokončena, můžete dokončit instalaci přes webové rozhraní.

Otevřete prohlížeč, zadejte svou doménu a objeví se obrazovka podobná následující:

Vyberte jazyk, který chcete používat, a klikněte na tlačítko „Další“.

Na další obrazovce se vám zobrazí licenční smlouva PrestaShop. Přečtěte si licenci a vyberte „Souhlasím s výše uvedenými podmínkami“. pokračovat:

Dále uvidíte následující informační stránku:

Ujistěte se, že jsou splněny všechny předinstalační požadavky a váš systém je kompatibilní s PrestaShop.

Na další obrazovce budete muset zadat podrobnosti o svém obchodu. E-mailová adresa je uživatelské jméno pro přístup k administračnímu backendu PrestaShopu.

Dále vás průvodce nastavením požádá o zadání údajů o připojení k databázi. Zadejte podrobnosti o uživateli MySQL a databázi, které jste dříve vytvořili:

Klikněte na tlačítko „Další“ a instalace se spustí:

Instalace může trvat několik minut, po dokončení se zobrazí následující stránka s informací, že PrestaShop byl nainstalován.

Z bezpečnostních důvodů budete muset smazat instalační adresář. Chcete-li tak učinit, přejděte zpět do terminálu a zadejte následující rm příkaz:

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

Chcete-li získat přístup k administrativnímu panelu PrestaShop, klikněte na tlačítko „Spravovat svůj obchod“. Zadejte svůj e-mail a heslo a budete přesměrováni na administrační panel.

Odtud můžete začít přizpůsobovat svou instalaci PrestaShopu a přidávat nové produkty.


Ubuntu
  1. Jak nainstalovat MySQL 8.0 v Ubuntu 18.04

  2. Jak nainstalovat MySQL na Ubuntu 20.04

  3. Jak nainstalovat PHP 7.4 / 7.3 / 7.2 na Ubuntu 18.04 / Ubuntu 16.04

  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Jak nainstalovat Magento 2 na Ubuntu 18.04

  3. Jak nainstalovat Joomla 3.9 na Ubuntu 20.04

  1. Jak nainstalovat MySQL 8.0 na Ubuntu 18.04

  2. Jak nainstalovat MySQL na Ubuntu

  3. Jak nainstalovat MySQL Server v Ubuntu