Як встановити Magento 2 на Ubuntu 20.04 LTS

Вичерпний посібник щодо налаштування та розгортання магазину Magento2 на сервері Ubuntu 20.04.

Magento — це популярна платформа для електронної комерції, створена на PHP, вона використовується багатьма малими підприємствами для продажу продуктів і створення онлайн-присутності. Він дозволяє створити повноцінний інтернет-магазин з такими функціями, як управління запасами, каталоги товарів, доставка, виставлення рахунків і багато іншого.

Якщо ви хочете створити елегантну торгову платформу корпоративного рівня для свого бізнесу, Magento має стати чудовою відправною точкою. Тому в цьому посібнику ми розглянемо, як налаштувати видання спільноти Magento версії 2.3 зі стеком LAMP на сервері Ubuntu 20.04.

Передумови

Вам знадобиться сервер Ubuntu 20.04 LTS і ввійти як a sudo увімкнений користувач. Вам також знадобиться ім’я домену, яке вказує на IP-адресу вашого сервера Ubuntu 20.04. Ми будемо використовувати example.com там, де потрібне доменне ім’я, замініть його своїм доменом. Перш ніж ми почнемо, оновіть список пакетів, а потім оновіть пакунки на вашому сервері Ubuntu 20.04.

Оновлення sudo apt && оновлення sudo apt

Встановіть веб-сервер Apache

Для роботи Magento потрібен веб-сервер, у цьому посібнику ми вирішили використовувати запуск програми Magento через стек LAMP (Linux, Apache, MySQL, PHP). Отже, ми збираємося встановити всі пакунки, що складаються зі стека LAMP.

Веб-сервер Apache є одним з найпопулярніших веб-серверів в Інтернеті, що займає майже 37,2% загальної частки ринку веб-серверів. Ви також можете встановити Magento через стек LEMP, який використовує веб-сервер Nginx замість apache. Але в цьому посібнику ми збираємося розгорнути наш сервер Megento за допомогою Apache.

Щоб встановити веб-сервер Apache, виконайте наведену нижче команду:

sudo apt встановити apache2

Введіть пароль користувача та натисніть Ю якщо буде запропоновано. Коли інсталяція буде завершена, нам потрібно налаштувати простий брандмауер Ubuntu (UFW), щоб дозволити трафік через порт 80 & 443.

UFW поставляється з попередньо налаштованими профілями, які можна перемикати, щоб дозволити програмі отримати доступ до портів на вашому сервері Ubuntu 20.04. Тому, коли ви встановили веб-сервер Apache, профілі UFW під назвою «Apache», «Apache Full» та «Apache Secure» були додані до списку програм UFW. Дозволити веб-серверу Apache обслуговувати порт 80 & 443 за допомогою:

sudo ufw дозволити 'Apache Full'

Тепер все, що нам потрібно зробити, це увімкнути UFW, але перш ніж ми це зробимо, переконайтеся, що ви дозволили порт 22 (SSH). Якщо ви не зміните правила SSH UFW, ви можете втратити доступ до свого сервера Ubuntu 20.04.

sudo ufw дозволити "OpenSSH"

Нарешті, увімкніть брандмауер UFW, виконавши:

sudo ufw увімкнути

Натисніть Ю якщо ви отримаєте підказку про те, що команда може порушити з’єднання SSH, оскільки ми вже додали правило, яке дозволяє використовувати SSH. Тепер ви можете отримати доступ до веб-сервера apache через свій браузер, введіть IP-адресу вашого сервера Ubuntu 20.04 у рядку URL і натисніть Enter.

Сторінка за замовчуванням apache2 ubuntu

Встановіть сервер MySQL

Вам також знадобиться сервер бази даних для запуску Magento, оскільки саме там зберігається весь вміст магазину Magento. Ми збираємося встановити сервер MySQL і створити користувача під назвою magentoser і базу даних під назвою пурпурний для Magento.

Пакет MySQL називається як mysql-сервер у сховищах Ubuntu встановіть його, виконавши:

sudo apt встановити mysql-сервер

