Гид по технологиям

Установка PrestaShop на Debian 9.1 — пошаговое руководство

9 min read E-Commerce Обновлено 28 Nov 2025
Установка PrestaShop на Debian 9.1
Установка PrestaShop на Debian 9.1

Обзор

PrestaShop — свободная Open Source платформа для электронной коммерции, написанная на PHP. Это руководство показывает, как установить и настроить последнюю версию PrestaShop (серии 1.7.x на момент релиза исходного текста) на сервере с Debian 9.1. Оно ориентировано на администратора сервера или инженера по развёртыванию, но содержит также шаги для владельца магазина и разработчика.

Ключевые моменты:

  • Вариант с Apache и PHP 7.0 (Debian 9 комплектует PHP 7.0).
  • MariaDB как backend базы данных.
  • Настройка SSL (self-signed и рекомендации по Let’s Encrypt).
  • Права доступа, безопасность, тесты и базовые приёмо-сдаточные критерии.

Основные требования

  • Debian 9 (stretch) минимальная установка на физическом хосте или VPS.
  • Статический IP или корректная настройка DNS для домена.
  • Доступ с sudo или root.
  • Домен (опционально) с A/AAAA и, при необходимости, CNAME-записями.
  • Резервная копия данных перед началом (если это обновление существующей установки).

Возможные варианты: если вы предпочитаете Nginx + PHP-FPM — в разделе “Альтернативные подходы” есть инструкции и рекомендации.

Предварительная конфигурация системы

Обновите списки пакетов и систему перед установкой.

apt update
apt upgrade

Обновление Debian OS

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

apt install wget bash-completion zip unzip

Установка утилит командной строки

Задайте понятное имя хоста для сервера (замените shop на своё имя хоста).

hostnamectl set-hostname shop

Проверьте имя хоста и файл /etc/hosts.

hostnamectl
cat /etc/hostname
hostname -s
hostname -f

Установка имени хоста сервера

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

systemctl reboot

Важно: перезагрузка завершит вашу сессию SSH — подключайтесь снова после старта.

Установка Apache, PHP и требуемых модулей

PrestaShop требует веб-сервер и PHP с набором расширений. Для Debian 9 пример установки Apache и PHP 7.0:

apt install apache2 libapache2-mod-php7.0 php7.0 php7.0-xml php7.0-gd php7.0-json php7.0-zip php7.0-intl php7.0-mcrypt php7.0-curl php7.0-opcache

Проверьте, слушает ли Apache порт 80. Если netstat отсутствует, установите net-tools.

apt install net-tools
netstat -tlpn

Установка Net Tools

Альтернатива: используйте ss, он уже установлен в Debian 9.

ss -tlpn

Если у вас работает брандмауэр UFW, пропустите HTTP и HTTPS (далее пример):

ufw allow WWW

или

ufw allow 80/tcp

Для iptables-пользователей:

apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

Включите модуль rewrite и перезапустите Apache.

a2enmod rewrite
systemctl restart apache2

Проверьте страницу по IP или домену:

http://your_domain.tld

Страница по умолчанию Apache

Иногда полезно установить дополнительные модули (headers, expires) для кэширования и безопасности:

a2enmod headers expires ssl
systemctl restart apache2

Включение и настройка SSL в Apache

Для тестирования можно включить модуль SSL и стандартный виртуальный хост default-ssl. Это создаст self-signed сертификат и позволит протестировать HTTPS.

a2enmod ssl
a2ensite default-ssl.conf

Откройте SSL-конфигурацию и включите AllowOverride для /var/www/html, чтобы работать с .htaccess и правилами перезаписи.

nano /etc/apache2/sites-enabled/default-ssl.conf

Добавьте (или убедитесь), что есть:

  
  Options +FollowSymlinks  
  AllowOverride All  
  Require all granted  

Измените строку VirtualHost на:

Файл конфигурации Apache vhost

Также отредактируйте 000-default.conf и добавьте те же директивы для /var/www/html:

nano /etc/apache2/sites-enabled/000-default.conf

Вставьте после DocumentRoot:

  
  Options +FollowSymlinks  
  AllowOverride All  
  Require all granted  

Файл default vhost Apache

Перезапустите Apache:

systemctl restart apache2

Для принятия самоподписанного сертификата посетите https://yourdomain.tld и подтвердите исключение в браузере.

