Как установить Shopware с NGINX и Lets Encrypt на Fedora 30
На этой странице
- Требования
- Предпосылки
- Шаг 1. Установите PHP и расширения PHP
- )
- Шаг 3. Установите MariaDB и создайте базу данных для Shopware.
- Шаг 4. Установите клиент Acme.sh и получите сертификат Lets Encrypt (необязательно)
- Шаг 5. Установите и настройте NGINX
- Шаг 6. Установите ПО для магазина
- Шаг 7. Завершите настройку Shopware
- Ссылки
Shopware — это новое поколение программного обеспечения для электронной коммерции с открытым исходным кодом. Основанная на передовых технологиях, таких как Symfony 3, Doctrine2
и Zend Framework, Shopware станет идеальной платформой для вашего следующего проекта электронной коммерции. В этом учебном пособии вы узнаете, как установить Shopware Community Edition (CE) в системе Fedora 30 с использованием NGINX в качестве веб-сервера.
Требования
Убедитесь, что ваша система соответствует следующим минимальным требованиям:
- Операционная система на базе Linux с установленным веб-сервером NGINX или Apache 2.x (с mod_rewrite).
- PHP 5.6.4 или выше с расширениями ctype, gd, curl, dom, hash, iconv, zip, json, mbstring, openssl, session, simplexml, xml, zlib, fileinfo и pdo/mysql. Настоятельно рекомендуется PHP 7.1 или выше.
- MySQL 5.5.0 или выше.
- Возможность настроить задания cron.
- Минимум 4 ГБ свободного места на жестком диске.
- IonCube Loader версии 5.0.0 или выше (необязательно).
ПРИМЕЧАНИЕ. Shopware 5 в настоящее время совместимо с PHP 7.2.x.
Предпосылки
- Операционная система под управлением Fedora 29.
- Пользователь без полномочий root с привилегиями sudo.
В этом уроке я буду использовать доменное имя example.com. Пожалуйста, замените слово example.com своим собственным доменным именем везде, где оно встречается в командах и файлах конфигурации ниже (особенно в файле конфигурации nginx и командах Lets encrypt).
Начальные шаги
Проверьте свою версию Fedora:
cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)
Настройте часовой пояс:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Обновите пакеты операционной системы (программное обеспечение). Это важный первый шаг, поскольку он гарантирует наличие последних обновлений и исправлений безопасности для пакетов программного обеспечения вашей операционной системы по умолчанию:
sudo dnf upgrade -y
Установите несколько основных пакетов, необходимых для базового администрирования операционной системы Fedora:
sudo dnf install -y curl wget vim git sudo unzip socat bash-completion
Шаг 1 — Установите PHP и расширения PHP
Установите PHP, а также необходимые расширения PHP для Shopware:
sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache
Чтобы показать PHP, скомпилированный в модулях, вы можете запустить:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Проверьте версию PHP:
php --version
# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies
Запустите и включите службу PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Мы можем перейти к следующему шагу — установке IonCube Loader.
Шаг 2. Установите загрузчик IonCube (необязательно)
Этот шаг является необязательным, поскольку теперь Shopware работает без IonCube, но могут существовать расширения или темы, использующие IonCube, поэтому его установка не помешает. Загрузите загрузчик IonCube:
cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
Извлеките загрузчик:
tar xfz ioncube_loaders_lin_*.gz
Найдите каталог расширений PHP в системе, выполнив следующую команду:
php -i | grep extension_dir
# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules
Скопируйте загрузчик ionCube в каталог расширений PHP:
sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules
Включите загрузчик через конфигурацию PHP:
sudo vim /etc/php.ini
Затем добавьте строку в файл, чтобы включить загрузчик ionCube. Это может быть любое место в файле под строкой [PHP]
:
zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so
Сохраните файл и перезапустите PHP-FPM:
sudo systemctl restart php-fpm.service
Шаг 3. Установите MariaDB и создайте базу данных для Shopware.
Установите сервер базы данных MariaDB:
sudo dnf install -y mariadb-server
Проверьте версию MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1
Запустите и включите службу MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Запустите скрипт mysql_secure install
, чтобы улучшить безопасность MariaDB, и установите пароль для пользователя root
в MariaDB:
sudo mysql_secure_installation
Ответьте на каждый из вопросов:
Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Подключитесь к оболочке MariaDB как пользователь root:
sudo mysql -u root -p
# Enter password
Создайте пустую базу данных MariaDB и пользователя для Shopware и запомните учетные данные:
mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
Выход из MariaDB:
mysql> exit
Замените имя_базы_данных
, имя_пользователя
и пароль
своими именами.
Шаг 4. Установите клиент Acme.sh и получите сертификат Lets Encrypt (необязательно)
Защита вашего веб-сайта с помощью HTTPS не является обязательной, но это хорошая практика для защиты трафика вашего сайта. Чтобы получить сертификат TLS от Lets Encrypt, мы будем использовать клиент acme.sh. Acme.sh — это чистое программное обеспечение оболочки Unix для получения сертификатов TLS от Lets Encrypt без каких-либо зависимостей.
Загрузите и установите acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~
Проверьте версию acme.sh:
acme.sh --version
# v2.8.1
Получите сертификаты RSA и ECC/ECDSA для своего домена/имени хоста:<br>
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Если вам нужны поддельные сертификаты для тестирования, вы можете добавить флаг --staging
к приведенным выше командам.
После выполнения приведенных выше команд ваши сертификаты и ключи будут находиться в:
- Для RSA:
/home/username/example.com
каталог. - Для ECC/ECDSA:
/home/username/example.com_ecc
каталог.
Чтобы просмотреть список выданных сертификатов, вы можете запустить:
acme.sh --list
Создайте каталог для хранения сертификатов. Мы будем использовать каталог /etc/letsencrypt.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Установите/скопируйте сертификаты в каталог /etc/letsencrypt.
# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
Все сертификаты будут автоматически обновляться каждые 60 дней.
После получения сертификатов выйдите из-под пользователя root и вернитесь к обычному пользователю sudo:
exit
Шаг 5 – Установите и настройте NGINX
Установите веб-сервер NGINX:
sudo dnf install -y nginx
Проверьте версию NGINX:
nginx -v
# nginx version: nginx/1.14.2
Запустите и включите сервис NGINX:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Настройте NGINX для Shopware. Запустите sudo vim /etc/nginx/conf.d/shopware.conf
и добавьте следующую конфигурацию:
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/shopware;
index shopware.php index.php;
location / {
try_files $uri $uri/ /shopware.php$is_args$args;
}
location /recovery/install {
index index.php;
try_files $uri /recovery/install/index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}
Проверьте конфигурацию NGINX на наличие синтаксических ошибок:
sudo nginx -t
Перезагрузите сервис NGINX:
sudo systemctl reload nginx.service
Шаг 6. Установите ПО для магазина
Создайте корневой каталог документов для Shopware:
sudo mkdir -p /var/www/shopware
Измените владельца каталога /var/www/shopware
на {your_user}. Замените {your_user} на имя пользователя, под которым вы сейчас вошли:
sudo chown -R {your_user}:{your_user} /var/www/shopware
Перейдите в корневой каталог документа:
cd /var/www/shopware
Загрузите и разархивируйте последнюю версию Shopware с помощью wget:
wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm shopware.zip
ПРИМЕЧАНИЕ. Обновите URL загрузки, если есть более новая версия.
Измените владельца каталога /var/www/shopware
на nginx
.
sudo chown -R nginx:nginx /var/www/shopware
Запустите sudo vim /etc/php-fpm.d/www.conf
и установите для пользователя и группы значение nginx
. Первоначально они будут установлены на apache:
sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
Создайте каталог /var/lib/php/session/
и измените владельца на nginx
.
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
Увеличьте memory_limit=256M
и upload_max_filesize=6M
и установите allow_url_fopen=On
, если это еще не установлено в /etc/php/7.2/ файл fpm/php.ini
.
sudo vim /etc/php.ini
После внесения изменений в файл /etc/php.ini
перезагрузите php-fpm.service:
sudo systemctl reload php-fpm.service
Откройте свой домен/IP-адрес в веб-браузере и следуйте указаниям мастера установки. Серверная часть Shopware находится по адресу /backend
пример: http://example.com/backend
.
Шаг 7. Завершите настройку Shopware
Начните с выбора языка и нажмите «Далее»:
Затем убедитесь, что вы соответствуете всем требованиям Shopware:
Согласитесь с TOS Shopware и нажмите «Далее»:
Введите учетные данные базы данных и нажмите «Далее»:
Запустите установку для создания таблиц базы данных:
После этого вы увидите сообщение об успешном импорте базы данных:
Выберите лицензию и нажмите Далее:
Заполните несколько основных параметров, чтобы завершить настройку, и нажмите «Далее»:
Установка завершена.
Чтобы получить доступ к административной панели, добавьте /backend к своему URL-адресу.
Вы успешно установили Shopware. Наслаждайтесь своим новым интернет-магазином!
Ссылки
- https://en.shopware.com/
- https://github.com/shopware/shopware