Как установить Magento 2 с Nginx и Letsencrypt на Ubuntu 18.04
Это руководство существует для этих версий ОС
- Ubuntu 11.04 (Натти Нарвал)
На этой странице
- Предпосылки
- Что мы будем делать
- Шаг 1. Установите Nginx в Ubuntu 18.04 LTS
- Шаг 2. Установите и настройте PHP-FPM 7.1
- Шаг 3. Установка и настройка сервера MySQL
- Шаг 4. Установите и настройте Magento 2
- - Установите PHP Composer
- - Скачать Magento 2
- - Установка компонентов Magento
- - Создать SSL Letsencrypt
- - Настройка виртуального хоста Nginx
- - После установки Magento
- Дополнительно:
Magento — это широко используемое программное обеспечение для электронной коммерции с открытым исходным кодом и система управления контентом для веб-сайтов электронной коммерции, основанная на PHP Zend Framework. Он использует MySQL или MariaDB в качестве базы данных. Разработка Magento была начата в 2008 году компанией Varien.
В этом руководстве я покажу вам, как установить Magento 2 с Nginx, PHP 7.1 FPM и MySQL в качестве базы данных. Я буду использовать Ubuntu 18.04 (Bionic Beaver) в качестве серверной операционной системы. Если у вас еще нет минимальной настройки сервера, ознакомьтесь с этим руководством, чтобы получить правильную базовую настройку.
Предпосылки
- Убунту 18.04
- 2 ГБ или более оперативной памяти
- Привилегии root
Что мы будем делать
- Установите Nginx в Ubuntu 18.04.
- Установка и настройка PHP-FPM 7.1
- Установка и настройка сервера MySQL
- Установка и настройка Magento 2
- Установите PHP Composer
- Загрузить Magento 2
- Установка компонентов Magento
- Создать SSL Letsencrypt
- Настройка виртуального хоста Nginx для Magento
- После установки Magento
Шаг 1 — Установите Nginx на Ubuntu 18.04 LTS
В этом руководстве мы будем использовать веб-сервер Nginx для нашей установки Magento.
Войдите на сервер, обновите репозиторий и обновите все пакеты.
sudo apt update
sudo apt upgradeТеперь установите веб-сервер Nginx с помощью приведенной ниже команды apt.
sudo apt install nginx -y
После завершения установки запустите службу Nginx и включите ее запуск каждый раз при загрузке системы.
systemctl start nginx
systemctl enable nginxВеб-сервер Nginx установлен, проверьте его с помощью команды netstat и убедитесь, что HTTP-порт 80 находится в состоянии LISTEN. Другой способ — использовать команду curl, как показано ниже.
netstat -plntu
curl -I localhostШаг 2. Установите и настройте PHP-FPM 7.1.
После установки веб-сервера Nginx мы установим на сервер PHP 7.1, так как Magento еще не поддерживает PHP 7.2. Мы установим PHP-FPM со всеми расширениями, необходимыми для Magento 2.
Список расширений PHP, необходимых для установки Magento 2:
- bc-математика
- тип
- завиток
- дом
- gd, ImageMagick 6.3.7 (или новее) или оба
- международный
- mbstring
- мкрипт
- хэш
- openssl
- PDO/MySQL
- ПростойXML
- мыло
- спл
- libxml
- xsl
- молния
- json
- значок
В этом руководстве мы установим пакеты PHP-FPM из репозитория PPA. Мы будем использовать репозиторий ondrej/php.
Установите пакет software-properties-common и добавьте репозиторий ondrej/php, используя приведенные ниже команды.
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -yТеперь установите PHP-FPM 7.1 со всеми необходимыми расширениями.
sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y
После завершения установки проверьте версию PHP и установленные расширения с помощью команд PHP.
php -v
php -meДалее мы настроим файл php.ini для PHP-FPM и PHP-CLI.
Отредактируйте файлы php.ini с помощью vim.
vim /etc/php/7.1/fpm/php.ini
vim /etc/php/7.1/cli/php.iniИзмените значение этих строк, как показано ниже.
memory_limit = 512M max_execution_time = 180 zlib.output_compression = On
Сохранить и выйти.
Теперь перезапустите службу PHP-fpm и включите ее запуск каждый раз при загрузке системы.
systemctl restart php7.1-fpm
systemctl enable php7.1-fpmУстановка и настройка PHP-FPM 7.1 завершена, проверьте сервис с помощью команды netstat.
netstat -pl | grep php
И вы получите файл socks PHP-fpm, как показано ниже.
Шаг 3 — Установите и настройте сервер MySQL
Для программного обеспечения Magento требуется MySQL 5.6.x, а для Magento 2.1.2 или более поздней версии требуется MySQL 5.7.x. В этом руководстве мы установим последнюю версию сервера MySQL 5.8 в системе Ubuntu 18.04.
Установите MySQL 5.8 с помощью приведенной ниже команды apt.
sudo apt install mysql-server mysql-client -y
После завершения установки запустите службу MySQL и включите ее запуск каждый раз при загрузке системы.
systemctl start mysql
systemctl enable mysqlТеперь мы настроим пароль root для MySQL с помощью команды mysql_secure_installation.
mysql_secure_installation
В этой версии MySQL 5.8 есть улучшение безопасности для политики паролей MySQL. Вам нужно выбрать политику паролей - 0 для политики LOW, 1 для политики MEDIUM и 2 для политики SRONG для паролей.
В этом руководстве мы будем использовать СРЕДНЮЮ политику паролей, и рекомендуется использовать СИЛЬНУЮ политику паролей на рабочем сервере.
Выберите номер 1 и нажмите Enter, затем введите новый корневой пароль MySQL.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : YКорневой пароль MySQL установлен.
Далее мы создадим новую базу данных для нашей установки Magento. Мы создадим новую базу данных с именем magentodb с пользователем magentouser и паролем [email #.
Войдите в оболочку MySQL, используя пользователя root.
mysql -u root -p
Теперь запустите запросы MySQL ниже, чтобы создать базу данных и пользователя.
create database magentodb;
create user #';
flush privileges;Установка и настройка сервера MySQL для установки Magento завершена.
Шаг 4 — Установите и настройте Magento 2
На этом этапе мы установим последнюю версию Magento 2.2.4 из репозитория Github. Мы установим компоновщик PHP для установки компонентов Magento, загрузим Magento из репозитория Github, настроим виртуальный хост Nginx для Magento и установим Magento с помощью постустановки через Интернет.
- Установите PHP-композитор
Установите PHP Composer на Ubuntu 18.04, используя приведенную ниже команду apt.
sudo apt install composer -y
После завершения установки проверьте версию композитора, установленную в системе.
composer -V
Установлена последняя версия PHP Composer.
- Скачать Магенто 2
Перейдите в каталог /var/www и загрузите исходный код архива Magento с Github с помощью команды wget.
cd /var/www/
wget https://github.com/magento/magento2/archive/2.2.4.tar.gzТеперь извлеките файл архива Magento и переименуйте каталог в magento2.
tar -xf 2.2.4.tar.gz
mv magento2-2.2.4/ magento2/Исходный код Magento был загружен, и каталог /var/www/magento2 будет корневым веб-сайтом для сайта Magento.
- Установить компоненты Magento
Установите компоненты Magento с помощью компоновщика PHP. Перейдите в каталог magento2 и установите все компоненты PHP, необходимые Magento, с помощью команды composer.
cd /var/www/magento2
composer install -vПосле завершения установки вы получите результат, как показано ниже.
- Создать SSL Letsencrypt
Мы защитим нашу установку Magento, используя SSL от Letsencrypt. Установите Letsencrypt с помощью приведенной ниже команды apt.
sudo apt install letsencrypt -y
После завершения установки остановите службу nginx.
systemctl stop nginx
Теперь сгенерируйте SSL-сертификаты для доменного имени с помощью команды certbot, как показано ниже.
certbot certonly --standalone -d magento.hakase-labs.pw
Введите свой адрес электронной почты, примите Условия использования Letsencrypt, а затем введите N для обмена электронной почтой.
Когда он будет завершен, вы получите результат, как показано ниже.
Файлы SSL-сертификата Letsencrypt были созданы в каталоге /etc/letsencrypt/live.
- Настроить виртуальный хост Nginx
Перейдите в каталог /etc/nginx/sites-available и создайте новый файл виртуального хоста magento с помощью vim.
cd /etc/nginx/sites-available/
vim magentoВставьте туда следующую конфигурацию.
upstream fastcgi_backend { server unix:/run/php/php7.1-fpm.sock; } server { listen 80; listen [::]:80; server_name magento.hakase-labs.pw; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name magento.hakase-labs.pw; ssl on; ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem; set $MAGE_ROOT /var/www/magento2; set $MAGE_MODE developer; include /var/www/magento2/nginx.conf.sample; }
Сохраните конфигурацию и выйдите.
Теперь активируйте виртуальный хост, создав символическую ссылку для файла виртуального хоста Magento на каталог с поддержкой сайтов.
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
Протестируйте файл конфигурации nginx и убедитесь, что в нем нет ошибок.
nginx -t
Теперь перезапустите службу PHP-FPM и Nginx.
systemctl restart php7.1-fpm
systemctl restart nginxИ измените владельца корневого веб-каталога Magento на пользователя и группу www-data.
chown -R www-data:www-data /var/www/magento2/
Добавлен виртуальный хост nginx для Magento.
- Magento после установки
Откройте веб-браузер и введите URL-адрес Magento. Мой:
Чтобы ознакомиться с условиями и соглашением, нажмите кнопку «Согласен и настройте Magento».
Теперь проверьте всю конфигурацию системы и сервера для Magento Readlines Check и убедитесь, что она проходит все проверки системы и конфигурации, как показано ниже.
Теперь нажмите кнопку Далее.
Конфигурация базы данных для Magento — введите всю информацию о нашей базе данных и нажмите «Далее».
Для веб-конфигурации измените адрес магазина на HTTPS, адрес администратора Magento с URL-адресом вашего пути администратора и снимите флажок Apache Rewrites, поскольку использовался веб-сервер Nginx.
Нажмите кнопку Далее еще раз.
Оставьте «Настроить свой магазин» по умолчанию и нажмите «Далее».
Введите имя пользователя и пароль администратора, затем нажмите «Далее».
И нажмите кнопку «Установить сейчас», чтобы установить Magento.
И когда установка будет завершена, вы получите результат успеха, как показано ниже.
Теперь нам нужно отключить доступ на запись для каталога /var/www/magento2/app/etc. Запустите команду ниже.
sudo chmod -w /var/www/magento2/app/etc
Magento был установлен на сервер Ubuntu 18.04 Bionic Beaver.
Шаг 5 - Тестирование
Введите домашний адрес Magento URL и убедитесь, что вы получаете домашнюю страницу Magento по умолчанию. Мой: https://magento.hakase-labs.pw/
Теперь войдите в панель администратора Magento, посетив URL-адрес, указанный во время установки admin_hakase. Мой:
Введите имя пользователя и пароль, затем нажмите кнопку «Войти».
И вы получите панель администратора Magento, как показано ниже.
Magento 2 был установлен на Ubuntu 18.04 с веб-сервером Nginx, базой данных MySQL и PHP-FPM 7.1.
Дополнительный:
Если вы получили сообщение об ошибке cronjob индексатора Magento, то вы можете решить эту проблему, сгенерировав скрипт crontab с помощью следующей команды:
cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --forceТеперь проверьте список скриптов crontab для пользователя www-data.
crontab -u www-data -l
Ссылка
- https://devdocs.magento.com/