Если UFW блокирует HTTPS, добавьте правило:

ufw allow 'WWW Full'

или

ufw allow 443/tcp

Для iptables:

iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctl iptables-persistent reload

Рекомендация: для production используйте сертификат Let’s Encrypt (см. раздел ниже).

Настройка PHP для PrestaShop

Перед установкой нужно настроить php.ini: сделайте резервную копию, отредактируйте настройки и при необходимости добавьте OPCache.

cp /etc/php/7.0/apache2/php.ini{,.backup}
nano /etc/php/7.0/apache2/php.ini

Проверьте и измените следующие параметры (указываются рекомендуемые значения):

file_uploads = On
allow_url_fopen = On
memory_limit = 128M
upload_max_filesize = 64M
date.timezone = Europe/London

Замените date.timezone на вашу зону — список доступных зон в документации PHP: http://php.net/manual/en/timezones.php

OPcache ускоряет обработку PHP и рекомендуется для production. Добавьте в конец php.ini:

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Примените изменения:

systemctl restart apache2

Создайте phpinfo файл для контроля настроек и таймзоны:

echo ''| tee /var/www/html/info.php

Откройте https://domain.tld/info.php и убедитесь, что настройки применились.

Проверка настроек PHP date и timezone

После теста удалите info.php из webroot.

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

PrestaShop хранит данные в реляционной базе — MariaDB/MySQL. Установите MariaDB и PHP-модуль:

apt install mariadb-server php7.0-mysql

Установка MariaDB

Проверьте, что сервер слушает порт 3306:

netstat -tlpn | grep mysql

Затем залогиньтесь под root (локально) и выполните команды, отключающие плагин аутентификации unix_socket, если требуется:

mysql -h localhost
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

Отключение плагинов для MariaDB root

Запустите встроенный скрипт для защиты сервера MariaDB:

sudo mysql_secure_installation

Следуйте подсказкам: задайте пароль для root, удалите анонимных пользователей, запретите удалённый доступ для root и удалите тестовую базу — обычно безопасно отвечать «y» на все вопросы в production.

После скрипта попробуйте войти с паролем:

mysql -h localhost -u root -p

Тест входа в MySQL

Создайте базу данных и отдельного пользователя для PrestaShop (замените my_shop, shop_user, shop_password своими значениями):

mysql -u root -p
create database my_shop;
grant all privileges on my_shop.* to 'shop_user' identified by 'shop_password';
flush privileges;
exit

Создание базы данных для PrestaShop

Перезапустите службы MySQL и Apache и проверьте их статус:

systemctl restart mysql apache2
systemctl status mysql apache2

Скачивание и распаковка PrestaShop

Перейдите на страницу релизов PrestaShop на GitHub и скачайте zip-архив последней стабильной версии. Пример wget для версии 1.7.2.3 (в исходном тексте):

wget https://github.com/PrestaShop/PrestaShop/releases/download/1.7.2.3/prestashop_1.7.2.3.zip

Скачивание PrestaShop

Удалите индекс по умолчанию и ранее созданный info.php, распакуйте архив в webroot и проверьте содержимое:

rm /var/www/html/index.html
rm /var/www/html/info.php
unzip prestashop_1.7.2.3.zip -d /var/www/html/
ls /var/www/html/

Распаковка архива PrestaShop

Установите владельца файлов в www-data (пользователь Apache) и проверьте права:

chown -R www-data:www-data /var/www/html/
ls -al /var/www/html/

Архив PrestaShop распакован

Запуск веб-инсталлятора PrestaShop

Откройте в браузере https://yourdomain.tld (или http если SSL ещё не настроен). Инсталлятор распакует содержимое prestashop.zip и проведёт серию проверок совместимости.

https://yourdomain.tld

Инсталлятор PrestaShop

После распаковки можно вернуться в консоль и убедиться в наличии файлов:

ls -la /var/www/html/

Файлы PrestaShop распакованы

Далее выберите язык, примите лицензию и проследуйте через экран проверки системы. Исправьте ошибки, если появятся. В нормальном случае вы увидите зелёную индикаторную подсказку об успешной проверке.

Проверка системы PrestaShop

Укажите имя магазина, контактный email и пароль администратора.

Добавление данных магазина

На экране с базой данных укажите host (обычно localhost), имя базы, пользователя и пароль. Нажмите “Test your database connection now”.

Указание данных базы данных

