Как установить PrestaShop в Ubuntu 18.04

How to Install PrestaShop on Ubuntu 18.04

25 Февраля 2021 | Ubuntu

В этом руководстве мы покажем вам, как установить PrestaShop на сервер Ubuntu 18.04. Мы будем использовать Nginx в качестве веб-сервера, последнюю версию PHP 7.2 и MySQL / MariaDB в качестве сервера базы данных.

Как установить PrestaShop в Ubuntu 18.04

PrestaShop - это бесплатная платформа для электронной коммерции с открытым исходным кодом. Он основан на PHP и MySQL и может быть расширен бесплатными и платными плагинами и темами.

Благодаря таким функциям, как интуитивно понятный административный интерфейс, несколько платежных шлюзов, многоязычный интерфейс, аналитика и отчетность, PrestaShop является предпочтительной платформой для многих онлайн-продавцов.
 

Прежде чем вы приступите

Прежде чем продолжить изучение этого руководства, убедитесь, что вы выполнили следующие предварительные требования:

  • Иметь доменное имя, указывающее на IP-адрес вашего публичного сервера. Мы будем использовать example.com .
  • Nginx устанавливается на ваш сервер Ubuntu, следуя этим инструкциям .
  • Сертификат SSL, установленный для вашего домена для шифрования информации пользователя. Вы можете установить бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям .

Обновите системные пакеты до последних версий и установите утилиту unzip :
 

sudo apt update && sudo apt upgrade sudo apt install unzip 


Создание базы данных MySQL

PrestaShop хранит свою информацию в базе данных MySQL.

Если на вашем сервере установлен MySQL или MariaDB, вы можете пропустить этот шаг. В противном случае установите пакет сервера MySQL 5.7 из репозиториев Ubuntu по умолчанию, набрав:

sudo apt install mysql-server mysql-client 
Для новых установок MySQL рекомендуется выполнить mysql_secure_installation команду, чтобы повысить безопасность вашего сервера MySQL.

Чтобы создать базу данных, войдите в оболочку mysql:
 

sudo mysql 


Из оболочки MySQL запустите следующий оператор SQL, чтобы создать новую базу данных с именем prestashop :
 

CREATE DATABASE prestashop; 


Затем создайте учетную запись пользователя MySQL с именем prestashop и предоставьте пользователю необходимые разрешения , выполнив следующую команду:
 

GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password'; 

Не забудьте изменить change-with-strong-password надежный пароль.

После этого выйдите из консоли MySQL, набрав:
 

EXIT; 


Установка и настройка PHP

PHP 7.2 - это версия PHP по умолчанию в Ubuntu 18.04, она полностью поддерживается и рекомендуется для PrestaShop.

Выполните следующую команду, чтобы установить PHP и все необходимые модули 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 


После завершения процесса установки служба PHP-FPM запустится автоматически. Вы можете проверить это, набрав:
 

sudo systemctl status php7.2-fpm 


Результат должен выглядеть примерно так:
 

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

Выполните следующие sed команды, чтобы установить рекомендуемые параметры PHP:
 

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


Скачивание PrestaShop

На момент написания этой статьи последней стабильной версией PrestaShop является версия 1.7.6.2 .

Загрузите последнюю версию PrestaShop со страницы загрузок PrestaShop, используя следующую команду wget :
 

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


Когда загрузка будет завершена, создайте каталог, в котором будут храниться наши файлы PrestaShop:
 

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


Затем распакуйте архив PrestaShop :
 

unzip prestashop_*.zip 


Этот архив содержит еще один zip-файл «prestashop.zip», который содержит все файлы PrestaShop. Распакуйте файлы в корневой каталог документов домена:
 

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


Установите правильные разрешения, чтобы веб-сервер мог иметь полный доступ к файлам и каталогам сайта, используя следующую chown команду:
 

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

Настройка Nginx

К настоящему времени у вас уже должен быть Nginx с SSL-сертификатом, установленным на вашем сервере Ubuntu. Если нет, проверьте предварительные условия для этого руководства.

Откройте текстовый редактор и создайте следующий файл:
 

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

Не забудьте заменить example.com своим доменом PrestaShop, а «admin_CHANGE_ME» - своим административным каталогом. Вы можете найти имя каталога, перечислив содержимое корневого каталога Prestashop:
 

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


Также убедитесь, что вы используете правильный путь к файлам сертификатов SSL. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве .

Перед перезапуском службы Nginx проверьте конфигурацию на наличие синтаксических ошибок:
 

sudo nginx -t 


Результат должен выглядеть так:
 

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

Наконец, перезапустите службу Nginx , набрав:

sudo systemctl restart nginx 


Установка PrestaShop

Теперь, когда PrestaShop загружен и настройка сервера завершена, вы можете завершить установку через веб-интерфейс.

Откройте браузер, введите свой домен, и появится экран, подобный следующему:
 


 

Выберите язык, который вы хотите использовать, и нажмите кнопку «Далее».

На следующем экране вам будет представлено лицензионное соглашение PrestaShop. Прочтите лицензию и выберите «Я согласен с приведенными выше условиями». продолжить:
 


 

Далее вы увидите следующую информационную страницу:
 


 

Убедитесь, что все требования перед установкой выполнены, и ваша система совместима с PrestaShop.

На следующем экране вам нужно будет ввести данные вашего магазина. Адрес электронной почты - это имя пользователя для доступа к серверной части администрирования PrestaShop.
 


 

Затем мастер установки попросит вас ввести данные для подключения к базе данных. Введите данные пользователя и базы данных MySQL, которые вы создали ранее:
 


 

Нажмите кнопку «Далее», и установка начнется:
 


 

Установка может занять несколько минут. После завершения появится следующая страница, информирующая вас о том, что PrestaShop установлен.
 


 

По соображениям безопасности вам необходимо удалить каталог установки. Для этого вернитесь в терминал и введите следующую rm команду:
 

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


Чтобы получить доступ к административной панели PrestaShop, нажмите кнопку «Управление магазином». Введите свой адрес электронной почты и пароль, и вы будете перенаправлены на панель управления.

Отсюда вы можете начать настраивать установку PrestaShop и добавлять новые продукты.
 

Вывод

Вы успешно установили PrestaShop на свой сервер Ubuntu 18.04. Документация PrestaShop - хорошее место для начала, чтобы узнать больше о том, как управлять установкой PrestaShop.


Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Загрузка комментариев...