Hvordan installere Magento 2 på Ubuntu 20.04 LTS

En omfattende veiledning for hvordan du setter opp og distribuerer Magento2-butikken på en Ubuntu 20.04-server.

Magento er en populær e-handelsplattform bygget og skrevet i PHP, den brukes av mange småskalabedrifter til å selge produkter og skape en online tilstedeværelse. Den lar deg lage en fullverdig nettbutikk med funksjoner som lagerstyring, produktkataloger, frakt, fakturering og mye mer.

Hvis du er ute etter å bygge en slank og enterprise-grade shoppingplattform for virksomheten din, bør Magento være et flott utgangspunkt. Så i denne guiden vil vi se på hvordan du setter opp Magento community edition versjon 2.3 med LAMP-stabel på en Ubuntu 20.04-server.

Forutsetninger

Du trenger en Ubuntu 20.04 LTS-server og logget på som en sudo aktivert bruker. Du trenger også et domenenavn som peker til din Ubuntu 20.04-server-IP. Vi vil bruke eksempel.com uansett hvor domenenavn er påkrevd, erstatt det med ditt domene. Før vi begynner, oppdater pakkelisten og oppgrader deretter pakkene på Ubuntu 20.04-serveren.

sudo apt oppdatering && sudo apt oppgradering

Installer Apache Web Server

Magento krever en webserver for å fungere, i denne guiden har vi valgt å bruke kjør Magento-applikasjonen over LAMP-stakken (Linux, Apache, MySQL, PHP). Så vi skal installere alle pakkene som består av LAMP-stabel.

Apache webserver er en av de mest populære webserverne på internett med nesten 37,2 % av den totale webserverens markedsandel. Du kan også velge å installere Magento over LEMP-stakken som bruker Nginx webserver i stedet for apache. Men i denne guiden skal vi distribuere Megento-serveren vår ved hjelp av Apache.

For å installere Apache-nettserveren, kjør kommandoen nedenfor:

sudo apt installer apache2

Skriv inn brukerpassordet ditt og trykk Y hvis du blir bedt om det. Når installasjonen er fullført, må vi konfigurere Ubuntus ukompliserte brannmur (UFW) for å tillate trafikk på porten 80 & 443.

UFW kommer med forhåndskonfigurerte profiler som kan veksles for å la applikasjonen få tilgang til portene på Ubuntu 20.04-serveren. Så når du installerte Apache-nettserveren, ble UFW-profiler kalt "Apache", "Apache Full" og "Apache Secure" lagt til UFW-applisten. La Apache-nettserveren tjene på port 80 & 443 ved å kjøre:

sudo ufw tillate 'Apache Full'

Nå er alt vi trenger å gjøre å aktivere UFW, men før vi gjør det, sørg for at du har tillatt porten 22 (SSH). Hvis du ikke endrer SSH UFW-regler, kan du bli låst ute fra Ubuntu 20.04-serveren.

sudo ufw tillate 'OpenSSH'

Til slutt, aktiver UFW-brannmuren ved å kjøre:

sudo ufw aktiver

trykk Y hvis du får en melding som sier at kommandoen kan forstyrre SSH-tilkoblingene, siden vi allerede har lagt til en regel for å tillate SSH gjennom den. Du kan nå få tilgang til apache-nettserveren gjennom nettleseren din, skriv inn IP-adressen til Ubuntu 20.04-serveren i URL-linjen og trykk enter.

apache2 ubuntu standardside

Installer MySQL Server

Du trenger også en databaseserver for å kjøre Magento ettersom det er der alt Magento-butikkinnholdet lagres. Vi skal installere MySQL-serveren og opprette en bruker som heter magentouser og en database kalt magento for Magento.

MySQL-pakken kalles som mysql-server i Ubuntu repositories, installer det ved å kjøre:

sudo apt installer mysql-server

Deretter må vi konfigurere MySQL-sikkerhetsinnstillingene riktig. Heldigvis kommer MySQL-pakken med et sikkerhetsskript som gjør det enklere å konfigurere MySQL-serveren. Så kjør dette skriptet ved å kjøre følgende kommando:

sudo mysql_secure_installation

Du vil bli spurt om flere spørsmål, dette er de optimale innstillingene for MySQL-serveren:

  • Vil du sette opp VALIDATE PASSWORD-komponenten?[y/n]: Enter Y
  • Det er tre nivåer av retningslinjer for passordvalidering.
    • Vennligst skriv inn 0 = LAV, 1 = MIDDELS og 2 = STERK: Skriv inn 2
  • Vennligst angi passordet for root her.
    • Nytt passord: Skriv inn et passord for MySQL root-bruker.
    • Skriv inn nytt passord på nytt: Gjenta det valgte passordet.
  • Vil du fjerne anonyme brukere? [y/n]: Gå inn Y
  • Vil du ikke tillate root-pålogging eksternt? [y/n] : Gå inn Y
  • Vil du fjerne testdatabasen og få tilgang til den? [y/n] : Gå inn Y
  • Laste inn rettighetstabeller på nytt nå? [y/n] : Gå inn Y

For å bekrefte og validere at MySQL-serveren er installert og fungerer som den skal, logger du på MySQL-serveren som root-bruker ved å:

sudo mysql

Tast inn ditt sudo brukerpassord når du blir bedt om det og trykk enter. MySQL root-brukeren bruker unix_socket for å autentisere påloggingen. Hva dette egentlig betyr er at du må være en sudo bruker for å logge på MySQL-serveren som rotbruker.

Opprett en ny database og bruker for Magento

Vi kan nå opprette en MySQL-bruker for Magento, og hvis du har fulgt hvert trinn i denne veiledningen, må du ha MySQL-konsollen åpen. Lag en database kalt magento ved å skrive inn følgende spørring i MySQL-konsollen:

LAG DATABASE magento;

For å opprette en ny MySQL-bruker kalt magentouser, kjør denne spørringen i konsollen:

LAG BRUKER 'magentouser'@'%' IDENTIFISERT MED mysql_native_password VED 'passord';

Merk: Bytt ut passord i spørringen med et sterkt passord du velger.

Deretter gi den nye magentouser full tilgang til magento database:

GIR ALLE PÅ magento.* TIL 'magentouser'@'%' MED TILDELINGSOPTION;

Vi må stille inn log_bin_trust_function_creators parameter som 1 ettersom den er deaktivert i den nyeste versjonen av MySQL og uten å aktivere den, gir Magento noen feil under installasjonen. For å gjøre det, kjør følgende spørring:

SET GLOBAL log_bin_trust_function_creators=1;

Til slutt laster du inn databaseprivilegiene og innstillingene vi endret på nytt og går ut av konsollen ved å bruke disse spørringene:

SPILLE PRIVILEGIER; EXIT;

Installer PHP og nødvendige utvidelser

Magento krever PHP og få PHP-utvidelser for å fungere. På tidspunktet for skriving av denne artikkelen, Magento community-utgaveversjonen 2.3 fungerer ikke med den nyeste PHP-versjonen 7.4 og derfor må vi installere PHP-versjonen 7.3.

Vi må legge til en tredjeparts PHP PPA slik at vi kan installere PHP-versjonen 7.3 da Ubuntu-lagrene bare har det nyeste 7.4 pakker. Legg til PPA og oppdater pakkelisten ved å kjøre disse kommandoene:

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

Installer deretter PHP 7.3 og alle PHP-modulene som Magento krever ved å kjø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-soap libapache2-mod-php7.3

Etter at PHP 7.3 er installert, må vi konfigurere noen grunnleggende innstillinger som anbefales av Magento for å fungere skikkelig. Kjør denne kommandoen for å åpne FPM-utvidelsens konfigurasjonsfil ved hjelp av nano

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

Her er noen av innstillingene som anbefales for de fleste Magento-nettsteder.

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

Lagre endringene ved å trykke Ctrl+O gå ut av nanoredigering ved å trykke Ctrl+X. Vi har nå PHP og alle nødvendige utvidelser, så vi kan gå videre til Magento.

Installer Composer

Composer er en PHP-avhengighetsbehandling som gjør det enklere å installere PHP-rammeverk og -biblioteker. Vi trenger Composer for å laste ned og installere Magento på vår Ubuntu 20.04-server.

Composer krever en pakke kalt pakke opp for å trekke ut de nedlastede bibliotekene og rammeverket, installer det ved å kjøre:

sudo apt install unzip

Installer deretter composer på systemomfattende nivå ved å kjøre denne kommandoen:

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

Kommandoen ovenfor bør installere Composer avhengighetsbehandling på Ubuntu 20.04-serveren. Bekreft at Composer er riktig installert ved å kjøre:

komponist
 PRODUKSJON:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Komponistversjon 1.10.8 2020-06- 24 21:23:30 Bruk: kommando [alternativer] [argumenter] 

Last ned og installer Magento

Vi kan nå gå videre til å laste ned og installere Magento ettersom vi har installert og konfigurert alle nødvendige pakker som kreves av Magento.

Opprette en Magento-konto

For å laste ned Magento på din Ubuntu 20.04-server, trenger du en Magento 2-tilgangsnøkkel. For å få denne tilgangsnøkkelen trenger du en Magento-konto. Hvis du ikke er registrert og ikke har en Magento-konto, gå til denne siden og klikk på "Registrer deg".

Etter at du er ferdig med å opprette en Magento-konto, vil du kunne opprette en ny tilgangsnøkkel slik at du kan laste ned Magento 2 på maskinen din ved hjelp av composer. Du kan se alle Magento-tilgangsnøklene dine på denne siden. Hvis det ikke er noen tilgangsnøkkel under Magento 2-fanen, klikk på 'Opprett en ny tilgangsnøkkel'-knappen og gi den et navn og trykk deretter 'OK'.

Disse nøklene er legitimasjonen din som brukes til å laste ned Magento 2 fra Magento-depotet via Composer. Vi vil bruke disse nøklene når vi laster ned Magento, men før vi gjør det skal vi sette opp katalogeierskap og tillatelser.

Konfigurasjon av eierskap og tillatelser før installasjon

Filtillatelsene kan gjøre eller bryte sikkerheten til ethvert nettsted, så det er nødvendig å angi eierskap og tillatelse til dokumentroten til Apache-serveren på riktig måte.

Standardeieren av /var/www/ katalogen er rotbrukeren, men vi må få tilgang til og endre filene under denne katalogen. I tillegg trenger webserveren også tilgang til dokumentroten for å skrive tilbake og endre innholdet på Magento-siden.

Så for å løse dette problemet, skal vi legge til den nåværende brukeren til www-data gruppe, for å gjøre det kjør:

sudo usermod -a -G www-data $USER

De -en-G alternativer er viktige når de legger til www-data som en sekundær gruppe til brukerkontoen, som bevarer brukerens primære gruppe. Etter å ha lagt til brukeren i webservergruppen, endre eieren av /var/www/ og dens underkataloger ved å bruke denne kommandoen:

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

Nå som vi har satt opp forhåndsinstallasjonstillatelser for Magento, kan vi gå videre til å laste den ned i nettserverens Document-rot.

Laster ned Magento

Nå på dette tidspunktet bør du ha en Magento-konto med tilgangsnøkler og forhåndsinstallasjonstillatelser satt opp riktig. Så vi vil bruke Composer til å laste ned Magento til Apache-dokumentroten og deretter installere den.

Endre gjeldende katalog til /var/www/ så terminalen peker mot den ved å kjøre:

cd /var/www/

Kjør kommandoen nedenfor for å lage et nytt prosjekt med Composer kjent som magento.

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

Du vil bli bedt om brukernavn og passord etter at du har brukt kommandoen ovenfor. Tilgangsnøklene vi har laget skal brukes her. Kopier den offentlige nøkkelen og lim den inn som brukernavn og kopier deretter den private nøkkelen din og lim den inn i terminalen som passord. Trykk deretter Y for å lagre legitimasjonen for fremtidig bruk.

 Produksjon:  Opprette et "magento/project-community-edition"-prosjekt på "./magento" Advarsel fra repo.magento.com: Du har ikke oppgitt Magento-autentiseringsnøklene. For instruksjoner, besøk //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Autentisering kreves (repo.magento.com): Brukernavn: e8b6120dce14c3d982a85525264897c4 Passord: Vil du lagre legitimasjon for repo.magento.com i /home/ath/.config/composer/auth.json ? [Yn] Y

Etter at Magento og alle dens avhengigheter er lastet ned gjennom Composer, må vi angi eierskap og tillatelse for den nye magento-prosjektkatalogen og filene også. Endre katalogen til Magento-prosjektroten ved å:

cd /var/www/magento/

Endre deretter gruppeeieren av Magento-prosjektkatalogen og dens underkataloger ved å kjøre:

finn var generert leverandør pub/statisk pub/media app/etc -type f -exec chmod g+w {} + && finn var generert 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 kommandoen vil gi webservergruppen (www-data) tillatelser til å skrive til leverandøren, pub/static, pub/media & app/etc-kataloger og filer i dem. I tillegg vil det gjøre bin/magento kjørbar fil, slik at vi kan kjøre den og installere Magento på systemet vårt.

Konfigurerer Apache for Magento

Vi skal installere Magento gjennom GUI, da det er mer intuitivt enn CLI-installasjon i dette tilfellet. Derfor må vi opprette en virtuell vert for Apache-nettserveren før vi kan fortsette med Magento-installasjonen.

Åpne Apaches standard virtuelle vertsfil med nano ved å bruke følgende kommando:

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

Endre dokumentroten til /var/www/magento og legg til følgende kodebit under den.

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

Bytt ut eksempel.com i ServerName og ServerAlias ​​med ditt domenenavn. Endringene i din 000-default.conf filen skal se omtrent ut som den uthevede teksten vist nedenfor. Lagre endringene ved å trykke Ctrl+O og gå ut av redigeringsprogrammet ved å bruke Ctrl+X nøkler.

 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 kombinert 

Deretter må vi aktivere en Apache-mod kalt as mod_rewrite kreves av Magento. Det gir en fleksibel og kraftig måte å manipulere URL-er på, så aktiver moden ved å kjøre:

sudo a2enmod omskrive

Start Apache-serveren på nytt slik at eventuelle endringer vi har gjort blir brukt på serveren:

sudo systemctl start apache2 på nytt

Installerer Magento

Vi kan endelig fortsette med Magento-installasjonen, da vi har alt som kreves av Magento for å fungere. Skriv inn IP-adressen til Ubuntu 20.04-serveren i URL-linjen til din foretrukne nettleser.

Klikk på "Agree and Setup Magento" for å fortsette med Magento-installasjonen. Magento Web-installatørens første trinn er beredskapssjekk, den vil bekrefte at alle Magento-kravene er oppfylt. Klikk på 'Start Readiness Check' og etter at prosessen er fullført, trykk på 'Next'.

Neste trinn er å sette opp detaljene og legge til en database for Magento. Vi har allerede opprettet en MySQL-bruker for Magento kalt magentouser og en database kalt magento i avsnittet ovenfor. Fyll opp de riktige detaljene i denne delen, nemlig databaseserverens brukernavn, passordet og databasenavnet, og trykk deretter "Neste" for å fortsette.

Det tredje trinnet i Magento-oppsettet er nettkonfigurasjon. Bytt ut IP-adressen fra "Butikkadresse"-inngangen til domenenavnet ditt hvis du har et. Ikke glem å sette en skråstrek (/) etter domenenavnet ditt som ellers, blir administratoradressens URL utilgjengelig.

Klikk deretter på Avanserte alternativer og merk av for begge HTTPS-alternativene hvis du vil bruke en sikker tilkobling for Magento-nettstedet ditt. Behold resten av innstillingene som de er og trykk på neste.

Merk: Hvis du krysser av for HTTPS-alternativene, må du få SSL-sertifikater for det. Vi vil se på hvordan du får SSL-sertifikater i neste del av denne opplæringen.

Under «Tilpass butikken din»-innstillinger, du trenger bare å endre tidssonen, standardvalutaen som brukes i butikken og standardspråket til butikken i henhold til dine behov. Se deg rundt disse innstillingene og konfigurer dem om nødvendig, ellers klikk på Neste for å fortsette.

I det femte trinnet må du opprette Admin-konto for Magento Admin-dashbordet. Skriv inn et nytt brukernavn for administratoren din og skriv inn en e-postadresse oppgitt av leverandøren av domenenavnet. Opprett et sterkt passord for admin-kontoen og trykk deretter på neste når du er ferdig.

Det siste og siste trinnet er å bare klikke på "Installer"-knappen for å bekrefte innstillingene og starte installasjonsprosessen. Når installasjonen er fullført, vil Magento-oppsettet vise deg sammendraget og noen viktige detaljer om Magento-siden din.

Noter ned disse detaljene et trygt sted, for eksempel en frakoblet papirpost eller i en sikker database. Magento-administratoradressen og krypteringsnøkkelen skal aldri deles offentlig. Krypteringsnøkkelen brukes til å kryptere Magento-databasen slik at brukerdataene er trygge, selv om det er en datalekkasje.

Opprett SSL-sertifikat for Magento-nettstedet ditt

Magento-nettstedet er distribuert, og det kan nås rett etter at installasjonen er fullført. Men hvis du vil betjene nettrafikk over HTTPS, må du sette opp SSL-sertifikat for domenet ditt.

Letsencrypt er en ideell sertifikatmyndighet som tilbyr TLS-sertifikater gratis. Vi skal bruke en pakke som heter certbot som hjelper med å få sertifikatet og konfigurere den virtuelle Apache-verten automatisk. Kjør denne kommandoen i terminalen for å installere certbot:

sudo apt installer certbot python3-certbot-apache

For å få sertifikatet ditt fra Letsencrypt og konfigurere den virtuelle Apache-verten, kjør følgende kommando:

sudo certbot --apache

Certbot vil starte prosessen med å hente sertifikater fra Letsencrypt, oppgi e-postadressen din når du blir bedt om det, og deretter trykke enter-tasten. Deretter skriver du EN å godta Letsencrypts tjenestevilkår. Du vil bli spurt om du vil dele e-postadressen din med EFF, skriv inn Y eller N avhengig av ditt valg.

Deretter vil du få en liste over domenenavn du ønsker å aktivere HTTPS for. Skriv inn riktig nummer som tilsvarer domenenavnet ditt og trykk Enter.

Etter å ha valgt domenenavnet ditt, blir du spurt om du vil omdirigere HTTP-trafikk til HTTPS, skriv inn 2 og trykk enter. Certbot vil nå automatisk konfigurere den virtuelle Apache-verten for domenet eksempel.com.

Certbot-pakken kommer med cronjob som fornyer serversertifikatene dine automatisk før de utløper.Test om den automatiske fornyelsen fungerer ved å kjøre:

sudo certbot renew --dry-run

Ovennevnte utgang betyr at cronjob for automatisk fornyelse fungerer som den skal. For å bekrefte at Certbot fungerte, åpne nettleseren og besøk domenet ditt //example.com.

På samme måte kan du få tilgang til admin påloggingssiden ved å bruke //example.com/admin_SecretString, var denne URL-en på slutten av Magento-installasjonen.

Du har nå installert Magento på Ubuntu 20.04 LTS-serveren og nå kan du begynne å tilpasse butikken din etter dine behov. For å vite mer om Magento og lære om butikkutvikling, gå over til Magento Docs-siden.