Prestashop – это платформа электронной коммерции с открытым исходным кодом, которая позволяет пользователям создавать и управлять своими интернет-магазинами. Платформа предоставляет удобный интерфейс и ряд встроенных функций, помогающих розничным торговцам продавать товары и услуги через Интернет. С помощью PrestaShop вы можете легко настроить дизайн и оформление вашего магазина, добавить каталог товаров, управлять заказами, отслеживать товарные запасы и обрабатывать платежи.
Необходимые условия
Условные обозначения
– given commands should be executed with root privileges either directly as a root user or by use of sudo command – given commands should be executed as a regular user
Шаг 1. Установка и настройка Nginx
Prestashop поддерживает Apache и Nginx. В этой статье мы будем использовать Nginx. Давайте установим и настроим его.
apt install nginx
После установки Nginx автоматически запустится. Теперь создадим блок сервера nginx или виртуальный хост.
nano /etc/nginx/conf.d/prestashop.yourdomain.com.conf
Вставьте в этот файл следующее.
server {
# IPv4.
listen 80;
#listen 443 ssl http2;
# IPv6.
# listen [::]:80;
# listen [::]:443 ssl http2;
# [EDIT] Your domain name(s) go here.
server_name prestashop.yourdomain.com;
# [EDIT] Path to your domain Nginx logs.
# more details: https://docs.nginx.com/nginx/admin-guide/monitoring/logging/#setting-up-the-access-log
access_log /var/log/nginx/prestashop.yourdomain.com-access.log combined;
# more details: https://nginx.org/en/docs/ngx_core_module.html?#error_log
error_log /var/log/nginx/prestashop.yourdomain.com-error.log info;
# [EDIT] Path to your SSL certificates (take a look at Certbot https://certbot.eff.org).
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
# [EDIT] Path to your PrestaShop directory.
root /path/to/prestashop;
index index.php;
# This should match the `post_max_size` and/or `upload_max_filesize` settings
# in your php.ini.
client_max_body_size 16M;
# Redirect 404 errors to PrestaShop.
error_page 404 /index.php?controller=404;
# HSTS (Force clients to interact with your website using HTTPS only).
# For enhanced security, register your site here: https://hstspreload.org/.
# WARNING: Don't use this if your site is not fully on HTTPS!
# add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" preload; always;
# XSS Protection
# add_header X-XSS-Protection "1; mode=block";
# Clickjacking
# add_header X-Frame-Options "SAMEORIGIN";
# X-Content Type Options
# add_header X-Content-Type-Options nosniff;
# Secure Cookie
# add_header Set-Cookie "Path=/; HttpOnly; Secure";
# [EDIT] If you are using multiple languages.
# rewrite ^/fr$ /fr/ redirect;
# rewrite ^/fr/(.*) /$1;
# Watch out: if you encounter issues with a quick view or shopping cart, you might want to use a different rule:
# rewrite '^/((?!js|qq)[a-z])/(.*)' /index.php?isolang=$1&$args last;
# see: https://github.com/PrestaShop/PrestaShop/issues/14921#issuecomment-948932833
# Images.
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;
# AlphaImageLoader for IE and FancyBox.
rewrite ^images_ie/?([^/]+)\.(gif|jpe?g|png)$ 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;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# [EDIT] Replace 'admin-dev' in this block with the name of your admin directory.
location /admin-dev/ {
try_files $uri $uri/ /admin-dev/index.php$is_args$args;
}
# .htaccess, .DS_Store, .htpasswd, etc.
location ~ /\.(?!well-known) {
deny all;
}
# Source code directories.
location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|var|vendor)/ {
deny all;
}
# vendor in modules directory.
location ~ ^/modules/.*/vendor/ {
deny all;
}
# Prevent exposing other sensitive files.
location ~ \.(log|tpl|twig|sass|yml)$ {
deny all;
}
# Prevent injection of PHP files.
location /img {
location ~ \.php$ { deny all; }
}
location /upload {
location ~ \.php$ { deny all; }
}
location ~ [^/]\.php(/|$) {
# Split $uri to $fastcgi_script_name and $fastcgi_path_info.
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
# Ensure that the requested PHP script exists before passing it
# to the PHP-FPM.
try_files $fastcgi_script_name =404;
# Environment variables for PHP.
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_index index.php;
fastcgi_keep_conn on;
fastcgi_read_timeout 30s;
fastcgi_send_timeout 30s;
# Uncomment these in case of long loading or 502/504 errors.
# fastcgi_buffer_size 256k;
# fastcgi_buffers 256 16k;
# fastcgi_busy_buffers_size 256k;
# [EDIT] Connection to PHP-FPM unix domain socket.
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
}
Сохраните файл, затем выйдите из редактора. Не перезапускайте nginx на этом этапе.
Шаг 2. Установка MariaDB и создание базы данных
В этом шаге мы установим Сервер Mariadb из стандартного репозитория Debian. Чтобы установить сервер MariaDB, выполните следующую команду:
apt install mariadb-server
После установки сервер MariaDB автоматически запустится. Теперь мы можем приступить к созданию новой Базы данных и пользователя базы данных для нашего сайта Prestashop.
mysql
Войдя в оболочку Mysql, мы можем выполнить следующие команды.
mysql> CREATE DATABASE prestashop; mysql> GRANT ALL on prestashop.* to prestashop@localhost identified by 'm0d1fyth15'; mysql> CREATE DATABASE prestashop; mysql> GRANT ALL on prestashop.* to prestashop@localhost identified by 'm0d1fyth15';
Убедитесь, что вы создали более надежный пароль базы данных; замените m0d1fyth15 в приведенной выше команде на более надежный пароль.
Шаг 3. Установите PHP
Debian 13 поставляется с PHP 8.4. Поскольку Prestashop 8 требует PHP 7.2 вплоть до версии 8.1, нам нужно использовать Ondřej Surýs PPA для установки PHP 8.1. Выполните приведенную ниже команду для установки PHP 8.1 и необходимых расширений.
apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
apt update
apt install php8.1-{xml,intl,common,bcmath,curl,fpm,mbstring,mysql,gd,imagick,zip,opcache} imagemagick
После этого служба PHP-FPM будет запущена автоматически. Мы не будем редактировать конфигурацию PHP-FPM; мы будем использовать стандартный файл PHP-FPM www.conf. Чтобы убедиться, что PHP-FPM запущен, вы можете проверить его с помощью этой команды:
systemctl status php8.1-fpm
Шаг 4. Установите SSL-сертификат
Этот шаг необязателен, но его настоятельно рекомендуется выполнить. В этом шаге вы пройдете через установку SSL-сертификата от Lets Encrypt с помощью certbot. Убедитесь, что ваш домен или поддомен уже указывает на ваш сервер. Если домен или поддомен не указывает на ваш сервер, SSL-сертификат не будет сгенерирован.
apt install python3-certbot-nginx
Теперь мы готовы к установке SSL-сертификата. Выполните эту команду:
certbot
Вам нужно будет указать свой адрес электронной почты, принять Lets Encrypt TOS и указать, хотите ли вы поделиться своим адресом электронной почты с Electronic Frontier Foundation или нет. Затем вам нужно выбрать домен или имя поддомена, для которого вы хотите активировать HTTPS. Выберите свой сайт OpenProject, введя номер и нажав ENTER. Lets Encrypt установит сертификат и спросит вас, нужно ли настроить перенаправление с HTTP на HTTPS или нет. Вы можете выбрать перенаправление, и тогда Certbot создаст перенаправление и перезагрузит Apache, если все в порядке.
При запуске команды certbot вы получите результат, подобный этому:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): you@yourdomain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.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: n Account registered. Which names would you like to activate HTTPS for? We recommend selecting either all domains, or all domains in a VirtualHost/server block. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: prestashop.yourdomain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel): 1 Requesting a certificate for prestashop.yourdomain.com Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/prestashop.yourdomain.com/fullchain.pem Key is saved at: /etc/letsencrypt/live/prestashop.yourdomain.com/privkey.pem This certificate expires on 2025-08-17. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. Deploying certificate Successfully deployed certificate for prestashop.yourdomain.com to /etc/nginx/conf.d/prestashop.yourdomain.com.conf Congratulations! You have successfully enabled HTTPS on https://prestashop.yourdomain.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
После завершения установки SSL-сертификата блок вашего сервера Prestashop nginx должен быть автоматически изменен Certbot.
Шаг 5. Установите Prestashop
Перед загрузкой установочного файла нам необходимо загрузить инструмент системных требований PrestaShop, чтобы проверить, готов ли наш сервер к установке PrestaShop. Давайте загрузим инструмент прямо сейчас.
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.2.zip -O phppsinfo.zip unzip phppsinfo.zip -d /opt/prestashop/
Теперь вы можете перейти по адресу https://prestashop.yourdomain.com/php-ps-info-1.2/phppsinfo.php.
При входе на страницу вам будет предложено ввести имя пользователя и пароль. Для входа в систему используйте имя пользователя и пароль prestashop. Если все готово, вы увидите следующее.

