После чтения этой статьи, вы научитесь самостоятельно настраивать минималистичный сервер для для сайта PrestaShop eCommerce. Ваш сайт будет доступен по защищенному протоколу HTTPS с поддержкой бесплатного сертификата Let’s Encrypt.
PrestaShop — популярная платформа для eCommerce, которая используется 9% электронных магазинов по всему миру. Эта система является открытой, а значит доступной для изменений любым желающим разработчиком. Популярность можно легко проверить по количеству звезд на GithHub:
Для установки PrestaShop на выделенном сервере или VPS нам понадобится установить сервер LEMP (Linux, Nginx, MySQL, PHP 7), а затем скачать и настроить сам PrestaShop.
Зачем использовать минимальный сервер LEMP для хостинга сайта PrestaShop?
Хотя для целей разработки можно использовать сервер разделяемого хостинга с панелью, для нужд продуктовой среды лучше использовать выделенный сервер или VPS. Это позволит добиться следующих положительных результатов:
- значительно более высокая защищенность от вредоносной активности других приложений пользователей, размещенных на разделяемом хостинге;
- гарантированная производительность и доступность вычислительных ресурсов;
- низкий риск человеческих ошибок;
- отдельный IP-адрес, что позволяет эффективно защищать сайт от DDoS с помощью CDN;
- возможность тонкой настройки PHP, Nginx и MySQL и других приложений для оптимальной производительности;
- максимальная простота сервера без лишних точек отказа.
Установка сервера LEMP
Установка LEMP в CentOS 7 с использованием внешнего репозитория Remi’s Repository для установки PHP 7.2.
Стандартная установка LEMP в Debian 9 Stretch с использованием PHP 7.0
Стандартная установка LEMP в Ubuntu 18.04 Bionic с использованием PHP 7.2
Установка и настройка PrestaShop
Установим дополнительные пакеты, которые необходимы PrestaShop:
# Ubuntu 18.04 sudo apt install -y php7.2-intl # Debian 9 sudo apt install -y php7.0-intl # CentOS 7 sudo yum install -y php72-php-intl
Скачаем и распакуем архив сайта. На момент написания статьи стабильным считается PrestaShop 1.7.5.1:
cd /var/www/$WEBSITE_NAME sudo wget https://download.prestashop.com/download/releases/prestashop_1.7.5.1.zip sudo unzip prestashop_1.7.5.1.zip
Установим права, чтобы пользователь, под которым выполняется Nginx мог вносить в файлы изменения:
# для Ubuntu / Debian sudo chown www-data: -R /var/www/$WEBSITE_NAME # для CentOS sudo chown nginx: -R /var/www/$WEBSITE_NAME
Теперь открываем скрипт установки https://$WEBSITE_NAME/ в браузере и продолжаем установку:
До того, как вы что-то сделаете дальше!!!
Выполните два нижеописанных действия, которые необходимы для нормальной работы свежеустановленного движка.
Имя админки. Распечатайте и сохраните данные установки. PrestaShop генерирует случайное имя для админ-зоны, которое вы не запомните, например, admin743en8mal.
Принудительное включение SSL. Поскольку настроенный нами сервер LEMP работает только поверх HTTPS, это является неожиданностью для PrestaShop. Движок все время пытается отправить пользователя на обычный HTTP, откуда мы делаем перенаправление на HTTPS. Это продолжается бесконечно. Сейчас мы это исправим. Для исправления необходимо поправить настройки PrestaShop в БД:
export DB_NAME=website export DB_USER=siteuser export DB_PASSWORD=secret mysql -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "UPDATE ps_configuration SET value=1 WHERE name LIKE '%SSL_ENABLED%';" mysql -u$DB_USER -p$DB_PASSWORD $DB_NAME -e "SELECT * FROM ps_configuration WHERE name LIKE '%SSL_ENABLED%'\G" *************************** 1. row *************************** id_configuration: 30 id_shop_group: NULL id_shop: NULL name: PS_SSL_ENABLED value: 1 date_add: 0000-00-00 00:00:00 date_upd: 0000-00-00 00:00:00 *************************** 2. row *************************** id_configuration: 282 id_shop_group: NULL id_shop: NULL name: PS_SSL_ENABLED_EVERYWHERE value: 1 date_add: 2019-04-03 23:25:21 date_upd: 2019-04-03 23:25:21
На этом установка PrestaShop завершена и можно приступать к работе над своим электронным магазином.
Что еще сделать после установки?
После установки мы рекомендуем выполнить следующие действия:
- повысить безопасность сервера с помощью тонкой настройки файрвола:
- установить сайт под защиту CloudFlare;
- настроить почтовый сервер, если вы планируете осуществлять отправку почты локально с сервера, а не по SMTP: