Как да инсталирате Magento 2 на Ubuntu 20.04 LTS

Изчерпателно ръководство за това как да настроите и разположите магазин на Magento2 на сървър на Ubuntu 20.04.

Magento е популярна платформа за електронна търговия, изградена и написана на PHP, използва се от много малки предприятия за продажба на продукти и създаване на онлайн присъствие. Позволява ви да създадете пълноценен онлайн магазин с функции като управление на инвентара, продуктови каталози, доставка, фактуриране и много други.

Ако искате да изградите елегантна платформа за пазаруване от корпоративен клас за вашия бизнес, Magento трябва да бъде чудесна отправна точка. Така че в това ръководство ще разгледаме как да настроим Magento community edition версия 2.3 със стек LAMP на сървър на Ubuntu 20.04.

Предпоставки

Ще ви трябва Ubuntu 20.04 LTS сървър и да сте влезли като a sudo активиран потребител. Ще ви е необходимо и име на домейн, сочещо към вашия IP сървър на Ubuntu 20.04. Ще използваме example.com навсякъде, където се изисква име на домейн, заменете го с вашия домейн. Преди да започнем, актуализирайте списъка с пакети и след това надстройте пакетите на вашия сървър на Ubuntu 20.04.

sudo apt update && sudo apt надстройка

Инсталирайте уеб сървъра на Apache

Magento изисква уеб сървър, за да функционира, в това ръководство избрахме да използваме стартиране на приложението Magento през стека LAMP (Linux, Apache, MySQL, PHP). Така че ще инсталираме всички пакети, състоящи се от LAMP стек.

Уеб сървърът Apache е един от най-популярните уеб сървъри в интернет с почти 37,2% от общия пазарен дял на уеб сървъри. Можете също да изберете да инсталирате Magento върху стека LEMP, който използва уеб сървър на Nginx вместо apache. Но в това ръководство ще разположим нашия Megento сървър с помощта на Apache.

За да инсталирате уеб сървъра на Apache, изпълнете командата по-долу:

sudo apt инсталирайте apache2

Въведете вашата потребителска парола и натиснете Й ако бъдете подканени. Когато инсталацията приключи, трябва да конфигурираме неусложнената защитна стена (UFW) на Ubuntu, за да позволим трафика на порта 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]: Въведете Й
  • Има три нива на политика за валидиране на парола.
    • Моля, въведете 0 = НИСКА, 1 = СРЕДНА и 2 = СИЛНА: Въведете 2
  • Моля, задайте паролата за root тук.
    • Нова парола: Въведете парола за MySQL root потребител.
    • Въведете отново нова парола: Повторете избраната парола.
  • Премахване на анонимни потребители? [y/n]: Въведете Й
  • Да се ​​забрани ли дистанционното влизане в root? [y/n] : Въведете Й
  • Премахване на тестовата база данни и достъпа до нея? [y/n] : Въведете Й
  • Презареждане на таблиците с привилегии сега? [y/n] : Въведете Й

След това, за да проверите и потвърдите, че MySQL сървърът е инсталиран и работи правилно, влезте в MySQL сървъра като root потребител чрез:

sudo mysql

Въведете своя sudo потребителска парола, когато бъдете подканени да го направите и натиснете Enter. Потребителят на MySQL root използва unix_socket за удостоверяване на входа. Това по същество означава, че трябва да бъдете sudo потребител да влезе в MySQL сървъра като негов root потребител.

Създайте нова база данни и потребител за Magento

Сега можем да създадем потребител на MySQL за Magento и ако сте следвали всяка стъпка от това ръководство, трябва да имате отворена конзолата на MySQL. Създайте база данни, наречена магенто като въведете следната заявка в MySQL конзолата:

СЪЗДАВАНЕ НА БАЗА ДАННИ magento;

За да създадете нов потребител на MySQL, наречен magentoser, изпълнете тази заявка в конзолата:

СЪЗДАВАТЕ ПОТРЕБИТЕЛ 'magentouser'@'%' ИДЕНТИФИЦИРАН С mysql_native_password ОТ 'password';

Забележка: Заменете парола в заявката със силна парола по ваш избор.

След това дайте новото magentoser пълен достъп до магенто база данни:

ПРЕДОСТАВЯТЕ ВСИЧКИ НА magento.* НА 'magentouser'@'%' С ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ;

Трябва да зададем 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 актуализация