Подождите, пока установщик заполнит базу и завершит процесс. По окончании установщик покажет ссылки для Back Office и Front Office.

Установка завершена

Инсталляция завершена

Завершение установки и права доступа

После завершения установщик предложит перейти в Back Office. Перед входом обязательно удалите директорию install из webroot:

rm -rf /var/www/html/install/

Перезагрузите страницу Back Office и войдите под логином администратора, указанным при установке.

Backoffice PrestaShop

При первом входе увидите приветствие и быстрый доступ к добавлению товара.

Приветствие в Backoffice

Добавление товара

Фронтенд магазина доступен по домену:

Фронтенд PrestaShop

Включение SSL в PrestaShop

Чтобы включить HTTPS в админке выполните: Configure -> Shop parameters -> General -> “Please click here to check if your shop supports HTTPS”. Затем включите “Enable SSL” и сохраните. Для фронтенда включите “Enable SSL on all pages” и сохраните.

Включение SSL

SSL для Back Office

SSL для Front Office

Проверьте, что домашняя страница доступна по HTTPS. Если вы используете self-signed сертификат — браузер покажет предупреждение.

PrestaShop с SSL

Рекомендация: в production используйте доверенные сертификаты (Let’s Encrypt — бесплатно) или платный CA.

Рекомендации по безопасности и hardening

  • Установите SSL от доверенного CA. Для автоматизации можно использовать certbot (Let’s Encrypt).
  • Отключите показ ошибок PHP в production (display_errors = Off).
  • Ограничьте доступ к /admin через IP (если возможно) или включите двухфакторную аутентификацию для администратора модулей.
  • Регулярно обновляйте систему, PHP и PrestaShop.
  • Настройте регулярное резервное копирование базы и файлов (см. раздел резервного копирования).
  • Проверьте права доступа: webroot — владелец www-data, файлы 644, каталоги 755; исключения — логично дать запись только там, где требуется.

Let’s Encrypt (короткая инструкция)

Установка certbot для Apache на Debian 9 (пример):

apt install certbot python-certbot-apache
certbot --apache -d yourdomain.tld -d www.yourdomain.tld

Certbot сам изменит конфигурацию Apache и обновит сертификат автоматически.

Альтернативные подходы и совместимость

  • Nginx + PHP-FPM: Nginx даёт более высокую производительность в ряде сценариев. Вместо libapache2-mod-php используйте php7.0-fpm и настройте сокет/порт в конфигурации Nginx. Для PrestaShop требуется корректная обработка .htaccess (в Nginx нужно прописывать правила вручную).
  • Версии PHP: Debian 9 поставляется с PHP 7.0; новые версии PrestaShop могут требовать PHP 7.1+ или 7.2. Перед установкой сверяйтесь с требованиями версии PrestaShop.
  • База данных: MariaDB 10.x рекомендуется. Для больших магазинов рассмотрите тюнинг my.cnf (innodb_buffer_pool_size и др.).

Резервное копирование и восстановление

Минимальный набор шагов для бэкапа:

  1. Бэкап базы данных:
mysqldump -u shop_user -p my_shop > /root/backups/my_shop-$(date +%F).sql
  1. Бэкап файлов сайта:
tar -czf /root/backups/prestashop-www-$(date +%F).tar.gz /var/www/html/
  1. Храните бэкапы вне сервера (S3, удалённый NAS, rsync на отдельный хост).

Восстановление:

  • Распакуйте архив с файлами в /var/www/html (предварительно сохранив текущую копию).
  • Восстановите базу данных:
mysql -u root -p my_shop < /root/backups/my_shop-YYYY-MM-DD.sql

Рекомендация: перед восстановлением отключите cron и создайте maintenance-страницу.

Отладка и частые проблемы

  • 500 Internal Server Error — проверьте логи Apache (/var/log/apache2/error.log) и права доступа к файлам.
  • Ошибки соединения с базой данных — проверьте правильность хоста, пользователя и пароля; убедитесь, что MySQL слушает нужный интерфейс.
  • Проблемы с модулем PHP (отсутствует GD, Intl) — установите соответствующие пакеты и перезапустите Apache.
  • Ошибки времени выполнения скриптов — увеличьте memory_limit и max_execution_time в php.ini при необходимости.

Тесты и критерии приёмки

Критерии приёмки:

  • Веб-инсталлятор PrestaShop открывается по HTTPS.
  • Страница магазина (Front Office) загружается и отображает товары по умолчанию.
  • Вход в Back Office проходит по указанному логину/паролю.
  • Раздел “Advanced Parameters -> Performance” показывает включённый OPCache при соответствующей настройке.
  • Информация о PHP (phpinfo) показывает заданную timezone и загруженные расширения (gd, intl, pdo_mysql).
  • RDBMS подключение успешно, таблицы созданы, и можно добавлять продукты через админку.

Роль‑ориентированные чеклисты

Системный администратор:

  • Обновил систему и установил пакеты.
  • Настроил Apache/Nginx и PHP.
  • Настроил и защитил MariaDB.
  • Настроил SSL и брандмауэр.
  • Настроил резервные копии и расписание cron.

Владелец магазина (merchant):

  • Зарегистрировал домен и указал DNS.
  • Создал e‑mail администратора для доступа в Back Office.
  • Проверил внешний вид магазина и способы оплаты.
  • Настроил политики доставки и возврата.

Разработчик / интегратор:

  • Проверил совместимость модулей с версией PrestaShop.
  • Настроил среду отладки и тестирования.
  • Создал и проверил копии/миграции данных.

Playbook для отката или восстановления после неудачной установки

  1. Остановите веб-сервер.
systemctl stop apache2
  1. Восстановите файлы из архива резервной копии.
  2. Восстановите базу данных из дампа.
  3. Проверьте права и владельца файлов:
chown -R www-data:www-data /var/www/html/
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
  1. Запустите веб-сервер и проверьте логи.
systemctl start apache2
journalctl -u apache2 -n 200
  1. Если установка ломает сайт, временно включите maintenance mode в базе данных (из таблицы) или переименуйте папку themes/current_theme в целях диагностики.

Мини‑методология для обновлений PrestaShop

  1. Клонировать продакшн-сайт в staging (файлы + дамп базы).
  2. Прогнать тесты совместимости модулей и шаблонов.
  3. Провести обновление PrestaShop на staging, проверить функциональность.
  4. Согласовать с владельцем магазина окно обслуживания.
  5. Сделать полный бэкап production перед обновлением.
  6. Обновить production строго по заданной инструкции.

Советы по производительности

  • Включите OPCache и настройте параметры памяти.
  • Рассмотрите Varnish или Nginx кэширование для фронтенда.
  • Настройте CDN для статических ресурсов (изображения, CSS, JS).
  • Для больших каталогов настраивайте индексы и оптимизируйте конфигурацию MariaDB (innodb_buffer_pool_size и параметры соединений).

Короткая галерея крайних случаев и решения

  • Если после распаковки файлы находятся внутри подпапки prestashop вместо корня — переместите их в /var/www/html.
  • Если инсталлятор не запускается из-за прав — дайте временную запись для www-data, затем сужайте права.
  • Если backup дамп большой и не восстанавливается из-за ограничений памяти — используйте mysql client на сервере и отключите если необходимо foreign_key_checks во время восстановления.

1‑строчный глоссарий

  • Back Office — админ-панель магазина.
  • Front Office — публичная часть магазина.
  • OPCache — кеш байткода PHP.
  • CA — поставщик сертификатов (Certificate Authority).

Заключение

Вы прошли полный цикл установки PrestaShop на Debian 9.1: от подготовки системы до включения SSL и базовых мер безопасности. Для production рекомендуем:

  • Получить доверенный SSL-сертификат (Let’s Encrypt или платный CA).
  • Настроить регулярные бэкапы и мониторинг.
  • Прогонять обновления на staging перед прямым применением в production.

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

Внешняя документация: http://doc.prestashop.com/display/PS17/Installing+PrestaShop

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Почта в RSS и публикация на сайте
Веб-инструменты

Почта в RSS и публикация на сайте

Вставить PDF в Word — простые способы
Microsoft Word

Вставить PDF в Word — простые способы

Письма для мобильных: 7 ключевых правил
Электронная почта

Письма для мобильных: 7 ключевых правил

Добавить функцию Snooze в Gmail без приложений
Productivity

Добавить функцию Snooze в Gmail без приложений

Автообновление контейнеров с Podman
DevOps

Автообновление контейнеров с Podman

Ошибка system cannot find python.exe — как исправить
ошибки

Ошибка system cannot find python.exe — как исправить