Поиск по сайту:

Как установить PrestaShop на Debian 9


Это руководство существует для этих версий ОС

  • Debian 11 (Bullseye)
  • Debian 9 (Stretch)

На этой странице

  1. Требования
  2. Исходная конфигурация
  3. Установить PrestaShop

В этом руководстве мы покажем вам, как установить и настроить последнюю версию Prestashop в выпуске Debian 9.1, чтобы создать бесплатную корзину покупок в Интернете.

Prestashop — это бесплатная платформа управления контентом электронной коммерции с открытым исходным кодом, написанная на языке программирования PHP, которая часто развертывается в Linux под веб-серверами Apache/Nginx, PHP и системой управления базами данных MySQL/MariaDB. Prestashop CMS сегодня широко используется для создания интернет-магазинов для различных предприятий, а также для рекламы и продажи услуг и товаров.

Требования

  • Минимальная установка Debian 9 на чистом железе или на виртуальном частном сервере.
  • Статический IP-адрес, настроенный для одной из карт сетевого интерфейса вашей системы.
  • привилегии sudo root для локальной или удаленной учетной записи или прямой доступ к учетной записи root.
  • Доменное имя, частное или общедоступное, в зависимости от развертывания, с правильно настроенными записями DNS.

Начальная конфигурация

Прежде чем приступить к установке и настройке Prestashop из исходного кода на вашем собственном сервере, сначала убедитесь, что система соответствует всем требованиям к программному обеспечению для компиляции и установки приложения. На первом этапе обновите системные репозитории и пакеты программного обеспечения, выполнив приведенную ниже команду.

apt update
apt upgrade

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

apt install wget bash-completion zip unzip

Затем настройте имя для вашей системы, выполнив следующую команду. Соответственно замените переменную вашего имени хоста.

hostnamectl set-hostname shop

Проверьте имя хоста машины и файл hosts, введя приведенные ниже команды.

hostnamectl
cat /etc/hostname
hostname –s
hostname –f

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

systemctl reboot

Prestashop — это веб-платформа CMS для электронной коммерции, написанная в основном на языке серверного программирования PHP. Для выполнения файловых скриптов Prestashop PHP на сервере должны быть установлены и работать веб-сервер, например HTTP-сервер Apache, и шлюз обработки PHP. Чтобы установить веб-сервер Apache и интерпретатор PHP вместе со всеми необходимыми модулями PHP, необходимыми Prestashop для правильной работы, введите следующую команду в консоли сервера.

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-intl php7.0-opcache

После установки Apache и PHP проверьте, запущен ли веб-сервер и прослушивает ли он сетевые подключения через порт 80, выполнив следующую команду с привилегиями root.

netstat –tlpn

Если сетевая утилита netstat не установлена по умолчанию в вашей системе Debian, выполните приведенную ниже команду, чтобы установить ее.

apt install net-tools

Изучив выходные данные команды netstat, вы увидите, что веб-сервер apache прослушивает входящие сетевые подключения через порт 80. Для той же задачи вы также можете использовать команду ss, которая автоматически устанавливается по умолчанию в Debian 9.

ss -tlpn

Если в вашей системе включен брандмауэр, например приложение брандмауэра UFW, вам следует добавить новое правило, разрешающее HTTP-трафику проходить через брандмауэр, введя следующую команду.

ufw allow WWW

или

ufw allow 80/tcp

Если вы используете необработанные правила iptables для управления правилами брандмауэра на сервере Debian, добавьте следующее правило, чтобы разрешить входящий трафик порта 80 на брандмауэре, чтобы посетители могли просматривать интернет-магазин Prestashop.

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

Затем включите и примените следующие модули Apache, необходимые Prestashop CMS для правильной работы, введя приведенную ниже команду.

a2enmod rewrite
systemctl restart apache2

Наконец, проверьте, может ли веб-страница веб-сервера Apache по умолчанию отображаться в браузерах ваших клиентов, посетив IP-адрес вашего компьютера Debian или ваше доменное имя или полное доменное имя сервера по протоколу HTTP, как показано на рисунке ниже. Если вы не знаете IP-адрес своего компьютера, выполните команды ifconfig или ip a, чтобы узнать IP-адрес вашего сервера.