След това инсталирайте PHP 7.3 и всички PHP модули, които Magento изисква, като изпълните следната команда:

sudo apt install php7.3 php7.3-общ 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 = На allow_url_fopen = На short_open_tag = На memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Запазете промените, като натиснете Ctrl+O след това излезте от нано редактора, като натиснете Ctrl+X. Вече имаме PHP и всички необходими разширения и така можем да преминем към получаване на Magento.

Инсталирайте Composer

Composer е мениджър на зависимост на PHP, който улеснява инсталирането на PHP рамки и библиотеки. Нуждаем се от Composer, за да изтеглим и инсталираме Magento на нашия сървър Ubuntu 20.04.

Composer изисква пакет, наречен разархивирайте за да извлечете изтеглените библиотеки и рамки, инсталирайте го, като изпълните:

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 няма ключ за достъп, щракнете върху бутона „Създаване на нов ключ за достъп“ и му дайте име, след което натиснете „OK“.

Тези ключове са вашите идентификационни данни, използвани за изтегляне на Magento 2 от хранилището на Magento чрез Composer. Ще използваме тези ключове, когато изтегляме Magento, но преди да го направим, ще настроим собствеността на директорията и разрешенията.

Конфигурация на собственост и разрешение преди инсталиране

Разрешенията за файлове могат да направят или да нарушат сигурността на всеки уебсайт, така че е необходимо правилно да зададете собствеността и разрешението на корена на документа на Apache сървъра.

Собственикът по подразбиране на /var/www/ директорията е root потребител, но трябва да получим достъп и да променим файловете в тази директория. Освен това уеб сървърът също се нуждае от достъп до корена на документа, за да записва обратно и да променя съдържанието на сайта на Magento.

Така че, за да разрешим този проблем, ще добавим текущия потребител към www-данни група, за да направите това, изпълнете:

sudo usermod -a -G www-данни $USER

В опциите са важни, тъй като добавят www-данни като вторична група към потребителския акаунт, която запазва основната група на потребителя. След като добавите потребителя към групата на уеб сървърите, променете собственика на /var/www/ и неговите поддиректории с помощта на тази команда:

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

Сега, след като сме настроили разрешения за предварителна инсталация за Magento, можем да преминем към изтеглянето му в корена на документа на уеб сървъра.

Изтегляне на Magento

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

Променете текущата директория на /var/www/ така че терминалът сочи към него, като изпълни:

CD /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 cr Парола: Искате ли да съхраните за repo.magento.com в /home/ath/.config/composer/auth.json ? [Yn] Й

След като Magento и всички негови зависимости бъдат изтеглени чрез Composer, трябва да зададем собствеността и разрешението за новата директория на проекта на magento и нейните файлове. Променете директорията към корен на проекта Magento чрез:

CD /var/www/magento/

След това променете собственика на групата на директорията на проекта Magento и нейните поддиректории, като изпълните:

find var, генериран от доставчик, pub/static pub/media app/etc -type f -exec chmod g+w {} + && намери var, генериран vendor 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 чрез GUI, тъй като в този случай е по-интуитивен от 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 ServerAlias ​​www.example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log комбиниран 

След това трябва да активираме мод Apache, наречен като 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. Запазете останалите настройки така, както са и натиснете Next.

Забележка: Ако отметнете опциите за HTTPS, ще трябва да получите SSL сертификати за него. Ще разгледаме как да получите SSL сертификати в следващия раздел на този урок.

Под настройките „Персонализиране на вашия магазин“ просто ще трябва да промените часовата зона, валутата по подразбиране, използвана в магазина, и езика по подразбиране на магазина според вашите нужди. Разгледайте тези настройки, конфигурирайте ги, ако е необходимо, в противен случай щракнете върху Напред, за да продължите.

В петата стъпка ще трябва да създадете администраторски акаунт за вашето табло за управление на Magento Admin. Въведете ново потребителско име за вашия администратор и въведете имейл адрес, предоставен от вашия доставчик на име на домейн. Създайте силна парола за администраторския акаунт и след това натиснете следващия, когато сте готови.

Последната и последна стъпка е просто да кликнете върху бутона „Инсталиране“, за да потвърдите настройките и да започнете процеса на инсталиране. Когато инсталацията приключи, настройката на 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, ще предостави вашия имейл адрес, когато бъде подканен и след това ще натиснете клавиша за въвеждане. След това напишете А да се съгласите с условията на услугата 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.