
PrestaShop – это платформа электронной коммерции с открытым исходным кодом, которая эффективно работает на AlmaLinux и представляет собой надежное решение для создания и управления интернет-магазинами. Известная своей гибкостью и широким набором функций, PrestaShop позволяет пользователям легко создавать настраиваемые интернет-магазины. Платформа поддерживает множество платежных шлюзов, способов доставки и маркетинговых инструментов, что повышает удобство покупок как для продавцов, так и для покупателей. На базе AlmaLinux, стабильного и безопасного дистрибутива Linux корпоративного класса, PrestaShop имеет надежную и высокопроизводительную среду. Такое сочетание делает его идеальным для компаний любого размера, стремящихся создать профессиональное и масштабируемое онлайн-представительство.
В этом руководстве вы узнаете, как установить PrestaShop на сервер AlmaLinux 9 со стеком LAMP (Apache/Htppd, MySQL/MariaDB и PHP). Вы также узнаете, как защитить PrestaShop с помощью SSL/TLS сертификатов от Letsencrypt.
Предварительные условия
Прежде чем продолжить, убедитесь, что у вас есть следующее:
- Сервер AlmaLinux 9.
- Некорневой пользователь с привилегиями root.
- Доменное имя, указывающее на IP-адрес сервера.
- SELinux со статусом permissive.
Установка стека LAMP
Для запуска PrestaShop вам необходимо установить зависимости пакетов. В этом руководстве вы будете запускать PrestaShop с помощью стека LAMP (Apache2/Httpd, MySQL/MariaDB и PHP). На данный момент для PrestaShop требуется как минимум Apache 2.4, PHP 8.1 и MySQL 5.6.
В этом шаге вы установите LAMP Stack с дополнительными расширениями PHP, которые требуются PrestaShop.
Перед этим выполните приведенную ниже команду, чтобы включить EPEL и репозиторий Remi для AlmaLinux.
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
Теперь выполните приведенную ниже команду, чтобы включить PHP 8.1 через репозиторий Remi.
sudo dnf module reset php sudo dnf module enable php:remi-8.2
Установите пакет LAMP Stack на ваш сервер AlmaLinux 9 с помощью следующей команды.
sudo dnf install httpd mariadb-server php php-curl php-soap php-intl php-zip php-cli php-mysqlnd php-common php-opcache php-memcached php-bcmath php-gd php-mbstring php-xml php-gmp php-imagick
Введите y, чтобы продолжить установку.
Также введите y, чтобы принять ключ GPG для репозитория Remi.
После завершения установки запустите и включите службы Apache и MariaDB в вашей системе.
Выполните следующую команду, чтобы запустить и включить службу httpd.
sudo systemctl enable httpd sudo systemctl start httpd
Затем проверьте службу httpd, чтобы убедиться, что она запущена.
sudo systemctl status httpd
Как показано на рисунке ниже, служба httpd запущена.
Далее запустите и включите службу MariaDB с помощью следующей команды.
sudo systemctl enable mariadb sudo systemctl start mariadb
После запуска MariaDB проверьте работу службы mariadb с помощью следующей команды.
sudo systemctl status mariadb
Вы увидите, что служба MariaDB запущена на вашем сервере AlmaLinux.
Наконец, выполните следующую команду, чтобы проверить версию PHP и список включенных расширений. Убедитесь, что у вас установлен PHP 8.1 для установки PrestaShop.
php -v php -m
Настройка Firewalld
После установки LAMP Stack вы должны открыть HTTP и HTTPS сервисы через firewalld. Это позволит клиентам получить доступ к вашей установке PrestaShop.
Откройте службы HTTP и HTTPS в firewalld с помощью следующей команды.
sudo firewall-cmd --add-service={http,https} --permanent
Теперь перезагрузите firewalld, чтобы изменения вступили в силу.
sudo firewall-cmd --reload
Наконец, проверьте список включенных служб и портов в firewalld. Убедитесь, что службы HTTP и HTTPS добавлены в firewalld.
sudo firewall-cmd --list-all
Настройка PHP
В этом разделе вы настроите установку PHP, отредактировав стандартный файл php.ini. Для PrestaShop требуется как минимум 256 МБ memory_limit, а также требует включения allow_url_fopen. Поэтому вы должны изменить конфигурационный файл php.ini.
Откройте файл конфигурации PHP /etc/php.ini , используя следующий редактор nano.
sudo nano /etc/php.ini
Измените стандартную конфигурацию PHP на следующую. Убедитесь, что настройки timezone и memory_limit соответствуют вашему текущему окружению.
date.timezone = Europe/Paris 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, чтобы перезапустить службу httpd и применить конфигурацию PHP.
sudo systemctl restart httpd
Настройка сервера MariaDB
Теперь, когда PHP настроен, переходим к настройке сервера MariaDB. Вы защитите установку сервера MariaDB, а затем создадите новую базу данных и пользователя для PrestaShop.
Чтобы защитить установку сервера MariaDB, выполните следующую команду.
sudo mariadb-secure-installation
Когда процесс начнется, вам будет предложено ввести некоторые настройки MariaDB – введите Y, чтобы применить предложенную конфигурацию, или N, чтобы отклонить ее:
- Переключиться на аутентификацию unix_socket? Введите n и нажмите ENTER. По умолчанию корневой пользователь MariaDB уже защищен. По желанию вы можете включить его, введя y для yes.
- Изменить пароль корневого пользователя? Введите y для подтверждения и установите новый пароль корневого пользователя MariaDB.
- Удалить анонимного пользователя? Введите y для подтверждения.
- Запретить удаленный вход root? Введите y для подтверждения. Будет разрешено только локальное подключение, если вы используете пользователя MariaDB root.\
- Удалить тестовую базу данных и доступ к ней? Введите y, чтобы подтвердить и удалить базу данных по умолчанию ‘test’.
- Наконец, введите y еще раз, чтобы перезагрузить все привилегии таблиц на вашем сервере MariaDB и применить новые изменения.
После настройки сервера MariaDB вы создадите новую базу данных и пользователя для PrestaShop.
Войдите на сервер MariaDB с помощью команды, приведенной ниже. Введите пароль корня MariaDB, когда появится запрос.
sudo mariadb -u root -p
После входа в систему выполните следующие запросы для создания новой базы данных prestashopdb с пользователем prestashop и паролем psp4ssw0rd.
CREATE DATABASE prestashopdb; GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'psp4ssw0rd'; FLUSH PRIVILEGES;
Теперь выполните следующий запрос для проверки привилегий пользователя prestashop. Убедитесь, что пользователь prestashop имеет привилегии для доступа к базе данных prestashopdb.
SHOW GRANTS FOR prestashop@localhost;
Наконец, введите выйти для выхода из сервера MariaDB.
Проверка окружения для установки PrestaShop
Теперь, когда вы настроили LAMP Stack, следующим шагом будет проверка среды PrestaShop.
Перейдите в раздел /var/www/html и загрузите программу проверки PrestaShop с помощью команды wget, приведенной ниже. Обязательно возьмите последнюю версию программы для проверки PrestaShop.
cd /var/www/html/ wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz
После загрузки извлеките исходный код программы проверки PrestaShop и переименуйте извлеченную директорию в check-ps.
tar -xzvf v1.1.tar.gz mv php-ps-info-1.1 check-ps
Наконец, откройте веб-браузер и перейдите по IP-адресу вашего сервера, за которым следует путь к программе проверки PrestaShop, например http://192.168.5.50/check-ps/phppsinfo.php.
Введите стандартный пользователь и пароль ‘prestashop‘.
На странице PrestaShop checker убедитесь, что все зависимости и конфигурация системы соответствуют требованиям PrestaShop.
Загрузка PrestaShop
В этом разделе вы загрузите исходный код PrestaShop на ваш сервер AlmaLinux. Вы также установите соответствующие разрешения и права собственности на исходный код PrestaShop.
Перейдите в раздел /var/www и загрузите последнюю версию PrestaShop с помощью команды wget, приведенной ниже. Обязательно проверьте страницу PrestaShop на GitHub, чтобы получить последнюю стабильную версию PrestaShop.
cd /var/www/ wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.3/prestashop_8.1.3.zip
После загрузки распакуйте исходный код PrestaShop в каталог /var/www/prestashop с помощью команды unzip, приведенной ниже. Эта директория будет использоваться в качестве корневого каталога документа для PrestaShop.
unzip prestashop_8.1.3.zip -d /var/www/prestashop
Теперь измените права собственности и разрешения на каталог /var/www/prestashop на пользовательские apache.
sudo chown -R apache:apache /var/www/prestashop sudo chmod u+rw /var/www/prestashop
Настройка виртуального хоста Httpd
После загрузки PrestaShop вам необходимо создать новую конфигурацию виртуального хоста httpd, который будет использоваться для работы PrestaShop. Поэтому перед настройкой виртуального хоста убедитесь, что у вас готово доменное имя.
Создание новой конфигурации виртуального хоста httpd /etc/httpd/conf.d/prestashop.conf , используя следующую команду редактора nano.
sudo nano /etc/httpd/conf.d/prestashop.conf
Добавьте в файл приведенную ниже конфигурацию и не забудьте изменить доменное имя на свой домен.
ServerName prestashop.local ServerAdmin [email protected] DocumentRoot /var/www/prestashop
Options +FollowSymlinks
AllowOverride All
Require all granted
ErrorLog /var/log/httpd/prestashop_error.log
CustomLog /var/log/httpd/prestashop_access.log combined
Сохраните и выйдите из файла, когда закончите.
Теперь выполните следующую команду, чтобы проверить конфигурацию httpd. Если у вас правильный синтаксис httpd, вы получите сообщение Syntax OK.
sudo apachectl configtest
И наконец, выполните приведенную ниже команду, чтобы перезапустить службу httpd и реализовать новую конфигурацию виртуального хоста. Теперь ваша установка PrestaShop должна быть доступна.
sudo systemctl restart httpd
Настройка Certbot
Перед началом установки PrestaShop обязательно сгенерируйте SSL/TLS сертификаты, особенно для производства. Это легко сделать с помощью Certbot.
Установите certbot и плагин Certbot Apache на ваш сервер AlmaLinux с помощью следующей команды.
sudo dnf install -y certbot python3-certbot-apache -y
После завершения установки сгенерируйте SSL/TLS-сертификаты для доменного имени PrestaShop с помощью следующей команды. Не забудьте изменить доменное имя и адрес электронной почты в следующей команде.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d prestashop.local
Таким образом, ваши SSL/TLS-сертификаты будут сгенерированы по адресу /etc/letsencrypt/live/domain.com каталог. Кроме того, ваша установка PrestaShop будет автоматически настроена на HTTPS с помощью плагина Certbot Apache.
Установка PrestaShop
Откройте веб-браузер и зайдите на домен PrestaShop, который находится по адресу https://prestashop.local/. Если установка прошла успешно, вы получите страницу установки PrestaShop.
Сначала выберите язык по умолчанию – английский, затем нажмите кнопку Далее.
Теперь выберите Согласитесь чтобы принять лицензионное соглашение для PrestaShop, и нажмите кнопку Далее.
Введите название вашего магазина, пользователя admin, пароль и адрес электронной почты, который будет использоваться в качестве администратора для вашей установки PrestaShop. Затем нажмите кнопку Далее , чтобы продолжить.
Для настройки магазина вы можете установить демо-данные и нажать кнопку Далее.
Далее введите имя базы данных MariaDB, пользователя и пароль. Затем нажмите кнопку Далее снова.
После завершения установки вы получите конфигурацию, подобную этой – Вы также можете увидеть дополнительную инструкцию по удалению директории установки PrestaShop:
Домашняя страница PrestaShop.
Вернитесь в терминал и выполните приведенную ниже команду, чтобы удалить каталог установки PrestaShop.
rm -rf /var/www/prestashop/install
Наконец, выполните следующую команду, чтобы разрешить чтение и запись для директорий PrestaShop.
chmod u+rw /var/www/prestashop/var/cache chmod u+rw /var/www/prestashop/var/logs chmod u+rw /var/www/prestashop/img chmod u+rw /var/www/prestashop/mails chmod u+rw /var/www/prestashop/modules chmod u+rw /var/www/prestashop/translations chmod u+rw /var/www/prestashop/upload chmod u+rw /var/www/prestashop/download chmod u+rw /var/www/prestashop/app/config chmod u+rw /var/www/prestashop/app/Resources/translations
Заключение
Поздравляем! Вы завершили установку PrestaShop на сервер AlmaLinux 9. Вы установили PrestaShop с помощью стека LAMP (Apache/Httpd, MySQL/MariaDB и PHP) и защитили PrestaShop с помощью сертификатов SSL/TLS от Letsencrypt. Теперь вы можете загружать свои темы и добавлять товары для продажи.