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

Как установить Shopware 6 с NGINX и Lets Encrypt на CentOS 8


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

  • CentOS 8
  • CentOS 7.6

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

  1. Предпосылки
  2. Установить сервер LEMP
  3. Настройка PHP-FPM
  4. Создание базы данных для Shopware
  5. Загрузить ПО для магазина
  6. Настройка Nginx для Shopware
  7. Настройка SELinux и брандмауэра
  8. Доступ к веб-интерфейсу Shopware
  9. Защитите ПО для магазинов с помощью Lets Encrypt SSL
  10. Заключение

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

В этом руководстве мы покажем вам, как установить Shopware с Nginx и Lets Encrypt SSL на CentOS 8.

Предпосылки

  • Сервер под управлением CentOS 8.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На вашем сервере настроен пароль root.

Установить LEMP-сервер

Shopware работает на веб-сервере и построен на PHP с компонентами Symfony и Zend и использует MySQL или MariaDB в качестве базы данных. Поэтому вам нужно будет установить Nginx, MariaDB, PHP и другие расширения на ваш сервер. Вы можете установить их все с помощью следующей команды:

dnf install nginx mariadb-server php php-cli php-intl php-fpm php-common php-mysqli php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache unzip -y

После установки всех пакетов запустите службу Nginx, MariaDB и PHP-FPM и включите их запуск при перезагрузке системы с помощью следующей команды:

systemctl start mariadb
systemctl enable mariadb
systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable php-fpm

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

Настроить PHP-FPM

По умолчанию PHP-FPM настроен на запуск от имени пользователя и группы Apache. Поэтому вам нужно будет настроить его для работы в качестве пользователя и группы Nginx. Вы можете сделать это, отредактировав файл /etc/php-fpm.d/www.conf:

nano /etc/php-fpm.d/www.conf

Измените следующие строки:

user = nginx 
group = nginx 

Сохраните и закройте файл, затем создайте каталог сеанса и установите правильное право собственности с помощью следующей команды:

mkdir -p /var/lib/php/session 
chown -R nginx:nginx /var/lib/php/session

Затем отредактируйте файл php.ini и настройте некоторые рекомендуемые параметры:

nano /etc/php.ini

Измените следующие строки:

memory_limit = 512M
upload_max_filesize = 20M
date.timezone = Asia/Kolkata

Сохраните и закройте файл, затем перезапустите службу PHP-FPM, чтобы применить изменения:

systemctl restart php-fpm

Создайте базу данных для Shopware

Далее вам нужно будет создать базу данных и пользователя для Shopware. Сначала подключитесь к MariaDB с помощью следующей команды:

mysql

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

MariaDB [(none)]> CREATE DATABASE shopware;
MariaDB [(none)]> GRANT ALL ON shopware.* TO 'shopware' IDENTIFIED BY 'password';

Затем сбросьте привилегии и выйдите из MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

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

Скачать ПО для магазина

Далее вам нужно будет загрузить последнюю версию Shopware для ее официального сайта. Сначала создайте каталог для Shopware внутри корневого каталога Nginx:

mkdir /var/www/html/shopware

Затем загрузите Shopware с помощью следующей команды:

wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_v6.3.5.0_ba08dbfc07784b5cefe7837f2abbda69dbf5b8b7.zip -O shopware.zip

После завершения загрузки извлеките загруженный файл в каталог shopware:

unzip shopware.zip -d /var/www/html/shopware

Затем установите правильное разрешение и право собственности с помощью следующей команды:

chown -R nginx:nginx /var/www/html/shopware
chmod -R 775 /var/www/html/shopware

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

Настроить Nginx для Shopware

Затем создайте файл конфигурации виртуального хоста Nginx для Shopware с помощью следующей команды:

nano /etc/nginx/conf.d/shopware.conf

Добавьте следующие строки:

server {
    listen 80;

    # Handle / to index.php
    index index.php;

    # Our server name
    server_name shopware.example.com;

    # Where the code is located
    root /var/www/html/shopware/public;

    # Needed for Shopware install / update
    location /recovery/install {
        index index.php;
        try_files $uri /recovery/install/index.php$is_args$args;
    }

    location /recovery/update/ {
        if (!-e $request_filename){
            rewrite . /recovery/update/index.php last;
        }
    }

    # Forward any not found file to index.php. Also allows to have beautiful urls like /homemade-products/
    location / {
        try_files $uri /index.php$is_args$args;
    }

    # Let php-fpm handle .php files
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        fastcgi_read_timeout 300s;
        client_body_buffer_size 128k;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        http2_push_preload on;
    }
}

Сохраните и закройте файл, затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:

nginx -t

Вы должны получить следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Вы также можете проверить статус Nginx с помощью следующей команды:

systemctl status nginx

Вы должны получить следующий результат:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Tue 2021-02-02 00:40:04 EST; 19s ago
  Process: 76059 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 76057 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 76054 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 76060 (nginx)
    Tasks: 3 (limit: 12523)
   Memory: 5.5M
   CGroup: /system.slice/nginx.service
           ??76060 nginx: master process /usr/sbin/nginx
           ??76061 nginx: worker process
           ??76062 nginx: worker process

Feb 02 00:40:04 centos8 systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Feb 02 00:40:04 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Feb 02 00:40:04 centos8 nginx[76057]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Feb 02 00:40:04 centos8 nginx[76057]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Feb 02 00:40:04 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

Настройте SELinux и брандмауэр

По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно будет настроить контекст SELinux для Shopware. Вы можете настроить его с помощью следующей команды:

setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/shopware

Затем разрешите порты 80 и 443 через firewalld с помощью следующей команды:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

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

Доступ к веб-интерфейсу Shopware

Теперь откройте веб-браузер и введите URL-адрес http://shopware.example.com.

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

Согласитесь с GTC и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Укажите базу данных, имя пользователя, пароль и нажмите кнопку «Начать установку». После завершения установки вы должны увидеть следующую страницу:

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

Введите всю информацию и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Установите нужные языковые плагины и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Установите демо-данные или пропустите это и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Нажмите «Настроить позже». Вы должны увидеть следующую страницу:

Нажмите на кнопку Пропустить. Вы должны увидеть следующую страницу:

Нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Нажмите на кнопку Пропустить. Вы должны увидеть следующую страницу:

Нажмите кнопку Готово. Вы должны увидеть страницу приветствия Shopware:

Безопасное ПО для магазинов с Lets Encrypt SSL

Затем вам нужно будет установить утилиту Certbot в вашей системе, чтобы загрузить и установить Lets Encrypt SSL для домена Lets Chat.

Вы можете установить клиент Certbot с помощью следующей команды:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Затем получите и установите SSL-сертификат для вашего домена lets с помощью следующей команды:

certbot-auto --nginx -d shopware.example.com

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

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for shopware.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/shopware.conf

Затем выберите, следует ли перенаправлять HTTP-трафик на HTTPS, как показано ниже:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

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

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/shopware.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://shopware.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=shopware.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/shopware.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/shopware.example.com/privkey.pem
   Your cert will expire on 2021-04-2. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Теперь вы можете безопасно получить доступ к Shopware, используя URL-адрес https://shopware.example.com.

Заключение

Поздравляем! вы успешно установили и настроили Shopware с помощью Nginx и Lets Encrypt SSL на CentOS 8. Теперь вы можете легко разместить свой собственный интернет-магазин с помощью Shopware. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.