Далі нам потрібно правильно налаштувати параметри безпеки MySQL. На щастя, пакет MySQL постачається зі скриптом безпеки, який значно полегшує налаштування сервера MySQL. Отже, виконайте цей сценарій, виконавши таку команду:

sudo mysql_secure_installation

Вам буде запропоновано кілька запитань, це оптимальні налаштування для сервера MySQL:

  • Бажаєте налаштувати компонент VALIDATE PASSWORD?[y/n]: Enter Ю
  • Існує три рівні політики перевірки пароля.
    • Будь ласка, введіть 0 = НИЗЬКИЙ, 1 = СЕРЕДНІЙ і 2 = СИЛЬНИЙ: Введіть 2
  • Будь ласка, встановіть тут пароль для root.
    • Новий пароль: введіть пароль для користувача root MySQL.
    • Повторно введіть новий пароль: повторіть вибраний пароль.
  • Видалити анонімних користувачів? [y/n]: введіть Ю
  • Віддалено заборонити вхід root? [y/n] : Введіть Ю
  • Видалити тестову базу даних і отримати доступ до неї? [y/n] : Введіть Ю
  • Перезавантажити таблиці привілеїв зараз? [y/n] : Введіть Ю

Потім, щоб перевірити та перевірити, що сервер MySQL встановлено та працює належним чином, увійдіть на сервер MySQL як користувач root за допомогою:

sudo mysql

Введіть ваш sudo пароль користувача, коли вам буде запропоновано це зробити, і натисніть Enter. Користувач root MySQL використовує unix_socket для аутентифікації входу. По суті, це означає, що ви повинні бути sudo користувач, щоб увійти на сервер MySQL як користувач root.

Створіть нову базу даних і користувача для Magento

Тепер ми можемо створити користувача MySQL для Magento, і якщо ви виконали кожен крок цього посібника, у вас повинна бути відкрита консоль MySQL. Створіть базу даних під назвою пурпурний ввівши такий запит у консолі MySQL:

СТВОРИТИ БАЗУ ДАНИХ magento;

Щоб створити нового користувача MySQL, зателефонуйте magentoser, запустіть цей запит у консолі:

СТВОРИТИ КОРИСТУВАЛЬНИКА 'magentoser'@'%' ІДЕНТИФІКОВАНО ЗА mysql_native_password ЗА 'паролем';

Примітка: Замініть пароль у запиті з надійним паролем за вашим вибором.

Потім надайте нове magentoser повний доступ до пурпурний база даних:

GRANT ALL ON magento.* ДО 'magentoser'@'%' З ОПЦІЄЮ НАДАННЯ;

Нам потрібно встановити log_bin_trust_function_creators параметр як 1, оскільки він вимкнено в останній версії MySQL і без його ввімкнення Magento видає кілька помилок під час встановлення. Для цього виконайте такий запит:

SET GLOBAL log_bin_trust_function_creators=1;

Нарешті, перезавантажте привілеї та налаштування бази даних, які ми змінили, і вийдіть з консолі за допомогою цих запитів:

ПРИВІЛЕЇ ПРОМИВКИ; ВИХІД;

Встановіть PHP та необхідні розширення

Для роботи Magento потрібен PHP і кілька розширень PHP. На момент написання цієї статті була версія видання спільноти Magento 2.3 не працює з останньою версією PHP 7.4 і тому нам потрібно встановити версію PHP 7.3.

Нам потрібно додати сторонній PHP PPA, щоб ми могли встановити версію PHP 7.3 оскільки репозиторії Ubuntu мають лише останню версію 7.4 пакети. Додайте PPA та оновіть список пакетів, виконавши такі команди:

sudo add-apt-repository ppa:ondrej/php && sudo apt update

Потім встановіть PHP 7.3 і всі модулі PHP, які потрібні Magento, запустивши таку команду:

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

Після встановлення PHP 7.3 нам потрібно налаштувати деякі основні параметри, рекомендовані Magento для належної роботи. Виконайте цю команду, щоб відкрити файл конфігурації розширення FPM за допомогою nano

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

Ось кілька налаштувань, рекомендованих для більшості веб-сайтів Magento.

