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

Как установить OpenCart с Nginx и Lets Encrypt на Debian 10


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

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

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

В этом руководстве мы покажем вам, как установить OpenCart с Nginx на Debian 10 и защитить его с помощью Lets Encrypt SSL.

Предпосылки

  • Сервер под управлением Debian 10.
  • На вашем сервере настроен пароль root.

Начиная

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

apt-get update -y
apt-get upgrade -y

После обновления сервера перезапустите его, чтобы изменения вступили в силу.

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

Сначала установите веб-сервер Nginx, сервер базы данных MariaDB, PHP и другие необходимые расширения PHP, выполнив следующую команду:

apt-get install nginx mariadb-server php-common php-cli php-fpm php-opcache php-gd php-mysql php-curl php-intl php-xsl php-mbstring php-zip php-bcmath php-soap unzip git -y

После установки всех пакетов отредактируйте файл php.ini и внесите некоторые изменения:

nano /etc/php/7.3/fpm/php.ini

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

memory_limit = 256M
upload_max_filesize = 100M
opcache.save_comments=1
max_execution_time = 300
date.timezone = Asia/Kolkata

Сохраните и закройте файл, когда закончите.

Настроить базу данных MariaDB

Далее вам нужно будет установить пароль root для MariaDB, так как он не установлен в Debian 10.

Для этого войдите в оболочку MariaDB с помощью следующей команды:

mysql

После входа в систему установите корневой пароль MariaDB с помощью следующей команды:

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("yournewrootpassword");

Затем установите для плагина аутентификации MariaDB значение mysql_native_password с помощью следующей команды:

MariaDB [(none)]> SET GLOBAL innodb_fast_shutdown = 0;
MariaDB [(none)]> UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';

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

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

Затем войдите в MariaDB под пользователем root:

mysql -u root -p

Укажите свой пароль root и создайте базу данных и пользователя для OpenCart с помощью следующей команды:

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

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

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

После настройки MariaDB вы можете перейти к следующему шагу.

Скачать OpenCart

Вы можете загрузить последнюю версию OpenCart из репозитория Git, используя следующую команду:

wget https://github.com/opencart/opencart/releases/download/3.0.3.2/opencart-3.0.3.2.zip

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

unzip opencart-3.0.3.2.zip

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

mv upload /var/www/html/opencart

Затем измените каталог на opencart и переименуйте файл config-dist.php:

cd /var/www/html/opencart/
mv config-dist.php config.php
mv admin/config-dist.php admin/config.php

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

chown -R www-data:www-data /var/www/html/opencart/
chmod -R 775 /var/www/html/opencart/

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

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

Далее вам нужно будет создать файл конфигурации виртуального хоста Nginx для обслуживания OpenCart. Вы можете создать его с помощью следующей команды:

nano /etc/nginx/sites-available/opencart.conf

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

server {
    listen 80;
    server_name opencart.linuxbuz.com;
    root /var/www/html/opencart;
    index index.php;
    access_log /var/log/nginx/opencart_access.log;
    error_log /var/log/nginx/opencart_error.log;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }

}

Сохраните и закройте файл, затем проверьте 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 с помощью следующей команды:

ln -s /etc/nginx/sites-available/opencart.conf /etc/nginx/sites-enabled/

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

systemctl restart nginx
systemctl restart php7.3-fpm

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

Защитите OpenCart с помощью Lets Encrypt SSL

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

По умолчанию Certbot недоступен в стандартном репозитории Debian 10. Поэтому вам нужно будет добавить репозиторий Certbot в вашу систему.

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

echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list

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

apt-get update -y
apt-get install python3-certbot-nginx -t buster-backports

После установки выполните следующую команду, чтобы загрузить Lets Encrypt SSL и настроить Nginx для использования этого SSL:

certbot --nginx -d opencart.linuxbuz.com

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

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
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 opencart.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/nginx/sites-available/opencart-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/nginx/sites-available/opencart-le-ssl.conf
Enabling available site: /etc/nginx/sites-available/opencart-le-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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 vhost in /etc/nginx/sites-enabled/opencart.conf to ssl vhost in /etc/nginx/sites-available/opencart-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://opencart.linuxbuz.com

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

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/opencart.linuxbuz.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/opencart.linuxbuz.com/privkey.pem
   Your cert will expire on 2020-04-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

На данный момент OpenCart защищен с помощью Lets Encrypt SSL.

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

Теперь откройте веб-браузер и введите URL-адрес https://opencart.linuxbuz.com. Вы будете перенаправлены на страницу лицензионного соглашения OpenCart:

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

Убедитесь, что все необходимые расширения PHP установлены, затем нажмите кнопку ПРОДОЛЖИТЬ. Вы должны увидеть следующую страницу:

Укажите свои учетные данные базы данных, имя пользователя администратора, пароль и нажмите кнопку ПРОДОЛЖИТЬ. После завершения установки вы должны увидеть следующую страницу:

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

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

Далее нажмите ПЕРЕЙТИ В ИНТЕРНЕТ-МАГАЗИН. Вы должны увидеть свой магазин OpenCart на следующей странице:

Далее нажмите на кнопку ВОЙТИ В АДМИНИСТРАЦИЯ. Вы должны увидеть страницу входа в OpenCart:

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

Заключение

Поздравляем! вы успешно установили и защитили OpenCart в Debian 10. Теперь вы можете разместить свою собственную онлайн-корзину покупок с помощью OpenCart. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.