Hur man installerar Magento 2 på Ubuntu 20.04 LTS

En omfattande guide om hur man konfigurerar och distribuerar Magento2-butiken på en Ubuntu 20.04-server.

Magento är en populär e-handelsplattform byggd och skriven i PHP, den används av många småskaliga företag för att sälja produkter och skapa en onlinenärvaro. Det låter dig skapa en fullfjädrad webbutik med funktioner som lagerhantering, produktkataloger, frakt, fakturering och mycket mer.

Om du funderar på att bygga en elegant och företagsklassad shoppingplattform för ditt företag bör Magento vara en bra utgångspunkt. Så i den här guiden kommer vi att titta på hur man ställer in Magento community edition version 2.3 med LAMP-stack på en Ubuntu 20.04-server.

Förutsättningar

Du behöver en Ubuntu 20.04 LTS-server och inloggad som en sudo aktiverad användare. Du behöver också ett domännamn som pekar på din Ubuntu 20.04-server-IP. Vi kommer använda exempel.com varhelst domännamn krävs, ersätt det med din domän. Innan vi börjar, uppdatera paketlistan och uppgradera sedan paketen på din Ubuntu 20.04-server.

sudo apt uppdatering && sudo apt uppgradering

Installera Apache Web Server

Magento kräver en webbserver för att fungera, i den här guiden har vi valt att köra Magento-applikationen över LAMP-stacken (Linux, Apache, MySQL, PHP). Så vi kommer att installera alla paket som består av LAMP-stack.

Apache webbserver är en av de mest populära webbservrarna på internet med nästan 37,2 % av den totala marknadsandelen för webbservrar. Du kan också välja att installera Magento över LEMP-stacken som använder Nginx webbserver istället för apache. Men i den här guiden kommer vi att distribuera vår Megento-server med hjälp av Apache.

För att installera Apache-webbservern, kör kommandot nedan:

sudo apt installera apache2

Ange ditt användarlösenord och tryck Y om du uppmanas. När installationen är klar måste vi konfigurera Ubuntus okomplicerade brandvägg (UFW) för att tillåta trafiken på porten 80 & 443.

UFW kommer med förkonfigurerade profiler som kan växlas för att tillåta applikationen att komma åt portarna på din Ubuntu 20.04-server. Så när du installerade Apache-webbservern lades UFW-profiler som heter "Apache", "Apache Full" och "Apache Secure" till i UFW-applistan. Tillåt Apache-webbservern att tjäna på port 80 & 443 genom att köra:

sudo ufw tillåter 'Apache Full'

Nu behöver vi bara aktivera UFW men innan vi gör det, se till att du har tillåtit porten 22 (SSH). Om du inte ändrar SSH UFW-regler kan du bli utelåst från din Ubuntu 20.04-server.

sudo ufw tillåter 'OpenSSH'

Slutligen, aktivera UFW-brandväggen genom att köra:

sudo ufw aktivera

Tryck Y om du får en prompt som säger att kommandot kan störa SSH-anslutningarna, eftersom vi redan har lagt till en regel för att tillåta SSH genom den. Du kan nu komma åt apache-webbservern via din webbläsare, skriv in IP-adressen till din Ubuntu 20.04-server i URL-fältet och tryck på enter.

apache2 ubuntu standardsida

Installera MySQL Server

Du behöver också en databasserver för att köra Magento eftersom det är där allt Magento-butiksinnehåll lagras. Vi ska installera MySQL-servern och skapa en användare som heter magentouser och en databas som heter magento för Magento.

MySQL-paketet kallas som mysql-server i Ubuntu-förråd, installera det genom att köra:

sudo apt installera mysql-server

Därefter måste vi konfigurera MySQL-säkerhetsinställningarna korrekt. Lyckligtvis kommer MySQL-paketet med ett säkerhetsskript som gör det enklare att konfigurera MySQL-servern. Så kör det här skriptet genom att köra följande kommando:

