Kako namestiti Magento 2 na Ubuntu 20.04 LTS

Izčrpen vodnik o tem, kako nastaviti in uvesti trgovino Magento2 na strežnik Ubuntu 20.04.

Magento je priljubljena platforma za e-trgovino, izdelana in napisana v PHP, uporablja pa jo številna mala podjetja za prodajo izdelkov in ustvarjanje spletne prisotnosti. Omogoča vam, da ustvarite popolno spletno trgovino s funkcijami, kot so upravljanje zalog, katalogi izdelkov, pošiljanje, izdajanje računov in še veliko več.

Če želite zgraditi elegantno in poslovno platformo za nakupovanje za svoje podjetje, bi moral biti Magento odlično izhodišče. V tem priročniku si bomo torej ogledali, kako na strežniku Ubuntu 20.04 nastaviti izdajo Magento Community Edition 2.3 s skladom LAMP.

Predpogoji

Potrebovali boste strežnik Ubuntu 20.04 LTS in prijavljeni kot a sudo omogočenega uporabnika. Potrebovali boste tudi ime domene, ki kaže na vaš IP strežnika Ubuntu 20.04. bomo uporabili example.com kjer koli je potrebno ime domene, ga zamenjajte s svojo domeno. Preden začnemo, posodobite seznam paketov in nato nadgradite pakete na vašem strežniku Ubuntu 20.04.

sudo apt posodobitev && sudo apt nadgradnja

Namestite spletni strežnik Apache

Magento za delovanje potrebuje spletni strežnik, v tem priročniku smo se odločili za uporabo aplikacije Magento prek sklada LAMP (Linux, Apache, MySQL, PHP). Tako bomo namestili vse pakete, sestavljene iz sklada LAMP.

Spletni strežnik Apache je eden najbolj priljubljenih spletnih strežnikov na internetu, ki ima skoraj 37,2 % celotnega tržnega deleža spletnih strežnikov. Lahko se odločite tudi za namestitev Magento prek sklada LEMP, ki uporablja spletni strežnik Nginx namesto apache. Toda v tem priročniku bomo naš strežnik Megento namestili s pomočjo Apache.

Če želite namestiti spletni strežnik Apache, zaženite spodnji ukaz:

sudo apt namestite apache2

Vnesite uporabniško geslo in pritisnite Y če ste pozvani. Ko je namestitev končana, moramo konfigurirati Ubuntujev nezapleteni požarni zid (UFW), da omogoči promet na vratih 80 & 443.

UFW ima vnaprej konfigurirane profile, ki jih je mogoče preklopiti, da aplikaciji omogočite dostop do vrat na vašem strežniku Ubuntu 20.04. Ko ste torej namestili spletni strežnik Apache, so bili na seznam aplikacij UFW dodani profili UFW, imenovani »Apache«, »Apache Full« in »Apache Secure«. Dovolite, da spletni strežnik Apache služi na vratih 80 & 443 s tekom:

sudo ufw dovoli 'Apache Full'

Zdaj moramo samo omogočiti UFW, toda preden to storimo, se prepričajte, da ste dovolili vrata 22 (SSH). Če ne spremenite pravil SSH UFW, boste morda izgubili dostop do strežnika Ubuntu 20.04.

sudo ufw dovoli 'OpenSSH'

Končno omogočite požarni zid UFW tako, da zaženete:

sudo ufw omogoči

Pritisnite Y če prejmete poziv, ki pravi, da lahko ukaz prekine povezave SSH, saj smo že dodali pravilo, ki dovoljuje SSH prek njega. Zdaj lahko dostopate do spletnega strežnika apache prek brskalnika, vnesite naslov IP vašega strežnika Ubuntu 20.04 v URL vrstico in pritisnite enter.

privzeta stran apache2 ubuntu

Namestite strežnik MySQL

Za zagon Magenta boste potrebovali tudi strežnik baze podatkov, saj je tam shranjena vsa vsebina trgovine Magento. Namestili bomo strežnik MySQL in ustvarili uporabnika z imenom magentoser in bazo podatkov, ki se imenuje magento za Magento.

Paket MySQL se imenuje kot mysql-strežnik v skladiščih Ubuntu ga namestite tako, da zaženete:

sudo apt install mysql-server