file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Збережіть зміни, натиснувши Ctrl+O потім вийдіть з редактора nano, натиснувши Ctrl+X. Тепер у нас є PHP і всі необхідні розширення, тому ми можемо перейти до отримання Magento.

Встановіть Composer

Composer — це менеджер залежностей PHP, який полегшує встановлення фреймворків і бібліотек PHP. Нам потрібен Composer, щоб завантажити та встановити Magento на нашому сервері Ubuntu 20.04.

Композитору потрібен пакет під назвою розпакувати щоб розпакувати завантажені бібліотеки та фреймворки, інсталюйте їх, виконавши:

sudo apt встановити розпакувати

Потім встановіть composer на загальносистемному рівні, виконавши цю команду:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

Наведена вище команда має встановити диспетчер залежностей Composer на сервері Ubuntu 20.04. Перевірте, чи Composer встановлено належним чином, запустивши:

композитор
 ВИХОД:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Версія композитора 1.10.8 2020-06- 24 21:23:30 Використання: команда [параметри] [аргументи] 

Завантажте та встановіть Magento

Тепер ми можемо перейти до завантаження та встановлення Magento, оскільки ми встановили та налаштували всі необхідні пакети, необхідні для Magento.

Створення облікового запису Magento

Щоб завантажити Magento на сервер Ubuntu 20.04, вам знадобиться ключ доступу до Magento 2. Щоб отримати цей ключ доступу, вам потрібен обліковий запис Magento. Якщо ви не зареєстровані та не маєте облікового запису Magento, перейдіть на цю сторінку та натисніть «Зареєструватися».

Після того як ви завершите створення облікового запису Magento, ви зможете створити новий ключ доступу, щоб завантажити Magento 2 на свій комп’ютер за допомогою composer. Ви можете переглянути всі ключі доступу Magento на цій сторінці. Якщо на вкладці Magento 2 немає ключа доступу, натисніть кнопку «Створити новий ключ доступу» і введіть йому назву, а потім натисніть «ОК».

Ці ключі є вашими обліковими даними, які використовуються для завантаження Magento 2 із репозиторію Magento через Composer. Ми будемо використовувати ці ключі під час завантаження Magento, але перед цим ми збираємося налаштувати право власності на каталог і дозволи.

Право власності та конфігурація дозволів перед встановленням

Дозволи на файли можуть створювати або порушувати безпеку будь-якого веб-сайту, тому необхідно правильно налаштувати право власності та дозвіл на кореневий документ сервера Apache.

Власник за замовчуванням /var/www/ каталог є користувачем root, але нам потрібно отримати доступ і змінити файли в цьому каталозі. Крім того, веб-сервер також потребує доступу до кореня документа, щоб записувати та змінювати вміст сайту Magento.

Отже, щоб вирішити цю проблему, ми збираємося додати поточного користувача до www-дані групу, для цього запустіть:

sudo usermod -a -G www-data $USER

The параметри важливі, оскільки вони додають www-дані як додаткова група для облікового запису користувача, яка зберігає основну групу користувача. Після додавання користувача до групи веб-сервера змініть власника /var/www/ та його підкаталоги за допомогою цієї команди:

sudo chown -R $USER:www-data /var/www/

Тепер, коли ми налаштували дозволи перед інсталяцією для Magento, ми можемо перейти до його завантаження в кореневому корені документа веб-сервера.

Завантаження Magento

Тепер на цьому етапі ви повинні мати обліковий запис Magento з ключами доступу та дозволами на попереднє встановлення, налаштованими правильно. Тому ми будемо використовувати Composer, щоб завантажити Magento в корінь документа Apache, а потім встановити його.

Змініть поточний каталог на /var/www/ тому термінал вказує на нього, виконавши:

компакт-диск /var/www/

Виконайте наведену нижче команду, щоб створити новий проект за допомогою Composer, відомого як пурпурний.

композитор create-project --repository=//repo.magento.com/magento/project-community-edition magento

