Sådan installeres Magento 2 på Ubuntu 20.04 LTS

En omfattende guide til, hvordan du opsætter og implementerer Magento2-butik på en Ubuntu 20.04-server.

Magento er en populær e-handelsplatform bygget og skrevet i PHP, den bruges af mange små virksomheder til at sælge produkter og skabe en online tilstedeværelse. Det giver dig mulighed for at skabe en fuldgyldig onlinebutik med funktioner som lagerstyring, produktkataloger, forsendelse, fakturering og meget mere.

Hvis du ønsker at bygge en slank shoppingplatform i virksomhedskvalitet til din virksomhed, bør Magento være et godt udgangspunkt. Så i denne guide vil vi se på, hvordan man opsætter Magento community edition version 2.3 med LAMP-stack på en Ubuntu 20.04-server.

Forudsætninger

Du skal bruge en Ubuntu 20.04 LTS-server og logget ind som en sudo aktiveret bruger. Du skal også bruge et domænenavn, der peger på din Ubuntu 20.04-server-IP. Vi vil bruge eksempel.com hvor end et domænenavn er påkrævet, skal du erstatte det med dit domæne. Før vi begynder, skal du opdatere pakkelisten og derefter opgradere pakkerne på din Ubuntu 20.04-server.

sudo apt opdatering && sudo apt opgradering

Installer Apache Web Server

Magento kræver en webserver for at fungere, i denne guide har vi valgt at bruge køre Magento applikationen over LAMP (Linux, Apache, MySQL, PHP) stakken. Så vi skal installere alle pakkerne, der består af LAMP-stak.

Apache webserver er en af ​​de mest populære webservere på internettet med næsten 37,2% af den samlede webservermarkedsandel. Du kan også vælge at installere Magento over LEMP-stakken, som bruger Nginx-webserver i stedet for apache. Men i denne guide skal vi implementere vores Megento-server ved hjælp af Apache.

For at installere Apache-webserveren skal du køre kommandoen nedenfor:

sudo apt installer apache2

Indtast din brugeradgangskode og tryk Y hvis du bliver bedt om det. Når installationen er færdig, skal vi konfigurere Ubuntus ukomplicerede firewall (UFW) for at tillade trafikken på porten 80 & 443.

UFW kommer med prækonfigurerede profiler, som kan skiftes for at give applikationen adgang til portene på din Ubuntu 20.04-server. Så da du installerede Apache-webserver, blev UFW-profiler kaldet 'Apache', 'Apache Full' og 'Apache Secure' tilføjet til UFW-applisten. Tillad Apache-webserveren at tjene på port 80 & 443 ved at køre:

sudo ufw tillade 'Apache Full'

Nu skal vi bare aktivere UFW, men før vi gør det, sørg for at du har tilladt porten 22 (SSH). Hvis du ikke ændrer SSH UFW-regler, kan du blive låst ude af din Ubuntu 20.04-server.

sudo ufw tillade 'OpenSSH'

Aktiver endelig UFW-firewallen ved at køre:

sudo ufw aktivere

Trykke Y hvis du får en prompt, der siger, at kommandoen muligvis forstyrrer SSH-forbindelserne, da vi allerede har tilføjet en regel for at tillade SSH gennem den. Du kan nu få adgang til apache-webserveren gennem din browser, indtast IP-adressen på din Ubuntu 20.04-server i URL-linjen og tryk enter.

apache2 ubuntu standardside

Installer MySQL Server

Du skal også bruge en databaseserver for at køre Magento, da det er hvor alt Magento butiksindhold bliver gemt. Vi skal installere MySQL-serveren og oprette en bruger kaldet magentouser og en database kaldet magento til Magento.

MySQL-pakken kaldes som mysql-server i Ubuntu repositories, installer det ved at køre:

sudo apt installer mysql-server

Dernæst skal vi konfigurere MySQL-sikkerhedsindstillingerne korrekt. Heldigvis kommer MySQL-pakken med et sikkerhedsscript, der gør konfigurationen af ​​MySQL-serveren nemmere. Så kør dette script ved at køre følgende kommando:

sudo mysql_secure_installation

Du vil blive bedt om at stille flere spørgsmål, disse er de optimale indstillinger for MySQL-serveren:

  • Vil du konfigurere VALIDATE PASSWORD-komponenten?[y/n]: Indtast Y
  • Der er tre niveauer af adgangskodevalideringspolitik.
    • Indtast venligst 0 = LAV, 1 = MIDDEL og 2 = STÆRK: Indtast 2
  • Indstil venligst adgangskoden til root her.
    • Ny adgangskode: Indtast en adgangskode for MySQL root-bruger.
    • Indtast ny adgangskode igen: Gentag din valgte adgangskode.
  • Vil du fjerne anonyme brugere? [y/n]: Indtast Y
  • Vil du ikke tillade root-login eksternt? [y/n] : Indtast Y
  • Vil du fjerne testdatabasen og få adgang til den? [y/n] : Indtast Y
  • Genindlæse privilegietabeller nu? [y/n] : Indtast Y

For derefter at verificere og validere, at MySQL-serveren er installeret og fungerer korrekt, skal du logge ind på MySQL-serveren som root-bruger ved at:

sudo mysql

Indtast dit sudo brugeradgangskode, når du bliver bedt om det, og tryk på Enter. MySQL root-brugeren bruger unix_socket for at autentificere login. Hvad dette i bund og grund betyder er, at du skal være en sudo bruger til at logge ind på MySQL-serveren som sin root-bruger.

Opret en ny database og bruger til Magento

Vi kan nu oprette en MySQL-bruger til Magento, og hvis du har fulgt hvert trin i denne guide, skal du have MySQL-konsollen åben. Opret en database kaldet magento ved at indtaste følgende forespørgsel i MySQL-konsollen:

OPRET DATABASE magento;

For at oprette en ny MySQL bruger kaldet magentouser, kør denne forespørgsel i konsollen:

OPRET BRUGER 'magentouser'@'%' IDENTIFICERET MED mysql_native_password VED 'password';

Bemærk: Udskift adgangskode i forespørgslen med en stærk adgangskode efter eget valg.

Giv derefter den nye magentouser fuld adgang til magento database:

GIV ALLE PÅ magento.* TIL 'magentouser'@'%' MED TILDELINGSMULIGHED;

Vi skal indstille log_bin_trust_function_creators parameter som 1, da den er deaktiveret i den seneste version af MySQL og uden at aktivere den, kaster Magento et par fejl under installationen. For at gøre det skal du køre følgende forespørgsel:

SET GLOBAL log_bin_trust_function_creators=1;

Til sidst genindlæs de databaserettigheder og indstillinger, vi ændrede, og forlad konsollen ved at bruge disse forespørgsler:

SKYLLE PRIVILEGIER; AFSLUT;

Installer PHP og påkrævede udvidelser

Magento kræver PHP og få PHP-udvidelser for at fungere. På tidspunktet for skrivning af denne artikel, Magento-fællesskabsudgaven 2.3 virker ikke med den nyeste PHP-version 7.4 og derfor skal vi installere PHP-versionen 7.3.

Vi skal tilføje en tredjeparts PHP PPA, så vi kan installere PHP-versionen 7.3 da Ubuntu-lagrene kun har det nyeste 7.4 pakker. Tilføj PPA og opdater pakkelisten ved at køre disse kommandoer:

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

Installer derefter PHP 7.3 og alle de PHP-moduler, som Magento kræver, ved at køre følgende kommando:

sudo apt installer 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-sæbe libapache2-mod-php7.3

Efter PHP 7.3 er installeret, skal vi konfigurere nogle grundlæggende indstillinger, som anbefales af Magento for at fungere korrekt. Kør denne kommando for at åbne FPM-udvidelsens konfigurationsfil ved hjælp af nano

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

Her er nogle af de indstillinger, der anbefales til de fleste Magento-websteder.

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

Gem ændringerne ved at trykke på Ctrl+O forlad derefter nano-editoren ved at trykke på Ctrl+X. Vi har nu PHP og alle de nødvendige udvidelser, og så kan vi gå videre til at få Magento.

Installer Composer

Composer er en PHP afhængighedsmanager, der gør installation af PHP rammer og biblioteker nemmere. Vi har brug for Composer til at downloade og installere Magento på vores Ubuntu 20.04-server.

Composer kræver en pakke kaldet unzip for at udtrække de downloadede biblioteker og rammer, skal du installere det ved at køre:

sudo apt install unzip

Installer derefter composer på systemniveau ved at køre denne kommando:

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

Ovenstående kommando skal installere Composer dependency manager på Ubuntu 20.04-serveren. Bekræft, at Composer er installeret korrekt ved at køre:

komponist
 PRODUKTION:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Komponist version 1.10.8 2020-06- 24 21:23:30 Brug: kommando [indstillinger] [argumenter] 

Download og installer Magento

Vi kan nu gå videre til at downloade og installere Magento, da vi har installeret og konfigureret alle de nødvendige pakker, der kræves af Magento.

Oprettelse af en Magento-konto

For at downloade Magento på din Ubuntu 20.04-server skal du bruge en Magento 2-adgangsnøgle. For at få denne adgangsnøgle skal du have en Magento-konto. Hvis du ikke er registreret og ikke har en Magento-konto, skal du gå over til denne side og klikke på 'Tilmeld'.

Når du er færdig med at oprette en Magento-konto, vil du være i stand til at oprette en ny adgangsnøgle, så du kan downloade Magento 2 på din maskine ved hjælp af composer. Du kan se alle dine Magento-adgangsnøgler på denne side. Hvis der ikke er nogen adgangsnøgle under Magento 2-fanen, skal du klikke på knappen 'Opret en ny adgangsnøgle' ​​og giv den et navn, og tryk derefter på 'OK'.

Disse nøgler er dine legitimationsoplysninger, der bruges til at downloade Magento 2 fra Magento-lageret via Composer. Vi vil bruge disse nøgler, når vi downloader Magento, men før vi gør det, skal vi konfigurere mappeejerskab og tilladelser.

Ejerskab og tilladelseskonfiguration før installation

Filtilladelserne kan skabe eller ødelægge sikkerheden på ethvert websted, så det er nødvendigt at indstille ejerskabet og tilladelsen til dokumentroden på Apache-serveren korrekt.

Standardejeren af /var/www/ mappen er rodbrugeren, men vi skal have adgang til og ændre filerne under denne mappe. Derudover skal webserveren også have adgang til dokumentroden for at kunne skrive tilbage og ændre indholdet af Magento-webstedet.

Så for at løse dette problem vil vi tilføje den nuværende bruger til www-data gruppe, for at gøre det løb:

sudo usermod -a -G www-data $USER

Det -en-G muligheder er vigtige, da de tilføjer www-data som en sekundær gruppe til brugerkontoen, som bevarer brugerens primære gruppe. Efter at have tilføjet brugeren til webservergruppen, skal du ændre ejeren af /var/www/ og dets undermapper ved hjælp af denne kommando:

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

Nu hvor vi har konfigureret præinstallationstilladelser for Magento, kan vi gå videre til at downloade det i webserverens Document root.

Downloader Magento

Nu på dette tidspunkt bør du have en Magento-konto med adgangsnøgler og forudinstallationstilladelser sat korrekt op. Så vi vil bruge Composer til at downloade Magento til Apache-dokumentroden og derefter installere det.

Skift den aktuelle mappe til /var/www/ så terminalen peger mod den ved at køre:

cd /var/www/

Kør kommandoen nedenfor for at oprette et nyt projekt ved hjælp af Composer kendt som magento.

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

Du vil blive bedt om brugernavn og adgangskode, når du har brugt ovenstående kommando. De adgangsnøgler, vi har oprettet, skal bruges her. Kopier den offentlige nøgle og indsæt den som brugernavn og kopier derefter din private nøgle og indsæt den i terminalen som adgangskode. Tryk derefter på Y for at gemme legitimationsoplysningerne til fremtidig brug.

 Produktion:  Oprettelse af et "magento/project-community-edition"-projekt på "./magento" Advarsel fra repo.magento.com: Du har ikke givet dine Magento-godkendelsesnøgler. For instruktioner, besøg //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Godkendelse påkrævet (repo.magento.com): Brugernavn: e8b6120dce14c3d982a85525264897c4 Adgangskode: Vil du gemme legitimationsoplysninger for repo.magento.com i /home/ath/.config/composer/auth.json ? [Yn] Y

Efter Magento og alle dets afhængigheder er downloadet gennem Composer, skal vi indstille ejerskabet og tilladelsen til den nye magento-projektmappe og dens filer. Skift biblioteket til Magento-projektroden ved at:

cd /var/www/magento/

Skift derefter gruppeejeren af ​​Magento-projektbiblioteket og dets undermapper ved at køre:

find var genereret leverandør pub/statisk pub/media app/etc -type f -exec chmod g+w {} + && find var genereret leverandør pub/statisk pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Denne kommando vil give webservergruppen (www-data) tilladelser til at skrive til leverandøren, pub/static, pub/media & app/etc mapper og filer inde i dem. Derudover vil det gøre bin/magento fil eksekverbar, så vi kan køre den og installere Magento på vores system.

Konfiguration af Apache til Magento

Vi skal installere Magento gennem GUI, da det er mere intuitivt end CLI-installation i dette tilfælde. Derfor skal vi oprette en virtuel vært til Apache-webserveren, før vi kan fortsætte med Magento-installationen.

Åbn Apaches standard virtuelle værtsfil med nano ved hjælp af følgende kommando:

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

Skift dokumentroden til /var/www/magento og tilføj følgende kodestykke under det.

 TilladOverride All ServerName example.com ServerAlias ​​www.example.com

Udskift eksempel.com i ServerName og ServerAlias ​​med dit domænenavn. Ændringerne i din 000-default.conf filen skal ligne den fremhævede tekst vist nedenfor. Gem ændringerne ved at trykke på Ctrl+O og forlad editoren ved at bruge Ctrl+X nøgler.

 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 kombineret 

Dernæst skal vi aktivere en Apache-mod kaldet as mod_rewrite påkrævet af Magento. Det giver en fleksibel og kraftfuld måde at manipulere URL'er på, så aktiver mod'et ved at køre:

sudo a2enmod omskrivning

Genstart Apache-serveren, så eventuelle ændringer, vi har foretaget, anvendes på serveren:

sudo systemctl genstart apache2

Installation af Magento

Vi kan endelig fortsætte med Magento-installationen, da vi har alt, hvad der kræves af Magento for at fungere. Indtast IP-adressen på din Ubuntu 20.04-server i URL-linjen i din foretrukne browser.

Klik på 'Agree and Setup Magento' for at fortsætte med Magento-installationen. Magento Web-installationsprogrammets første trin er parathedstjek, det vil verificere, at alle Magento-kravene er opfyldt. Klik på 'Start Readiness Check' og efter processen er afsluttet, tryk på 'Next'.

Næste trin er at opsætte detaljerne og tilføje en database til Magento. Vi har allerede oprettet en MySQL-bruger til Magento kaldet magentouser og en database kaldet magento i ovenstående afsnit. Udfyld de relevante detaljer i dette afsnit, nemlig databaseserverens brugernavn, dets adgangskode og databasenavn, og tryk derefter på 'Næste' for at fortsætte.

Det tredje trin i Magento-opsætningen er webkonfiguration. Udskift IP-adressen fra 'Butiksadresse'-inputtet til dit domænenavn, hvis du har et. Glem ikke at sætte en skråstreg (/) efter dit domænenavn som ellers, bliver administratoradressens URL utilgængelig.

Klik derefter på Avancerede indstillinger og marker begge HTTPS-indstillingerne, hvis du vil bruge en sikker forbindelse til dit Magento-websted. Behold resten af ​​indstillingerne, som de er, og tryk på næste.

Bemærk: Hvis du markerer HTTPS-indstillingerne, skal du få SSL-certifikater til det. Vi vil se på, hvordan man får SSL-certifikater i næste afsnit af denne vejledning.

Under indstillingerne "Tilpas din butik" du skal blot ændre tidszonen, standardvalutaen, der bruges i butikken og butikkens standardsprog i henhold til dine behov. Se dig omkring disse indstillinger, og konfigurer dem, hvis det er nødvendigt, ellers klik på næste for at fortsætte.

I det femte trin skal du oprette en administratorkonto til dit Magento Admin-dashboard. Indtast et nyt brugernavn til din administrator, og indtast en e-mailadresse fra din domænenavnsudbyder. Opret en stærk adgangskode til administratorkontoen og tryk derefter på næste, når du er færdig.

Det sidste og sidste trin er bare at klikke på 'Installer'-knappen for at bekræfte indstillingerne og begynde installationsprocessen. Når installationen er færdig, viser Magento-opsætningen dig oversigten og nogle vigtige detaljer om dit Magento-websted.

Noter disse detaljer ned et sikkert sted, såsom en offline papirjournal eller i en sikker database. Magento-administratoradressen og krypteringsnøglen bør aldrig deles offentligt. Krypteringsnøglen bruges til at kryptere Magento-databasen, så brugerdataene er sikre, selvom der er et datalæk.

Opret SSL-certifikat til dit Magento-websted

Magento-webstedet er implementeret, og det kan tilgås lige efter installationen er fuldført. Men hvis du vil betjene webtrafik over HTTPS, skal du konfigurere SSL-certifikat for dit domæne.

Letsencrypt er en nonprofit-certifikatmyndighed, som leverer TLS-certifikater gratis. Vi skal bruge en pakke kaldet certbot som hjælper med at få certifikatet og konfigurere den virtuelle Apache-vært automatisk. Kør denne kommando i terminalen for at installere certbot:

sudo apt installer certbot python3-certbot-apache

For at få dit certifikat fra Letsencrypt og konfigurere den virtuelle Apache-vært skal du køre følgende kommando:

sudo certbot --apache

Certbot vil begynde processen med at hente certifikater fra Letsencrypt, angive din e-mailadresse, når du bliver bedt om det, og derefter trykke på Enter-tasten. Dernæst skal du skrive EN at acceptere servicevilkårene for Letsencrypt. Du bliver spurgt, om du vil dele din e-mailadresse med EFF, skriv ind Y eller N afhængig af dit valg.

Dernæst får du en liste over domænenavne, du ønsker at aktivere HTTPS for. Indtast det relevante nummer, der svarer til dit domænenavn, og tryk på Enter.

Når du har valgt dit domænenavn, bliver du spurgt, om du vil omdirigere HTTP-trafik til HTTPS, skriv 2 og tryk enter. Certbot vil nu automatisk konfigurere den virtuelle Apache-vært for domænet eksempel.com.

Certbot-pakken leveres med cronjob, der automatisk fornyer dine servercertifikater, før de udløber.Test om den automatiske fornyelse virker ved at køre:

sudo certbot forny --dry-run

Ovenstående output betyder, at cronjob til automatisk fornyelse fungerer korrekt. For at bekræfte, at Certbot virkede, skal du åbne din browser og besøge dit domæne //example.com.

På samme måde kan du få adgang til admin login-siden ved hjælp af //example.com/admin_SecretString, denne URL var i slutningen af ​​Magento-installationen.

Du har nu installeret Magento på Ubuntu 20.04 LTS-serveren, og nu kan du begynde at tilpasse din butik efter dine behov. For at vide mere om Magento og lære om butiksudvikling, gå videre til Magento Docs-siden.