Nato moramo pravilno konfigurirati varnostne nastavitve MySQL. Na srečo je paket MySQL opremljen z varnostnim skriptom, ki olajša konfiguriranje strežnika MySQL. Torej, izvedite ta skript tako, da zaženete naslednji ukaz:

sudo mysql_secure_installation

Pozvani boste z več vprašanji, to so optimalne nastavitve za strežnik MySQL:

  • Ali želite nastaviti komponento VALIDATE PASSWORD?[y/n]: Enter Y
  • Obstajajo tri stopnje politike preverjanja gesla.
    • Vnesite 0 = NIZKO, 1 = SREDNJE in 2 = MOČNO: Vnesite 2
  • Tukaj nastavite geslo za root.
    • Novo geslo: Vnesite geslo za root uporabnika MySQL.
    • Ponovno vnesite novo geslo: Ponovite izbrano geslo.
  • Želite odstraniti anonimne uporabnike? [y/n]: Vnesite Y
  • Ali želite na daljavo onemogočiti root prijavo? [y/n] : Vnesite Y
  • Odstraniti testno bazo podatkov in dostop do nje? [y/n] : Vnesite Y
  • Ponovno naložite tabele privilegijev zdaj? [y/n] : Vnesite Y

Nato, da preverite in potrdite, da je strežnik MySQL nameščen in deluje pravilno, se prijavite v strežnik MySQL kot root uporabnik z:

sudo mysql

Vpišite sudo uporabniško geslo, ko vas to pozove in pritisnete enter. Korenski uporabnik MySQL uporablja unix_socket za preverjanje pristnosti prijave. To v bistvu pomeni, da morate biti a sudo uporabnik, da se prijavi v strežnik MySQL kot njegov root uporabnik.

Ustvarite novo bazo podatkov in uporabnika za Magento

Zdaj lahko ustvarimo uporabnika MySQL za Magento in če ste sledili vsakemu koraku tega priročnika, morate imeti odprto konzolo MySQL. Ustvarite bazo podatkov z imenom magento tako, da v ukazno mizo MySQL vnesete naslednjo poizvedbo:

USTVARI BAZA PODATKOV magento;

Če želite ustvariti novega uporabnika MySQL, se imenuje magentoser, zaženite to poizvedbo v konzoli:

USTVARJAJ UPORABNIKA 'magentouser'@'%', KI JE Z mysql_native_password IDENTIFICIRAN Z 'password';

Opomba: Zamenjajte geslo v poizvedbi z močnim geslom po vaši izbiri.

Nato dodelite novo magentoser popoln dostop do magento baza podatkov:

ODOBRITE VSE NA magento.* NA 'magentouser'@'%' Z MOŽNOSTJO DODOVI;

Postaviti moramo log_bin_trust_function_creators parameter kot 1, saj je onemogočen v najnovejši različici MySQL in ne da bi ga omogočil, Magento med namestitvijo vrže nekaj napak. Če želite to narediti, zaženite naslednjo poizvedbo:

NASTAVI GLOBALNO log_bin_trust_function_creators=1;

Končno znova naložite privilegije in nastavitve baze podatkov, ki smo jih spremenili, in zapustite ukazno mizo s temi poizvedbami:

PRIVILEGIJI IZPOLNJEVANJA; IZHOD;

Namestite PHP in potrebne razširitve

Magento za delovanje potrebuje PHP in nekaj razširitev PHP. V času pisanja tega članka je bila različica izdaje skupnosti Magento 2.3 ne deluje z najnovejšo različico PHP 7.4 zato moramo namestiti različico PHP 7.3.

Dodati moramo PHP PPA drugega proizvajalca, da lahko namestimo različico PHP 7.3 saj imajo repozitorij Ubuntu samo najnovejše 7.4 paketov. Dodajte PPA in posodobite seznam paketov z izvajanjem teh ukazov:

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

Nato namestite PHP 7.3 in vse PHP module, ki jih Magento potrebuje, tako da zaženete naslednji ukaz:

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

Ko je PHP 7.3 nameščen, moramo za pravilno delovanje konfigurirati nekaj osnovnih nastavitev, ki jih priporoča Magento. Zaženite ta ukaz, da odprete konfiguracijsko datoteko razširitve FPM z uporabo nano

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

Tukaj je nekaj nastavitev, priporočenih za večino spletnih mest Magento.

