Как установить Prestashop с Apache и бесплатным Lets Encrypt на Debian 12

Prestashop – это бесплатное решение для электронной коммерции с открытым исходным кодом, написанное на PHP. Он позволяет самостоятельно размещать и создавать интернет-магазины и развивать свой интернет-бизнес. Prestashop – это полностью настраиваемое и многофункциональное решение для электронной коммерции, позволяющее создавать полноценные сайты электронной коммерции. В настоящее время Prestashop используется более чем 250 000 интернет-магазинов по всему миру и доступен на 65 языках. В этом руководстве я проведу вас пошагово через установку PrestaShop на сервер Debian 12. Вы установите PrestaShop с помощью стека LAMP (Apache2, MariaDB и PHP), а затем защитите свою установку PrestaShop с помощью сертификатов SL/TLS через Letsencrypt.

Установка зависимостей

PrestaShop – это платформа с открытым исходным кодом для создания интернет-магазина, написанная на PHP и использующая в качестве базы данных MariaDB/MySQL. На следующем этапе вы установите зависимости для PrestaShop, которые включают пакеты LAMP Stack (Apache2, MariaDB и PHP) с некоторыми дополнительными расширениями PHP. Вы установите именно PHP 8.1 через сторонний репозиторий, поскольку текущий PrestaShop пока не поддерживает PHP 8.2. Во-первых, выполните следующую команду для добавления стороннего PHP-репозитория и GPG-ключа в систему Debian.

sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list'

Обновите индекс пакетов Debian, выполнив следующую команду apt.

sudo apt update

После обновления репозитория установите зависимости для PrestaShop с помощью следующей команды. В результате будут установлены пакеты LAMP Stack (Apache2, MariaDB, PHP 8.1), Certbot,Certbot Apache plugin, и _дополнительные расширения PHP, которые требуются PrestaShop.

sudo apt install apache2 mariadb-server certbot python3-certbot-apache php8.1 php8.1-curl php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip php8.1-cli php8.1-mysql php8.1-common php8.1-opcache php8.1-memcached php8.1-bcmath php8.1-gd php8.1-mbstring php8.1-xml php8.1-gmp php8.1-imagick unzip

Введите y для продолжения установки.

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

sudo systemctl is-enabled apache2
sudo systemctl status apache2

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

Теперь проверьте службу mariadb с помощью следующей команды.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

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

И наконец, выполните следующую команду для проверки версии PHP и списка включенных расширений.

Вы должны увидеть, что PHP 8.1 установлен на вашей машине Debian с включенным списком расширений.

Настройка сервера MariaDB

Теперь, когда вы установили зависимости для PrestaShop, следующим шагом будет защита установки сервера MariaDB Server с помощью утилиты _mariadb-secure-installation_utility. Затем необходимо создать новую базу данных и пользователя для PrestaShop. Выполните команду _mariadb-secure-installation_command, приведенную ниже, чтобы защитить установку MariaDB Server.

sudo mariadb-secure-installation

Введите Y для подтверждения и применения новой конфигурации, или n для отказа. Ниже приведены конфигурации сервера MariaDB, которые будут запрошены:

  • Переключиться на аутентификацию unix_socket? Введите n и нажмите ENTER. По умолчанию корневой пользователь MariaDB уже защищен. При желании вы можете включить эту функцию, введя y для yes.
  • Изменить пароль корневого пользователя? Введите y для подтверждения и установите новый пароль корневого пользователя MariaDB.
  • Удалить анонимного пользователя? Введите y для подтверждения.
  • Запретить удаленный вход в систему root? Введите y для подтверждения. При использовании пользователя MariaDB root будет разрешено только локальное подключение.
  • Удалить тестовую базу данных и доступ к ней? Введите y для подтверждения и удаления базы данных по умолчанию „test“.
  • Наконец, введите y еще раз для перезагрузки всех привилегий таблиц на сервере MariaDB и применения новых изменений.

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

sudo mariadb -u root -p

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

CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Далее выполните следующий запрос для проверки пользователя MariaDB prestashop .

SHOW GRANTS FOR 'prestashop'@'localhost';

Из приведенного ниже результата видно, что пользователю MariaDB prestashop разрешен доступ к базе данных prestashopdb .