Після використання наведеної вище команди вам буде запропоновано ввести ім’я користувача та пароль. Ключі доступу, які ми створили, будуть використані тут. Скопіюйте відкритий ключ і вставте його як ім’я користувача, а потім так само скопіюйте свій закритий ключ і вставте його в термінал як пароль. Потім натисніть Ю щоб зберегти облікові дані для подальшого використання.

 Вихід:  Створення проекту "magento/project-community-edition" на "./magento" Попередження від repo.magento.com: Ви не надали ключі аутентифікації Magento. Щоб отримати інструкції, відвідайте //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Потрібна автентифікація (repo.magento.com): Ім’я користувача: e8b6120dce14c3d982a85525264897c4 Пароль: Ви хочете зберегти пароль для repo.magento.com у /home/ath/.config/composer/auth.json ? [Yn] Ю

Після того, як Magento та всі його залежності будуть завантажені через Composer, нам потрібно встановити право власності та дозвіл на новий каталог проекту Magento та його файли. Змініть каталог на корінь проекту Magento:

компакт-диск /var/www/magento/

Потім змініть власника групи для каталогу проекту Magento та його підкаталогів, виконавши:

знайти var згенерований постачальник pub/static pub/media app/etc -type f -exec chmod g+w {} + && знайти var згенерований постачальник pub/static pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Ця команда надасть групі веб-серверів (www-дані) дозволи на запис у каталоги постачальника, pub/static, pub/media, app/etc і файли всередині них. Крім того, це зробить bin/magento виконуваний файл, щоб ми могли запустити його та встановити Magento у нашій системі.

Налаштування Apache для Magento

Ми збираємося встановити Magento за допомогою графічного інтерфейсу користувача, оскільки в даному випадку це більш інтуїтивно, ніж установка CLI. Таким чином, нам потрібно створити віртуальний хост для веб-сервера Apache, перш ніж ми зможемо продовжити встановлення Magento.

Відкрийте файл віртуального хоста Apache за замовчуванням за допомогою nano, використовуючи таку команду:

sudo nano /etc/apache2/sites-available/000-default.conf

Змініть корінь документа на /var/www/magento і додайте під ним наступний фрагмент коду.

 AllowOverride All ServerName example.com Псевдонім сервера www.example.com

Замініть example.com у ServerName та ServerAlias ​​із вашим доменом. Зміни у вашому 000-default.conf файл має виглядати приблизно так, як виділений текст, показаний нижче. Збережіть зміни, натиснувши Ctrl+O і вийдіть з редактора за допомогою Ctrl+X ключі.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/magento AllowOverride All ServerName example.com Псевдонім сервера www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log комбінований 

Далі нам потрібно включити мод Apache під назвою as mod_rewrite вимагає Magento. Він забезпечує гнучкий і потужний спосіб маніпулювання URL-адресами, тому увімкніть мод, запустивши:

sudo a2enmod переписати

Перезапустіть сервер Apache, щоб усі внесені зміни були застосовані до сервера:

sudo systemctl перезапустити apache2

Встановлення Magento

Нарешті ми можемо приступити до встановлення Magento, оскільки у нас є все, що потрібно для роботи Magento. Введіть IP-адресу вашого сервера Ubuntu 20.04 в рядку URL у бажаному браузері.

Натисніть «Погоджуюся та налаштуйте Magento», щоб продовжити встановлення Magento. Першим кроком інсталятора Magento Web є перевірка готовності, вона підтвердить, що всі вимоги Magento виконані. Натисніть «Почати перевірку готовності» і після завершення процесу натисніть «Далі».

Наступним кроком є ​​налаштування деталей та додавання бази даних для Magento. Ми вже створили користувача MySQL для Magento під назвою magentoser і базу даних під назвою пурпурний у наведеному вище розділі. Заповніть відповідні дані в цьому розділі, а саме ім’я користувача сервера баз даних, його пароль та ім’я бази даних, а потім натисніть «Далі», щоб продовжити.

Третій крок у налаштуваннях Magento — це веб-конфігурація. Замініть IP-адресу з введення «Адреса магазину» на своє доменне ім’я, якщо воно у вас є. Не забудьте поставити косу риску (/) після вашого доменного імені, інакше URL-адреса адміністратора стає недоступною.