file_uploads = Na dopusti_url_fopen = Na short_open_tag = Na memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Spremembe shranite s pritiskom na Ctrl+O nato zapustite urejevalnik nano s pritiskom na Ctrl+X. Zdaj imamo PHP in vse potrebne razširitve, zato lahko nadaljujemo s pridobivanjem Magenta.

Namesti Composer

Composer je upravitelj odvisnosti PHP, ki olajša namestitev okvirjev in knjižnic PHP. Za prenos in namestitev Magenta na naš strežnik Ubuntu 20.04 potrebujemo Composer.

Composer potrebuje paket z imenom odprite zadrgo če želite ekstrahirati prenesene knjižnice in okvire, ga namestite tako, da zaženete:

sudo apt namestite razpakirajte

Nato namestite composer na ravni celotnega sistema tako, da zaženete ta ukaz:

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

Zgornji ukaz bi moral namestiti upravitelja odvisnosti Composer na strežnik Ubuntu 20.04. Preverite, ali je Composer pravilno nameščen, tako da zaženete:

skladatelj
 IZHOD:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Skladateljska različica 1.10.8 2020-06- 24 21:23:30 Uporaba: ukaz [možnosti] [argumenti] 

Prenesite in namestite Magento

Zdaj lahko nadaljujemo s prenosom in namestitvijo Magenta, saj smo namestili in konfigurirali vse potrebne pakete, ki jih zahteva Magento.

Ustvarjanje računa Magento

Če želite prenesti Magento na vaš strežnik Ubuntu 20.04, boste potrebovali dostopni ključ za Magento 2. Za pridobitev tega ključa za dostop potrebujete račun Magento. Če niste registrirani in nimate Magento računa, pojdite na to stran in kliknite »Registracija«.

Ko končate z ustvarjanjem računa Magento, boste lahko ustvarili nov ključ za dostop, da boste lahko na svoj računalnik naložili Magento 2 s pomočjo skladatelja. Na tej strani si lahko ogledate vse svoje dostopne ključe Magento. Če pod zavihkom Magento 2 ni ključa za dostop, kliknite gumb »Ustvari nov ključ za dostop« in mu dajte ime, nato pritisnite »V redu«.

Ti ključi so vaše poverilnice, ki se uporabljajo za prenos Magento 2 iz skladišča Magento prek Composerja. Te ključe bomo uporabili, ko bomo naložili Magento, vendar bomo pred tem nastavili lastništvo imenika in dovoljenja.

Lastništvo in konfiguracija dovoljenj pred namestitvijo

Dovoljenja za datoteke lahko povečajo ali porušijo varnost katerega koli spletnega mesta, zato je potrebno pravilno nastaviti lastništvo in dovoljenje korenskega dokumenta strežnika Apache.

Privzeti lastnik datoteke /var/www/ imenik je root uporabnik, vendar moramo dostopati do datotek v tem imeniku in jih spreminjati. Poleg tega spletni strežnik potrebuje tudi dostop do korena dokumenta za zapisovanje in spreminjanje vsebine mesta Magento.

Za rešitev te težave bomo dodali trenutnega uporabnika v www-podatki skupina, za to zaženite:

sudo usermod -a -G www-data $USER

The -a-G možnosti so pomembne, ko dodajajo www-podatki kot sekundarna skupina uporabniškega računa, ki ohranja uporabnikovo primarno skupino. Ko dodate uporabnika v skupino spletnih strežnikov, spremenite lastnika /var/www/ in njegove podimenike s tem ukazom:

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

Zdaj, ko smo nastavili dovoljenja za prednamestitev za Magento, lahko nadaljujemo s prenosom v koren dokumenta spletnega strežnika.

Prenos programa Magento

Na tej točki bi morali imeti račun Magento s pravilno nastavljenimi dostopnimi ključi in dovoljenji za prednamestitev. Zato bomo uporabili Composer za prenos Magenta v koren dokumenta Apache in ga nato namestili.

Spremenite trenutni imenik v /var/www/ tako da terminal kaže proti njemu tako, da zažene:

cd /var/www/

Zaženite spodnji ukaz, da ustvarite nov projekt z uporabo Composerja, znanega kot magento.

skladatelj create-project --repository=//repo.magento.com/magento/project-community-edition magento