Вот и все. Пришло время скачать файлы Prestashop. Посетите страницу загрузки PrestaShop и следуйте инструкциям, чтобы загрузить последнюю версию.
cd /tmp wget https://assets.prestashop3.com/dst/edition/corporate/8.2.1/prestashop_edition_basic_version_8.2.1.zip unzip prestashop_edition_basic_version_8.2.1.zip unzip prestashop.zip -d /opt/prestashop chown -R www-data: /opt/prestashop
Теперь откройте веб-браузер и перейдите по адресу https://prestashop.yourdomain.com, чтобы начать установку через графический интерфейс.

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

Вам необходимо согласиться с правилами и условиями. Нажмите кнопку Далее, чтобы продолжить.

Заполните всю необходимую информацию и нажмите на кнопку Next (Далее).

Выберите, хотите ли вы установить демо-продукт или нет.

Заполните информацию о базе данных. Если вы забыли, проверьте шаг установки базы данных. Нажмите кнопку Next, если информация о базе данных верна.

Дождитесь окончания работы.
По окончании вам нужно удалить директорию /opt/prestashop/install, а затем перейти по адресу https://prestashop.yourdomain.com/admin для доступа к бэкенду. Вы будете перенаправлены на

Теперь вы можете войти в систему, используя адрес электронной почты и пароль, которые вы создали во время установки.

Вы узнали, как установить PrestaShop на Debian 12
Вот и всё! Вы вошли в бэкэнд и можете приступать к работе и настройке своего сайта.








Комментарии (0)