И наконец, введите quit для выхода из сервера MariaDB.

Настройка PHP

После настройки MariaDB Server необходимо настроить установку PHP, изменив файл php.ini. Откройте стандартную конфигурацию PHP /etc/php/8.1/apache2/php.ini с помощью следующей команды редактора nano.

sudo nano /etc/php/8.1/apache2/php.ini

Измените приведенную ниже конфигурацию и убедитесь, что параметры date.timezone и memory_limit соответствуют требованиям вашего сервера.

date.timezone = Europe/Moscow
max_execution_time = 130
memory_limit = 256M
allow_url_fopen = On
allow_url_include = Off
post_max_size = 128M
upload_max_filesize = 128M
max_input_vars = 5000

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

sudo systemctl restart apache2

После настройки PHP необходимо убедиться, что окружение сервера готово к установке PrestaShop. Это можно сделать с помощью программы проверки окружения, предоставляемой PrestaShop. Перейдите в каталог /var/www/html и загрузите скрипт проверки окружения с помощью команды wget, приведенной ниже. В текущем рабочем каталоге появится файл v1.1.tar.gz .

cd /var/www/html
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz

Извлеките файл v1.1.tar.gz и переименуйте извлеченный каталог в check-ps .

tar -xf v1.1.tar.gz
mv php-ps-info-1.1 check-ps

И наконец, откройте веб-браузер и посетите IP-адрес сервера, за которым следует путь check-ps для доступа к скрипту проверки среды PrestaShop, например http://192.168.10.15/check-ps/phppsinfo.php. Введите имя пользователя prestashop и пароль prestashop по умолчанию, затем нажмите Sign in .

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

Загрузка Prestashop

Теперь, когда сервер MariaDB и PHP настроены, следующим шагом будет загрузка исходного кода PrestaShop и настройка каталога установки с соответствующими правами и правами собственности.Переместите ваш рабочий каталог в /var/www/ и загрузите исходный код PrestaShop с помощью команды wget, приведенной ниже. Обязательно проверьте страницу выпуска PrestaShop, чтобы получить последнюю версию PrestaShop.

cd /var/www/
wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.2/prestashop_8.1.2.zip

Теперь извлеките исходный код PrestaShop с помощью команды unzip, приведенной ниже. Вы должны увидеть исходный код PrestaShop в zip-файле prestashop.zip .

unzip prestashop_8.1.2.zip

Извлеките файл prestashop.zip с помощью команды unzip, приведенной ниже, в целевой каталог /var/www/prestashop. Исходный код PrestaShop будет извлечен в каталог prestashop, поэтому каталог установки Prestashop должен быть /var/www/prestashop.

unzip prestashop.zip -d /var/www/prestashop

Наконец, выполните следующую команду, чтобы установить правильные права собственности и разрешения для каталога установки PrestaShop /var/www/prestashop. В качестве права собственности должно использоваться www-data с разрешением u rw , что означает, что владелец может читать и записывать в целевой каталог.

sudo chown -R www-data:www-data /var/www/prestashop
sudo chmod u+rw /var/www/prestashop

Настройка виртуального хоста Apache2

На следующем этапе вы создадите новую конфигурацию виртуального хоста Apache2, который будет использоваться для работы prestaShop. Для начала выполните следующую команду, чтобы включить модуль rewrite для Apache.

sudo a2enmod rewrite

Затем создайте новую конфигурацию виртуального хоста /etc/apache2/sites-available/prestashop.conf с помощью команды редактора nano.

sudo nano /etc/apache2/sites-available/prestashop.conf

Вставьте следующую конфигурацию и не забудьте изменить доменное имя в параметре ServerName.

<VirtualHost *:80>
    ServerAdmin admin@hwdomain.io
    DocumentRoot /var/www/prestashop
    ServerName hwdomain.io
    <Directory /var/www/prestashop>
        # enable the .htaccess rewrites
        AllowOverride All
        Options +Indexes
        Require all granted
        # Disable back office token
        # SetEnv _TOKEN_ disabled
    </Directory>
    ErrorLog /var/log/apache2/prestashop.error.log
    CustomLog /var/log/apache2/prestashop.access.log combined
</VirtualHost>