Po uporabi zgornjega ukaza boste morali vnesti uporabniško ime in geslo. Tukaj bomo uporabili ključe za dostop, ki smo jih ustvarili. Kopirajte javni ključ in ga prilepite kot uporabniško ime, nato pa podobno kopirajte svoj zasebni ključ in ga prilepite v terminal kot geslo. Nato pritisnite Y da shranite poverilnice za nadaljnjo uporabo.

 Izhod:  Ustvarjanje projekta "magento/project-community-edition" na "./magento" Opozorilo s strani repo.magento.com: Niste posredovali svojih ključev za preverjanje pristnosti Magento. Za navodila obiščite //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Potrebna je avtentikacija (repo.magento.com): Uporabniško ime: e8b6120dce14c3d982a85525264897c4 Cr Geslo: Ali želite shraniti geslo za repo.magento.com v /home/ath/.config/composer/auth.json ? [Yn] Y

Ko se Magento in vse njegove odvisnosti prenesejo prek Composerja, moramo nastaviti lastništvo in dovoljenje za novi imenik projekta magento in njegove datoteke. Spremenite imenik v korenski koren projekta Magento z:

cd /var/www/magento/

Nato spremenite lastnika skupine imenika projekta Magento in njegovih podimenikov tako, da zaženete:

najdi var ustvarjen prodajalec pub/statična pub/medijska aplikacija/etc -type f -exec chmod g+w {} + && najdi var ustvarjen vendor pub/statična pub/medijska aplikacija/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Ta ukaz bo dal skupini spletnih strežnikov (www-podatki) dovoljenja za pisanje v imenike prodajalca, pub/static, pub/media & app/etc in datoteke v njih. Poleg tega bo naredil bin/magento izvedljivo datoteko, tako da jo lahko zaženemo in namestimo Magento v naš sistem.

Konfiguriranje Apache za Magento

Magento bomo namestili prek GUI, saj je v tem primeru bolj intuitivna kot namestitev CLI. Zato moramo ustvariti virtualni gostitelj za spletni strežnik Apache, preden lahko nadaljujemo z namestitvijo Magento.

Odprite privzeto datoteko navideznega gostitelja Apache z nano z naslednjim ukazom:

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

Spremenite koren dokumenta v /var/www/magento in pod njo dodajte naslednji delček kode.

 AllowOverride All ServerName example.com Vzdevek strežnika www.example.com

Zamenjajte example.com v ServerName in ServerAlias ​​z imenom vaše domene. Spremembe v vašem 000-default.conf datoteka bi morala izgledati podobno kot označeno besedilo, prikazano spodaj. Spremembe shranite s pritiskom na Ctrl+O in zapustite urejevalnik z uporabo Ctrl+X ključi.

 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 združen 

Nato moramo omogočiti mod Apache, imenovan kot mod_rewrite zahteva Magento. Zagotavlja prilagodljiv in zmogljiv način za manipulacijo URL-jev, zato omogočite mod tako, da zaženete:

prepis sudo a2enmod

Znova zaženite strežnik Apache, tako da se vse spremembe, ki smo jih naredili, uporabijo za strežnik:

sudo systemctl znova zaženi apache2

Namestitev Magenta

Končno lahko nadaljujemo z namestitvijo Magenta, saj imamo vse, kar potrebuje Magento za delovanje. Vnesite naslov IP vašega strežnika Ubuntu 20.04 v URL vrstico vašega želenega brskalnika.

Kliknite »Strinjam se in nastavite Magento«, da nadaljujete z namestitvijo Magenta. Prvi korak namestitvenega programa Magento Web je preverjanje pripravljenosti, ki bo preverilo, ali so izpolnjene vse zahteve Magento. Kliknite »Začni preverjanje pripravljenosti« in po končanem postopku pritisnite »Naprej«.

Naslednji korak je nastavitev podrobnosti in dodajanje baze podatkov za Magento. Za Magento smo že ustvarili uporabnika MySQL z imenom magentoser in bazo podatkov, ki se imenuje magento v zgornjem razdelku. V tem razdelku izpolnite ustrezne podrobnosti, in sicer uporabniško ime strežnika baz podatkov, njegovo geslo in ime baze podatkov, nato pa pritisnite »Naprej«, da nadaljujete.

Tretji korak v nastavitvi Magento je spletna konfiguracija. Zamenjajte naslov IP iz vnosa »Naslov trgovine« z imenom vaše domene, če ga imate. Ne pozabite postaviti poševnice naprej (/) za imenom vaše domene, kot sicer, postane URL skrbniškega naslova nedostopen.

