Добро пожаловать в это пошаговое руководство по установке PrestaShop на Ubuntu 24.04! В эпоху, когда мощный, безопасный интернет-магазин необходим для успеха бизнеса, выбор правильной платформы электронной коммерции имеет все значение. PrestaShop - это надежное решение с открытым исходным кодом, которое предлагает обширную настройку, улучшение производительности и расширенные возможности для создания и управления вашей цифровой витриной.

Это руководство предоставляет четкие инструкции для разработчиков, системных администраторов и технически подкованных пользователей, готовых развернуть PrestaShop на надежном сервере Ubuntu 24.04. Независимо от того, запускаете ли вы новый онлайн-магазин или обновляете существующий, следуйте за тем, чтобы обеспечить плавную и успешную установку.

Предварительные условия

  • Сервер под управлением Ubuntu 24.04 или любой другой ОС Linux.
  • Привилегии пользователя: пользователь root или не root с привилегиями sudo.

Конвенции

1
2
# — данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ – данные команды должны выполняться от имени обычного пользователя

Шаг 1. Обновите систему

Мы предполагаем, что у вас установлена ​​новая версия Ubuntu 24.04. Нам необходимо обновить системные пакеты до последних доступных версий. Для этого выполните следующие команды:

1
sudo apt update -y && sudo apt upgrade -y

Система может нуждаться в перезагрузке после обновления.

1
sudo reboot -f

Шаг 2. Установите веб-сервер Nginx

PrestaShop требует веб-сервер и мы будем использовать Nginx для этой цели.

1
sudo apt install nginx -y

Включить и запустить сервис Nginx:

1
2
sudo systemctl enable nginx
sudo systemctl start nginx

Проверка установки:

1
sudo systemctl status nginx

Шаг 3. Установите сервер базы данных MariaDB

PrestaShop опирается на базу данных для хранения своих данных. Установка MariaDB:

1
sudo apt install mariadb-server mariadb-client -y

Включить и запустить MariaDB:

1
2
sudo systemctl enable mariadb
sudo systemctl start mariadb

Проверка установки:

1
sudo systemctl status mariadb

Шаг 4. Установите PHP и требуемые расширения

PrestaShop построен на PHP, поэтому установите PHP и его необходимые расширения:

1
sudo apt install php php-{fpm,mysql,common,cli,opcache,readline,mbstring,xml,gd,curl,imagick,gnupg,ldap,imap,zip,bz2,intl,gmp} -y

Шаг 5. Создание базы данных для PrestaShop

Войти в консоль MariaDB:

1
sudo mysql -u root

Создайте базу данных и пользователя для PrestaShop:

1
2
3
4
5
CREATE DATABASE prestashop_db;
CREATE USER 'prestashop'@'localhost' IDENTIFIED BY 'YourStrongPasswordHere';
GRANT ALL PRIVILEGES ON prestashop_db.* TO 'prestashop'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Заменить YourStrongPasswordHere сильным, уникальным паролем.

Шаг 6. Установите Composer

Чтобы установить Composer начните с загрузки сценария установки на /tmp/composer-setup.php:

1
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

Затем возьмите официальную подпись и храните ее в переменной:

1
HASH=`curl -sS https://composer.github.io/installer.sig`

Проверка целостности скриптов:

1
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Если вывод говорит, что установщик проверен, переходите к общесистемной установке:

1
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer

Наконец, подтвердите установку путем запуска:

1
composer

Шаг 7. Установите Node.js с помощью APT с методом PPA

Node.js может быть установлен с помощью хранилища NodeSource. Начните с добавления репозитория:

1
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -

Далее нам необходимо обновить информацию о пакете системы:

1
sudo apt update

Наконец, мы можем установить Node.js:

1
sudo apt install nodejs -y

Вы успешно установили LTS-версию Node.js.

Шаг 8. Скачать Prestashop

Скачать последние файлы PrestaShop. Последний релиз - версия 9.0.3; вы можете просмотреть другие доступные версии на официальной странице PrestaShop GitHub.

Перейдите в каталог /tmp и загрузите релиз:

1
2
cd /tmp
wget https://github.com/PrestaShop/PrestaShop/archive/refs/tags/9.0.3.tar.gz

Это позволит извлечь каталог PrestaShop-9.0.3. Переместить и переименовать этот каталог в веб-каталог:

1
2
tar -zxvf PrestaShop-9.0.3.tar.gz
mv PrestaShop-9.0.3/ /var/www/prestashop/

Наконец, установите соответствующую собственность для каталога PrestaShop:

1
chown -R www-data: /var/www/prestashop

Шаг 9. Установка зависимостей Composer

Используйте composer для загрузки зависимостей проекта:

1
2
cd /var/www/prestashop
sudo -u www-data /usr/bin/php /usr/local/bin/composer install

Шаг 10. Установка зависимостей JavaScript и CSS

PrestaShop использует NPM для управления зависимостями и Webpack для их компиляции в статических активах. Вы можете использовать следующую команду:

1
2
cd /var/www/prestashop
sudo -u www-data make assets

Шаг 11. Настроить Nginx

После установки nginx уже будет работать. Затем создайте серверный блок nginx (виртуальный хост) для сайта PrestaShop:

1
sudo nano /etc/nginx/sites-enabled/prestashop.conf

Затем вставьте следующее в файл.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
server {
    listen 80;


    server_name yourprestashopdomain.com www.yourprestashopdomain.com;


    access_log /var/log/nginx/prestashopdomain.com-access.log combined;
    error_log /var/log/nginx/prestashopdomain.com-error.log info;


    root /var/www/prestashop;


    index index.php;


    client_max_body_size 16M;


    error_page 404 /index.php?controller=404;


    location ~* /\.(?!well-known\/) {
    deny all;
    }


    location ~* ^/\.well-known\/ {
    default_type text/plain;
    }


    rewrite ^/(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$1$2.jpg last;
    rewrite ^/(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$1$2$3.jpg last;
    rewrite ^/(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$1$2$3$4.jpg last;
    rewrite ^/(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg last;
    rewrite ^/(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg last;
    rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg last;
    rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg last;
    rewrite ^/(\d)(\d)(\d)(\d)(\d)(\d)(\d)(\d)(-[\w-]+)?/.+\.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg last;
    rewrite ^/c/([\w.-]+)/.+\.jpg$ /img/c/$1.jpg last;
    rewrite ^images_ie/?([^/]+)\.(gif|jpe?g|png)$ js/jquery/plugins/fancybox/images/$1.$2 last;
    rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
    rewrite ^(/install(?:-dev)?/sandbox)/.* /$1/test.php last;


    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }


    location /admin-dev/ {
        try_files $uri $uri/ /admin-dev/index.php$is_args$args;
    }


    location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|var|vendor)/ {
        deny all;
    }


    location ~ ^/modules/.*/vendor/ {
        deny all;
    }


    location ~ \.(log|tpl|twig|sass|yml)$ {
        deny all;
    }


    location /img {
        location ~ \.php$ { deny all; }
    }


    location /upload {
        location ~ \.php$ { deny all; }
    }


    location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        try_files $fastcgi_script_name =404;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_index index.php;
        fastcgi_keep_conn on;
        fastcgi_read_timeout 60s;
        fastcgi_send_timeout 60s;
        fastcgi_buffer_size 256k;
        fastcgi_buffers 256 16k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
    }
}

Сохранить и закрыть файл. Затем проверьте конфигурацию nginx для любых ошибок:

1
sudo nginx -t

Если тест проходит, перезапустите nginx, чтобы применить изменения:

1
sudo systemctl restart nginx

Шаг 12. Установите SSL

Чтобы включить SSL для установки PrestaShop, сначала установите необходимый пакет Certbot:

1
sudo apt install python3-certbot-nginx -y

Затем получить и установить SSL-сертификат от Let’s Encrypt путем запуска:

1
sudo certbot certonly --standalone -d yourprestashopdomain.com --non-interactive --agree-tos --email your-email@example.com

Поздравляю! PrestaShop теперь установлен и закреплен на вашем сервере Ubuntu 24.04. Запустите начальную настройку на https://yourprestashopdomain.com, настройте настройки вашего магазина и начните создавать свой сайт электронной коммерции. Наслаждайтесь мощными, гибкими и масштабируемыми функциями PrestaShop для вашего онлайн-бизнеса!

Завершение

Если вам понравился этот пост о том, как установить PrestaShop на Ubuntu 24.04, пожалуйста, поделитесь им с друзьями или оставьте комментарий ниже. Спасибо