Потім натисніть «Додаткові параметри» та позначте обидва параметри HTTPS, якщо ви хочете використовувати безпечне з’єднання для свого сайту Magento. Залиште решту налаштувань без змін і натисніть «Далі».

Примітка: Якщо ви позначите параметри HTTPS, вам потрібно буде отримати для нього сертифікати SSL. Ми розглянемо, як отримати сертифікати SSL, у наступному розділі цього посібника.

У налаштуваннях "Налаштувати свій магазин" вам просто потрібно буде змінити часовий пояс, валюту за замовчуванням, яка використовується в магазині, і мову магазину за замовчуванням відповідно до ваших потреб. Подивіться навколо цих параметрів, налаштуйте їх, якщо потрібно, інакше натисніть «Далі», щоб продовжити.

На п’ятому кроці вам потрібно буде створити обліковий запис адміністратора для інформаційної панелі адміністратора Magento. Введіть нове ім’я користувача для вашого адміністратора та введіть адресу електронної пошти, надану вашим постачальником доменного імені. Створіть надійний пароль для облікового запису адміністратора, а потім натисніть «Далі», коли закінчите.

Останній і останній крок – це просто натиснути кнопку «Встановити», щоб підтвердити налаштування та почати процес встановлення. Після завершення інсталяції програма налаштування Magento покаже вам підсумок та деякі важливі деталі про ваш сайт Magento.

Запишіть ці деталі в безпечне місце, наприклад, в автономному паперовому записі або в захищеній базі даних. Адреса адміністратора Magento і ключ шифрування ніколи не повинні надаватися публічно. Ключ шифрування використовується для шифрування бази даних Magento, щоб дані користувача були в безпеці, навіть якщо є витік даних.

Створіть сертифікат SSL для вашого сайту Magento

Сайт Magento розгорнуто, і його можна отримати відразу після завершення встановлення. Але якщо ви хочете обслуговувати веб-трафік через HTTPS, вам потрібно налаштувати сертифікат SSL для вашого домену.

Letsencrypt — це некомерційний центр сертифікації, який безкоштовно надає сертифікати TLS. Ми будемо використовувати пакет під назвою certbot який допомагає отримати сертифікат і автоматично налаштувати віртуальний хост Apache. Виконайте цю команду в терміналі, щоб встановити certbot:

sudo apt встановити certbot python3-certbot-apache

Щоб отримати сертифікат від Letsencrypt та налаштувати віртуальний хост Apache, виконайте таку команду:

sudo certbot --apache

Certbot розпочне процес отримання сертифікатів від Letsencrypt, надасть вашу адресу електронної пошти, коли буде запропоновано, а потім натисне клавішу Enter. Далі введіть А погодитися з умовами обслуговування Letsencrypt. Вас запитають, чи хочете ви поділитися своєю електронною адресою з EFF, введіть Ю або Н залежно від вашого вибору.

Далі вам буде надано список доменних імен, для яких ви хочете активувати HTTPS. Введіть відповідне число, що відповідає вашому домену, і натисніть Enter.

Після вибору імені домену вас запитають, чи хочете ви перенаправляти HTTP-трафік на HTTPS, введіть 2 і натисніть Enter. Тепер Certbot автоматично налаштує віртуальний хост Apache для домену example.com.

Пакет Certbot поставляється з cronjob, який автоматично оновлює сертифікати сервера до закінчення терміну їх дії.Перевірте, чи працює автоматичне оновлення, запустивши:

sudo certbot renew --dry-run

Наведений вище результат означає, що cronjob автоматичного оновлення працює належним чином. Щоб переконатися, що Certbot працює, відкрийте браузер і перейдіть до свого домену //example.com.

Аналогічно, ви можете отримати доступ до сторінки входу адміністратора за допомогою //example.com/admin_SecretString, ця URL-адреса була в кінці встановлення Magento.

Тепер ви успішно встановили Magento на сервер Ubuntu 20.04 LTS, і тепер ви можете почати налаштовувати свій магазин відповідно до ваших потреб. Щоб дізнатися більше про Magento та розробку магазину, перейдіть на сторінку Magento Docs.