Сохраните и закройте файл после завершения работы.Далее выполните следующую команду для активации файла виртуального хоста prestashop.conf и проверки конфигурации Apache.

sudo a2ensite prestashop.conf
sudo apachectl configtest

Если конфигурация Apache выполнена правильно, на экране появится сообщение Syntax OK.

Теперь выполните приведенную ниже команду systemctl для перезапуска службы apache2_service и применения изменений.

sudo systemctl restart apache2

Последнее, сгенерируйте SSL/TLS сертификаты для доменного имени PrestaShop, выполнив следующую команду certbot. Не забудьте изменить адрес электронной почты и доменное имя на свои данные.

sudo certbot --apache --agree-tos --no-eff-email  --redirect --hsts --staple-ocsp --email alice@hwdomain.io -d hwdomain.io

После завершения процесса файл виртуального хоста prestashop.conf будет автоматически настроен на HTTPS, а ваши SSL/TLS-сертификаты будут доступны по адресу /etc/letsencrypt/live/hwdomain.io.

Установка PrestaShop через командную строку

На этом этапе вы можете завершить установку PrestaShop через веб-интерфейс или командную строку. В данном примере установка PrestaShop будет завершена через командную строку. Перейдите в каталог установки PrestaShop /var/www/prestashop/install.

cd /var/www/prestashop/install

Запустите скрипт index_cli.php, как показано ниже, чтобы начать установку PrestaShop через командную строку. Обязательно измените данные о доменном имени, хосте базы данных MariaDB, имени, имени пользователя и пароле. Также не забудьте изменить адрес электронной почты и пароль, который будет использоваться в качестве администратора PrestaShop.

sudo -u www-data php index_cli.php --domain=hwdomain.io --db_server=127.0.0.1 --db_name=prestashopdb --db_user=prestashop --db_password=password --prefix=myps_ --email=alice@hwdomain.io --password=Passw0rd

После завершения установки на экране появится сообщение «Installation successful «, как показано ниже.

Следующим шагом выполните следующую команду для установки соответствующих прав для некоторых каталогов PrestaShop. Это позволит www-data как владельцу читать и записывать в эти целевые каталоги.

sudo chmod u+rw /var/www/prestashop/var/cache
sudo chmod u+rw /var/www/prestashop/var/logs
sudo chmod u+rw /var/www/prestashop/img
sudo chmod u+rw /var/www/prestashop/mails
sudo chmod u+rw /var/www/prestashop/modules
sudo chmod u+rw /var/www/prestashop/translations
sudo chmod u+rw /var/www/prestashop/upload
sudo chmod u+rw /var/www/prestashop/download
sudo chmod u+rw /var/www/prestashop/app/config
sudo chmod u+rw /var/www/prestashop/app/Resources/translations

Затем выполните следующую команду, чтобы удалить каталог /var/www/prestashop/install и защитить установку PrestaShop.

sudo rm -rf /var/www/prestashop/install

Затем откройте веб-браузер и посетите доменное имя PrestaShop, например http://hwdomain.io/. После успешной установки вы должны быть перенаправлены на защищенное HTTPS-соединение и увидеть домашнюю страницу вашей установки PrestaShop по умолчанию.

Затем перейдите к доменному имени PrestaShop, за которым следует путь к администратору, например https://hwdomain.io/admin/. Если все прошло успешно, вы должны быть перенаправлены на страницу входа в PrestaShop. Также можно заметить, что путь URL по умолчанию для PrestaShop изменился на admin051rgjztgtkvgcie6dp. Введите пользователя и пароль администратора, затем нажмите Login.

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

Для проверки входа в админку PrestaShop можно выполнить следующую команду.

ls /var/www/prestashop

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

Заключение

В заключение отметим, что теперь вы успешно установили PrestaShop на Debian 12, выполнив пошаговую инструкцию. Вы установили PrestaShop 8 с помощью стека LAMP (Apache2, MariaDB и PHP) и обеспечили безопасность установки PrestaShop с помощью сертификатов SSL/TLS. Кроме того, вы узнали, как запустить установку PrestaShop через командную строку. Теперь вы можете добавлять новые темы и дополнительные расширения для расширения вашей установки PrestaShop.

Зарубин Иван Эксперт по Linux и Windows

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

Вдохновлен www.howtoforge.com

Похожие статьи

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