http://your_domain.tld

Чтобы установить и получить доступ к веб-панели администрирования Prestashop и внешнему веб-сайту через протокол HTTPS, который будет защищать трафик для ваших клиентов, введите следующую команду, чтобы включить модуль SSL веб-сервера Apache и файл конфигурации сайта SSL.

a2enmod ssl
a2ensite default-ssl.conf

Затем откройте файл конфигурации SSL-сайта Apache по умолчанию в текстовом редакторе и включите правила перезаписи URL-адресов, добавив следующие строки кода после директивы DocumentRoot, как показано в приведенном ниже примере:

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

Выдержка из файла конфигурации сайта SSL:

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

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

        <VirtualHost *:443>

Закройте файл SSL Apache и откройте файл /etc/apache2/sites-enabled/000-default.conf для редактирования и добавьте те же правила перезаписи URL-адресов, что и для файла конфигурации SSL. Вставьте строки кода после оператора DocumentRoot, как показано в приведенном ниже примере.

<Directory /var/www/html>
  Options +FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

Наконец, перезапустите демон Apache, чтобы применить все настроенные правила и посетить ваш домен по протоколу HTTP. Поскольку вы используете автоматические пары самозаверяющих сертификатов, выдаваемые Apache при установке, в браузере должно отображаться предупреждение об ошибке. Примите предупреждение, чтобы продолжить и быть перенаправленным на веб-страницу Apache по умолчанию.

systemctl restart apache2

https://вашдомен.tld

В случае, если приложение брандмауэра UFW блокирует входящие сетевые подключения к порту HTTPS, вам следует добавить новое правило, разрешающее трафику HTTPS проходить через брандмауэр, введя следующую команду.

ufw allow 'WWW Full'

или

ufw allow 443/tcp

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

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

На следующем шаге нам нужно внести некоторые дополнительные изменения в файл конфигурации PHP по умолчанию, чтобы убедиться, что следующие переменные PHP включены, а настройка часового пояса PHP правильно настроена и соответствует географическому положению вашей системы. Откройте файл /etc/php/7.0/apache2/php.ini для редактирования и убедитесь, что следующие строки настроены следующим образом. Также изначально сделайте резервную копию файла конфигурации PHP.

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

Найдите, отредактируйте и измените следующие переменные в файле конфигурации php.ini:

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

Увеличьте значение переменной memory_limit для поддержки вложений больших файлов и замените переменную time.zone в соответствии с вашим физическим временем, сверившись со списком часовых поясов, предоставленным документацией PHP по следующей ссылке http://php. net/manual/en/timezones.php

Если вы хотите увеличить скорость загрузки страниц вашего веб-сайта с помощью подключаемого модуля OPCache, доступного для PHP7, добавьте следующие параметры OPCache внизу файла конфигурации интерпретатора PHP, как описано ниже:

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

Закройте файл конфигурации php.ini и проверьте конец файла конфигурации PHP, чтобы проверить правильность добавления переменных, выполнив приведенную ниже команду.

tail /etc/php/7.0/apache2/php.ini

После внесения всех изменений, описанных выше, перезапустите демон apache, чтобы применить новые изменения, введя следующую команду.

systemctl restart apache2

Наконец, создайте информационный файл PHP, выполнив следующую команду, и проверьте правильность настройки часового пояса PHP, посетив файл сценария информации PHP из браузера по следующему URL-адресу, как показано на рисунке ниже. Прокрутите вниз до настройки даты, чтобы проверить конфигурацию часового пояса php.

echo '<?php phpinfo(); ?>'| tee /var/www/html/info.php

https://domain.tld/info.php

Prestashop хранит различные конфигурации, такие как пользователи, сеансы, контакты, продукты, каталоги и другие, в базе данных СУБД. В этом руководстве мы настроим Prestashop для использования базы данных MariaDB в качестве серверной части. Выполните приведенную ниже команду, чтобы установить базу данных MariaDB и модуль PHP, необходимый для доступа к базе данных mysql.