Nato kliknite Napredne možnosti in označite obe možnosti HTTPS, če želite uporabiti varno povezavo za svoje spletno mesto Magento. Ostale nastavitve ohranite takšne, kot so, in pritisnite naprej.

Opomba: Če označite možnosti HTTPS, boste morali za to pridobiti potrdila SSL. Kako pridobiti potrdila SSL, bomo pogledali v naslednjem razdelku te vadnice.

V nastavitvah »Prilagodi svojo trgovino« glede na vaše potrebe boste morali spremeniti le časovni pas, privzeto valuto, ki se uporablja v trgovini, in privzeti jezik trgovine. Oglejte si te nastavitve in jih po potrebi konfigurirajte, sicer kliknite Naprej za nadaljevanje.

V petem koraku boste morali ustvariti skrbniški račun za nadzorno ploščo Magento Admin. Vnesite novo uporabniško ime za skrbnika in vnesite e-poštni naslov, ki vam ga je zagotovil ponudnik imena domene. Ustvarite močno geslo za skrbniški račun in nato pritisnite Naprej, ko končate.

Zadnji in zadnji korak je, da kliknete gumb »Namesti«, da potrdite nastavitve in začnete postopek namestitve. Ko je namestitev končana, vam bo namestitev Magento pokazala povzetek in nekaj pomembnih podrobnosti o vašem mestu Magento.

Te podrobnosti si zapišite na varno mesto, na primer v papirni zapis brez povezave ali v varno bazo podatkov. Skrbniškega naslova Magento in šifrirnega ključa ne smete nikoli javno deliti. Šifrirni ključ se uporablja za šifriranje baze podatkov Magento, da bi bili uporabniški podatki varni, tudi če pride do puščanja podatkov.

Ustvarite SSL certifikat za vaše spletno mesto Magento

Spletno mesto Magento je nameščeno in do njega lahko dostopate takoj po končani namestitvi. Če pa želite služiti spletni promet prek HTTPS, boste morali za svojo domeno nastaviti potrdilo SSL.

Letsencrypt je neprofitna potrdila, ki brezplačno zagotavlja potrdila TLS. Uporabili bomo paket z imenom certbot ki pomaga pri pridobivanju potrdila in avtomatski konfiguraciji virtualnega gostitelja Apache. Zaženite ta ukaz v terminalu, da namestite certbot:

sudo apt install certbot python3-certbot-apache

Če želite pridobiti potrdilo od Letsencrypt in konfigurirati navideznega gostitelja Apache, zaženite naslednji ukaz:

sudo certbot --apache

Certbot bo začel postopek pridobivanja potrdil od Letsencrypt, navedel svoj e-poštni naslov, ko bo pozvan, in nato pritisnil tipko enter. Nato vnesite A da se strinjate s pogoji storitve Letsencrypt. Vprašani boste, ali želite svoj e-poštni naslov deliti z EFF, vnesite Y oz N odvisno od vaše izbire.

Nato boste prejeli seznam imen domen, za katere želite aktivirati HTTPS. Vnesite ustrezno številko, ki ustreza imenu vaše domene, in pritisnite Enter.

Ko izberete ime svoje domene, boste pozvani, ali želite promet HTTP preusmeriti na HTTPS, vnesite 2 in pritisnite enter. Certbot bo zdaj samodejno konfiguriral navideznega gostitelja Apache za domeno example.com.

Paket Certbot je opremljen s cronjob, ki samodejno obnovi potrdila vašega strežnika, preden potečejo.Preverite, ali samodejna obnova deluje, tako da zaženete:

sudo certbot obnoviti --dry-run

Zgornji rezultat pomeni, da cronjob za samodejno obnavljanje deluje pravilno. Če želite potrditi, da je Certbot deloval, odprite brskalnik in obiščite svojo domeno //example.com.

Podobno lahko dostopate do strani za prijavo skrbnika z uporabo //example.com/admin_SecretString, je bil ta URL na koncu namestitve Magenta.

Zdaj ste uspešno namestili Magento na strežnik Ubuntu 20.04 LTS in zdaj lahko začnete prilagajati svojo trgovino glede na svoje potrebe. Če želite izvedeti več o Magentu in izvedeti več o razvoju trgovine, pojdite na stran z dokumenti Magento.