sudo mysql_secure_installation

Du kommer att bli tillfrågad med flera frågor, dessa är de optimala inställningarna för MySQL-servern:

  • Vill du ställa in VALIDATE PASSWORD-komponenten?[y/n]: Ange Y
  • Det finns tre nivåer av policy för lösenordsvalidering.
    • Ange 0 = LÅG, 1 = MEDIUM och 2 = STARK: Ange 2
  • Vänligen ange lösenordet för root här.
    • Nytt lösenord: Ange ett lösenord för MySQL root-användare.
    • Ange nytt lösenord igen: Upprepa ditt valda lösenord.
  • Ta bort anonyma användare? [y/n]: Ange Y
  • Vill du inte tillåta root-inloggning på distans? [y/n] : Ange Y
  • Ta bort testdatabasen och få tillgång till den? [y/n] : Ange Y
  • Ladda om privilegietabeller nu? [y/n] : Ange Y

För att sedan verifiera och validera att MySQL-servern är installerad och fungerar korrekt, logga in på MySQL-servern som root-användare genom att:

sudo mysql

Ange ditt sudo användarlösenord när du uppmanas att göra det och tryck på enter. MySQL root-användaren använder unix_socket för att autentisera inloggningen. Vad detta i huvudsak betyder är att du måste vara en sudo användare för att logga in på MySQL-servern som sin rotanvändare.

Skapa en ny databas och användare för Magento

Vi kan nu skapa en MySQL-användare för Magento och om du har följt varje steg i den här guiden måste du ha MySQL-konsolen öppen. Skapa en databas som heter magento genom att ange följande fråga i MySQL-konsolen:

SKAPA DATABAS magento;

För att skapa en ny MySQL-användare kallas magentouser, kör den här frågan i konsolen:

SKAPA ANVÄNDARE 'magentouser'@'%' IDENTIFIERAD MED mysql_native_password GENOM 'lösenord';

Notera: Ersätt Lösenord i frågan med ett starkt lösenord som du väljer.

Bevilja sedan den nya magentouser full tillgång till magento databas:

BETYD ALLA PÅ magento.* TILL 'magentouser'@'%' MED BILJANDEALTERNATIV;

Vi måste ställa in log_bin_trust_function_creators parameter som 1 eftersom den är inaktiverad i den senaste versionen av MySQL och utan att aktivera den ger Magento några fel under installationen. Kör följande fråga för att göra det:

SET GLOBAL log_bin_trust_function_creators=1;

Slutligen, ladda om databasbehörigheterna och inställningarna vi ändrade och avsluta konsolen genom att använda dessa frågor:

SPOLA PRIVILEGIER; UTGÅNG;

Installera PHP och nödvändiga tillägg

Magento kräver PHP och få PHP-tillägg för att fungera. Vid tidpunkten för att skriva denna artikel, versionen av Magento-gemenskapsutgåvan 2.3 fungerar inte med den senaste PHP-versionen 7.4 och därför måste vi installera PHP-versionen 7.3.

Vi måste lägga till en tredjeparts PHP PPA så att vi kan installera PHP-versionen 7.3 eftersom Ubuntu-förråden bara har det senaste 7.4 paket. Lägg till PPA och uppdatera paketlistan genom att köra dessa kommandon:

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

Installera sedan PHP 7.3 och alla PHP-moduler som Magento kräver genom att köra följande kommando:

sudo apt installera 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-tvål libapache2-mod-php7.3

Efter att PHP 7.3 har installerats måste vi konfigurera några grundläggande inställningar som rekommenderas av Magento för att fungera korrekt. Kör det här kommandot för att öppna FPM-tilläggets konfigurationsfil med nano

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

Här är några av de inställningar som rekommenderas för de flesta Magento-webbplatser.

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

Spara ändringarna genom att trycka på Ctrl+O avsluta sedan nanoredigeraren genom att trycka på Ctrl+X. Vi har nu PHP och alla nödvändiga tillägg och så kan vi gå vidare till att skaffa Magento.

Installera Composer

Composer är en PHP-beroendehanterare som gör det enklare att installera PHP-ramverk och -bibliotek. Vi behöver Composer för att ladda ner och installera Magento på vår Ubuntu 20.04-server.

Composer kräver ett paket som heter packa upp för att extrahera de nedladdade biblioteken och ramverken, installera den genom att köra:

sudo apt install unzip

Installera sedan composer på systemomfattande nivå genom att köra detta kommando:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filnamn=kompositör

Ovanstående kommando bör installera Composer dependency manager på Ubuntu 20.04-servern. Kontrollera att Composer är korrekt installerat genom att köra:

kompositör
 PRODUKTION:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Kompositör version 1.10.8 2020-06- 24 21:23:30 Användning: kommando [alternativ] [argument] 

Ladda ner och installera Magento

Vi kan nu gå vidare till att ladda ner och installera Magento eftersom vi har installerat och konfigurerat alla nödvändiga paket som krävs av Magento.

Skapa ett Magento-konto

För att ladda ner Magento på din Ubuntu 20.04-server behöver du en Magento 2-åtkomstnyckel. För att få denna åtkomstnyckel behöver du ett Magento-konto. Om du inte är registrerad och inte har ett Magento-konto, gå till den här sidan och klicka på "Registrera dig".

När du är klar med att skapa ett Magento-konto kommer du att kunna skapa en ny åtkomstnyckel så att du kan ladda ner Magento 2 på din maskin med hjälp av composer. Du kan se alla dina Magento-åtkomstnycklar på den här sidan. Om det inte finns någon åtkomstnyckel under Magento 2-fliken, klicka på knappen "Skapa en ny åtkomstnyckel" och ge den ett namn och tryck sedan på "OK".

Dessa nycklar är dina referenser som används för att ladda ner Magento 2 från Magento-förrådet via Composer. Vi kommer att använda dessa nycklar när vi laddar ner Magento, men innan vi gör det kommer vi att ställa in katalogägande och behörigheter.

Konfiguration av äganderätt och behörighet före installation

Filbehörigheterna kan göra eller bryta säkerheten för vilken webbplats som helst, så det är nödvändigt att korrekt ställa in äganderätten och behörigheten för dokumentroten på Apache-servern.

Standardägaren av /var/www/ katalogen är rotanvändaren, men vi måste komma åt och ändra filerna under denna katalog. Dessutom behöver webbservern också tillgång till dokumentroten för att kunna skriva tillbaka och ändra innehållet på Magento-webbplatsen.

Så för att lösa det här problemet kommer vi att lägga till den nuvarande användaren till www-data grupp, för att göra det kör:

sudo usermod -a -G www-data $USER

De -a-G alternativen är viktiga eftersom de lägger till www-data som en sekundär grupp till användarkontot, vilket bevarar användarens primära grupp. Efter att ha lagt till användaren i webbservergruppen, byt ägare till /var/www/ och dess underkataloger med detta kommando:

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

Nu när vi har ställt in förinstallationsbehörigheter för Magento, kan vi gå vidare till att ladda ner det i webbserverns dokumentrot.

Laddar ner Magento

Nu vid det här laget bör du ha ett Magento-konto med åtkomstnycklar och förinstallationsbehörigheter inställda korrekt. Så vi kommer att använda Composer för att ladda ner Magento till Apache-dokumentroten och sedan installera det.

Ändra den aktuella katalogen till /var/www/ så terminalen pekar mot den genom att köra:

cd /var/www/

Kör kommandot nedan för att skapa ett nytt projekt med Composer känd som magento.

kompositör create-project --repository=//repo.magento.com/ magento/project-community-edition magento

Du kommer att bli tillfrågad om användarnamn och lösenord efter att du har använt kommandot ovan. De åtkomstnycklar vi skapade ska användas här. Kopiera den offentliga nyckeln och klistra in den som användarnamn, kopiera sedan på samma sätt din privata nyckel och klistra in den i terminalen som lösenord. Tryck sedan på Y för att spara autentiseringsuppgifterna för framtida bruk.

 Produktion:  Skapa ett "magento/project-community-edition"-projekt på "./magento" Varning från repo.magento.com: Du har inte angett dina Magento-autentiseringsnycklar. För instruktioner, besök //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Autentisering krävs (repo.magento.com): Användarnamn: e8b6120dce14c3d982a85525264897c4 Lösenord: Vill du lagra autentiseringsuppgifter för repo.magento.com i /home/ath/.config/composer/auth.json ? [Yn] Y

Efter att Magento och alla dess beroenden har laddats ner via Composer, måste vi ställa in äganderätt och behörighet för den nya magento-projektkatalogen och dess filer också. Ändra katalogen till Magento-projektets rot genom att:

cd /var/www/magento/

Ändra sedan gruppägaren för Magento-projektkatalogen och dess underkataloger genom att köra:

hitta var genererad leverantör pub/statisk pub/media app/etc -typ f -exec chmod g+w {} + && hitta var genererad leverantör pub/statisk pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Detta kommando ger webbservergruppen (www-data) behörigheter att skriva till leverantören, pub/static, pub/media & app/etc kataloger och filer i dem. Dessutom kommer det att göra bin/magento fil körbar, så att vi kan köra den och installera Magento på vårt system.

Konfigurera Apache för Magento

Vi kommer att installera Magento genom GUI, eftersom det är mer intuitivt än CLI-installation i det här fallet. Därför måste vi skapa en virtuell värd för Apache-webbservern innan vi kan fortsätta med Magento-installationen.

Öppna Apaches standard virtuella värdfil med nano med följande kommando:

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

Ändra dokumentroten till /var/www/magento och lägg till följande kodavsnitt under det.

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

Ersätt exempel.com i ServerName och ServerAlias ​​med ditt domännamn. Förändringarna i din 000-default.conf filen ska se ut ungefär som den markerade texten som visas nedan. Spara ändringarna genom att trycka på Ctrl+O och avsluta editorn genom att använda Ctrl+X nycklar.

 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 kombinerad 

Därefter måste vi aktivera en Apache-mod som heter as mod_rewrite krävs av Magento. Det ger ett flexibelt och kraftfullt sätt att manipulera webbadresser, så aktivera modden genom att köra:

sudo a2enmod skriva om

Starta om Apache-servern så att alla ändringar vi gjort tillämpas på servern:

sudo systemctl starta om apache2

Installerar Magento

Vi kan äntligen fortsätta med Magento-installationen, eftersom vi har allt som krävs av Magento för att fungera. Skriv in IP-adressen för din Ubuntu 20.04-server i URL-fältet för din föredragna webbläsare.

Klicka på "Agree and Setup Magento" för att fortsätta med Magento-installationen. Magento Web-installatörens första steg är beredskapskontroll, den kommer att verifiera att alla Magento-kraven är uppfyllda. Klicka på "Starta beredskapskontroll" och efter att processen är klar, tryck på "Nästa".

Nästa steg är att ställa in detaljerna och lägga till en databas för Magento. Vi har redan skapat en MySQL-användare för Magento som heter magentouser och en databas som heter magento i avsnittet ovan. Fyll i lämplig information i det här avsnittet, nämligen databasserverns användarnamn, dess lösenord och databasnamn och tryck sedan på "Nästa" för att fortsätta.

Det tredje steget i Magento-installationen är webbkonfiguration. Byt ut IP-adressen från ingången "Butiksadress" till ditt domännamn om du har ett. Glöm inte att sätta ett snedstreck (/) efter ditt domännamn som annars blir webbadressen för administratörsadressen otillgänglig.

Klicka sedan på Avancerade alternativ och markera båda HTTPS-alternativen om du vill använda en säker anslutning för din Magento-webbplats. Behåll resten av inställningarna som de är och tryck på nästa.

Notera: Om du markerar HTTPS-alternativen måste du skaffa SSL-certifikat för det. Vi kommer att titta på hur man får SSL-certifikat i nästa avsnitt av denna handledning.

Under "Anpassa din butik"-inställningar, du behöver bara ändra tidszonen, standardvalutan som används i butiken och standardspråket för butiken enligt dina behov. Titta runt dessa inställningar och konfigurera dem om det behövs, annars klicka på nästa för att fortsätta.

I det femte steget måste du skapa ett administratörskonto för din Magento Admin-instrumentpanel. Ange ett nytt användarnamn för din administratör och ange en e-postadress från din domännamnsleverantör. Skapa ett starkt lösenord för administratörskontot och tryck sedan på nästa när du är klar.

Det sista och sista steget är att bara klicka på "Installera"-knappen för att bekräfta inställningarna och påbörja installationsprocessen. När installationen är klar kommer Magento-installationen att visa dig sammanfattningen och några viktiga detaljer om din Magento-webbplats.

Anteckna dessa detaljer på ett säkert ställe, till exempel en offline-dokumentation eller i en säker databas. Magento-administratörsadressen och krypteringsnyckeln ska aldrig delas offentligt. Krypteringsnyckeln används för att kryptera Magento-databasen så att användardatan skulle vara säker, även om det finns en dataläcka.

Skapa SSL-certifikat för din Magento-webbplats

Magento-webbplatsen är utplacerad och den kan nås direkt efter att installationen är klar. Men om du vill betjäna webbtrafik över HTTPS måste du ställa in SSL-certifikat för din domän.

Letsencrypt är en ideell certifikatmyndighet som tillhandahåller TLS-certifikat gratis. Vi kommer att använda ett paket som heter certbot vilket hjälper till att hämta certifikatet och konfigurera den virtuella Apache-värden automatiskt. Kör det här kommandot i terminalen för att installera certbot:

sudo apt installera certbot python3-certbot-apache

För att hämta ditt certifikat från Letsencrypt och konfigurera den virtuella Apache-värden, kör följande kommando:

sudo certbot --apache

Certbot kommer att påbörja processen att hämta certifikat från Letsencrypt, ange din e-postadress när du uppmanas att göra det och sedan trycka på enter-tangenten. Skriv sedan A att godkänna Letsencrypts användarvillkor. Du kommer att bli tillfrågad om du vill dela din e-postadress med EFF, skriv in Y eller N beroende på ditt val.

Därefter kommer du att få en lista över domännamn som du vill aktivera HTTPS för. Skriv in rätt nummer som motsvarar ditt domännamn och tryck på Enter.

När du har valt ditt domännamn kommer du att bli tillfrågad om du vill omdirigera HTTP-trafik till HTTPS, skriv 2 och tryck enter. Certbot kommer nu automatiskt att konfigurera den virtuella Apache-värden för domänen exempel.com.

Certbot-paketet kommer med cronjob som förnyar dina servercertifikat automatiskt innan de löper ut.Testa om den automatiska förnyelsen fungerar genom att köra:

sudo certbot förnya --dry-run

Ovanstående utdata betyder att cronjob för automatisk förnyelse fungerar korrekt. För att bekräfta att Certbot fungerade, öppna din webbläsare och besök din domän //exempel.com.

På samma sätt kan du komma åt administratörsinloggningssidan med hjälp av //example.com/admin_SecretString, denna URL var i slutet av Magento-installationen.

Du har nu framgångsrikt installerat Magento på Ubuntu 20.04 LTS-servern och nu kan du börja anpassa din butik efter dina behov. För att veta mer om Magento och lära dig om butiksutveckling, gå vidare till Magento Docs-sidan.