apt install mariadb-server php7.0-mysql

После того, как вы установили MariaDB, проверьте, запущен ли демон и прослушивает соединения на локальном хосте, порт 3306, выполнив команду netstat.

netstat –tlpn | grep mysql

Затем войдите в консоль MySQL и защитите корневую учетную запись MariaDB, введя следующие команды.

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

На следующем шаге защитите MariaDB, выполнив скрипт mysql_secure_installation, предоставляемый установочными пакетами из репозиториев Debian. Во время работы скрипт задаст ряд вопросов, предназначенных для защиты базы данных MariaDB, таких как: изменить пароль администратора MySQL, удалить анонимных пользователей, отключить удаленный вход в систему root и удалить тестовую базу данных. Выполните сценарий, введя приведенную ниже команду, и убедитесь, что вы вводите «да» на все заданные вопросы, чтобы полностью защитить демон MySQL. Используйте приведенный ниже вывод скрипта, кроме как в качестве руководства.

sudo mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
 
You already have a root password set, so you can safely answer 'n'.
 
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
 
 
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
 
Remove anonymous users? [Y/n] y
 ... Success!
 
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n] y
 ... Success!
 
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
 
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
 
Reload privilege tables now? [Y/n] y
 ... Success!
 
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
 
Thanks for using MariaDB!

Чтобы проверить безопасность MariaDB, попробуйте войти в базу данных с консоли без пароля root. Доступ к базе данных должен быть запрещен, если для учетной записи root не указан пароль. Если указан пароль, процесс входа в систему должен быть предоставлен консоли MySQL, как показано на снимке экрана ниже.

mysql -h localhost -u root
mysql -h localhost -u root –p

Затем войдите в консоль базы данных MariaDB, создайте базу данных для Prestashop и пользователя с паролем, который будет использоваться для управления базой данных Prestashop, введя следующие команды. Замените имя базы данных PrestaShop, пользователя и пароль соответственно.

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

Чтобы применить все сделанные до сих пор изменения, перезапустите демоны MySQL и Apache и проверьте, работают ли демоны, введя следующие команды.

systemctl restart mysql apache2
systemctl status mysql apache2

Установить PrestaShop

После выполнения всех системных требований для установки интернет-магазина электронной коммерции посетите страницу выпусков Prestashop на GitHub https://github.com/PrestaShop/PrestaShop/releases и загрузите последний сжатый архив zip-пакета, запустив утилиту wget, как проиллюстрировано в следующем образце.

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

После завершения загрузки zip-архива извлеките zip-архив Prestashop непосредственно в корневую папку документа веб-сервера и перечислите извлеченные файлы, выполнив приведенные ниже команды. Кроме того, удалите файл index.html по умолчанию, установленный веб-сервером Apache, на корневой путь, а также удалите ранее созданный файл info.php.

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/

Затем выполните приведенные ниже команды, чтобы предоставить пользователю среды выполнения Apache полные права на запись корневого веб-пути. Используйте команду ls, чтобы получить список разрешений для установочных файлов Prestashop, расположенных в каталоге /var/www/html/.

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

Продолжайте установку Prestashop CMS, открыв браузер и перейдя по IP-адресу или доменному имени вашего сервера по протоколу HTTPS. На первом экране установки сценарий установки Prestashop развернет содержимое файла prestashop.zip из корневого веб-пути веб-сервера, как показано на изображении ниже.

https://yourdomain.tld

После завершения извлечения вы можете переключиться в командную строку и просмотреть содержимое каталога /var/www/html/, чтобы просмотреть все извлеченные файлы Prestashop.

ls -la /var/www/html/

На следующем экране установщик Prestashop отобразит экран приветствия и попросит вас выбрать язык установки, чтобы продолжить процесс установки. Выберите свой язык и нажмите кнопку «Далее», чтобы перейти к следующему шагу.

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

Установщик Prestashop теперь выполнит ряд проверок, чтобы определить совместимость с вашей системой и средой, и в случае обнаружения выведет список возможных ошибок. Если ваша системная среда совместима с установкой PrestaShop, на вашей веб-странице должно отображаться зеленое сообщение, как показано на снимке экрана ниже. Снова нажмите кнопку «Далее», чтобы продолжить процесс установки.

На следующем экране добавьте необходимую информацию о вашем магазине, такую как название магазина, основной вид деятельности, страну, в которой зарегистрирован ваш магазин, и данные учетной записи. Укажите адрес электронной почты для доступа к серверной веб-панели Prestashop и надежный пароль, который будет использоваться для этой учетной записи, как показано на снимке экрана ниже. Когда вы закончите, нажмите кнопку «Далее», чтобы продолжить.

на следующем экране установки добавьте адрес базы данных MySQL, имя и учетные данные, созданные ранее для Prestashop, нажмите кнопку Проверить подключение к базе данных сейчас. Если подключение к базе данных MySQL прошло успешно, нажмите кнопку «Далее», чтобы начать процесс установки.

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

После завершения установки установщик отобразит информацию для входа в веб-панель администратора и необходимые гиперссылки для доступа к Prestashop Backend Office, который будет использоваться для управления вашим интернет-магазином, и Front Office вашего магазина, который будет отображаться для ваших клиентов. .

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

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

Чтобы иметь возможность войти в панель администратора, поддерживаемую Prestashop, вернитесь в консоль сервера и выполните следующую команду, чтобы удалить каталог установки Prestashop.

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

После этого перезагрузите страницу бэк-офиса Prestashop и войдите в панель администратора, настроив учетные данные в процессе установки, как показано на следующем снимке экрана.

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

Чтобы посетить веб-страницу внешнего интерфейса Prestashop, просто введите свое доменное имя в браузере, и вы будете автоматически перенаправлены на начальную страницу, как показано на следующем снимке экрана.

Однако на данный момент доступ к магазину возможен только незащищенным через незашифрованный HTTP-протокол. Чтобы включить поддержку HTTPS в Prestashop, войдите в панель Back Office и перейдите в «Настроить» -> «Параметры магазина» -> «Общие» и нажмите «Пожалуйста, нажмите здесь, чтобы проверить, поддерживает ли ваш магазин ссылку HTTPS», как показано на рисунке ниже.

После выполнения тестов SSL переключите кнопку «Включить SSL» на «ДА», прокрутите вниз до нижней части страницы и нажмите кнопку «Сохранить», чтобы применить конфигурацию. Однако эта конфигурация пока включает поддержку SSL только для канала Back Office. Клиенты, которые будут посещать доменное имя вашего магазина, будут направляться через незашифрованные соединения.

Чтобы обезопасить трафик посетителей через ваш домен, установите для кнопки «Включить SSL на всех страницах» значение «Да», как показано на изображении ниже, прокрутите вниз и нажмите кнопку «Сохранить» внизу страницы, чтобы применить настройки.

Чтобы проверить, автоматически ли клиенты перенаправляются на ваш домен через защищенное соединение по протоколу HTTPS, обновите страницу внешнего интерфейса Prestashop или введите имя своего домена в браузере. Доступ к доменному имени вашего магазина теперь должен осуществляться по протоколу HTTP, как показано на рисунке ниже.

Вот и все! Вы успешно установили и настроили PrestaShop в Debian 9.1. Однако, поскольку ваш HTTP-сервер Apache использует самозаверяющие сертификаты для шифрования трафика между сервером и браузерами посетителей, при первом посещении магазина в их браузерах всегда будет генерироваться и отображаться предупреждающее сообщение. Это предупреждение плохо для вашего интернет-магазина. В этом случае вам следует купить сертификат, выданный доверенным центром сертификации, или получить бесплатную пару сертификатов от ЦС Let’s Encrypt.

Для получения информации о других пользовательских конфигурациях Prestashop посетите страницу документации по следующему адресу: http://doc.prestashop.com/display/PS17/Installing+PrestaShop.