Hoe Magento 2 op Ubuntu 20.04 LTS te installeren

Een uitgebreide handleiding over het opzetten en implementeren van Magento2-winkel op een Ubuntu 20.04-server.

Magento is een populair e-commerceplatform dat is gebouwd en geschreven in PHP en wordt door veel kleinschalige bedrijven gebruikt om producten te verkopen en een online aanwezigheid te creëren. Hiermee kunt u een volwaardige online winkel creëren met functies zoals voorraadbeheer, productcatalogi, verzending, facturering en nog veel meer.

Als u op zoek bent naar een gestroomlijnd en zakelijk winkelplatform voor uw bedrijf, zou Magento een goed startpunt moeten zijn. Dus in deze handleiding zullen we kijken hoe je Magento Community Edition versie 2.3 met LAMP-stack instelt op een Ubuntu 20.04-server.

Vereisten

U hebt een Ubuntu 20.04 LTS-server nodig en bent ingelogd als een sudo ingeschakelde gebruiker. U hebt ook een domeinnaam nodig die naar uw Ubuntu 20.04-server-IP verwijst. We zullen gebruiken voorbeeld.com overal waar een domeinnaam vereist is, vervang deze door uw domein. Werk voordat we beginnen de pakketlijst bij en upgrade vervolgens de pakketten op uw Ubuntu 20.04-server.

sudo apt update && sudo apt upgrade

Apache-webserver installeren

Magento vereist een webserver om te functioneren, in deze handleiding hebben we ervoor gekozen om de Magento-applicatie te gebruiken via de LAMP-stack (Linux, Apache, MySQL, PHP). We gaan dus alle pakketten installeren die uit de LAMP-stack bestaan.

Apache-webserver is een van de meest populaire webservers op internet met bijna 37,2% van het totale marktaandeel van webservers. U kunt er ook voor kiezen om Magento te installeren over de LEMP-stack die de Nginx-webserver gebruikt in plaats van apache. Maar in deze handleiding gaan we onze Megento-server implementeren met behulp van Apache.

Voer de onderstaande opdracht uit om de Apache-webserver te installeren:

sudo apt installeer apache2

Voer uw gebruikerswachtwoord in en druk op ja als daarom wordt gevraagd. Wanneer de installatie is voltooid, moeten we de ongecompliceerde firewall (UFW) van Ubuntu configureren om het verkeer op de poort toe te staan 80 & 443.

De UFW wordt geleverd met vooraf geconfigureerde profielen die kunnen worden omgeschakeld om de toepassing toegang te geven tot de poorten op uw Ubuntu 20.04-server. Dus toen u de Apache-webserver installeerde, werden UFW-profielen genaamd 'Apache', 'Apache Full' en 'Apache Secure' toegevoegd aan de lijst met UFW-apps. Toestaan ​​dat de Apache-webserver op poort werkt 80 & 443 door rennen:

sudo ufw staat 'Apache Full' toe

Nu hoeven we alleen maar de UFW in te schakelen, maar voordat we dit doen, moet u ervoor zorgen dat u de poort hebt toegestaan 22 (SSH). Als u de SSH UFW-regels niet wijzigt, wordt u mogelijk buitengesloten van uw Ubuntu 20.04-server.

sudo ufw 'OpenSSH' toestaan

Schakel ten slotte de UFW-firewall in door het volgende uit te voeren:

sudo ufw inschakelen

druk op ja als je een prompt krijgt waarin staat dat de opdracht de SSH-verbindingen kan verstoren, omdat we al een regel hebben toegevoegd om SSH erdoor te laten. U hebt nu toegang tot de apache-webserver via uw browser, typ het IP-adres van uw Ubuntu 20.04-server in de URL-balk en druk op enter.

apache2 ubuntu standaardpagina

MySQL-server installeren

Je hebt ook een databaseserver nodig om Magento uit te voeren, omdat hier alle Magento-winkelinhoud wordt opgeslagen. We gaan de MySQL-server installeren en een gebruiker maken met de naam magentouser en een database genaamd magento voor de Magento.

Het MySQL-pakket wordt genoemd als mysql-server in Ubuntu-repository's, installeer het door het volgende uit te voeren:

sudo apt install mysql-server

Vervolgens moeten we de MySQL-beveiligingsinstellingen correct configureren. Gelukkig wordt het MySQL-pakket geleverd met een beveiligingsscript dat het configureren van de MySQL-server veel eenvoudiger maakt. Voer dit script dus uit door de volgende opdracht uit te voeren:

sudo mysql_secure_installation

U krijgt meerdere vragen, dit zijn de optimale instellingen voor de MySQL-server:

  • Wilt u de component VALIDATE PASSWORD instellen?[y/n]: Enter ja
  • Er zijn drie niveaus van wachtwoordvalidatiebeleid.
    • Voer a.u.b. 0 = LAAG, 1 = MEDIUM en 2 = STERK in: Enter 2
  • Stel hier het wachtwoord voor root in.
    • Nieuw wachtwoord: voer een wachtwoord in voor de MySQL-rootgebruiker.
    • Nieuw wachtwoord opnieuw invoeren: Herhaal uw gekozen wachtwoord.
  • Anonieme gebruikers verwijderen? [j/n]: Voer in ja
  • Root login op afstand niet toestaan? [j/n] : Voer in ja
  • Testdatabase verwijderen en er toegang toe krijgen? [j/n] : Voer in ja
  • Bevoorrechte tabellen nu opnieuw laden? [j/n] : Voer in ja

Om vervolgens te controleren en te valideren dat de MySQL-server is geïnstalleerd en correct werkt, logt u in op de MySQL-server als rootgebruiker door:

sudo mysql

Voer uw sudo gebruikerswachtwoord wanneer u hierom wordt gevraagd en druk op enter. De MySQL-rootgebruiker gebruikt de unix_socket om de login te verifiëren. Wat dit in wezen betekent, is dat je een sudo gebruiker om in te loggen op de MySQL-server als rootgebruiker.

Maak een nieuwe database en gebruiker voor Magento

We kunnen nu een MySQL-gebruiker voor Magento aanmaken en als je elke stap van deze handleiding hebt gevolgd, moet je de MySQL-console open hebben staan. Maak een database met de naam magento door de volgende query in de MySQL-console in te voeren:

MAAK DATABASE magento;

Een nieuwe MySQL-gebruiker maken met de naam magentouser, voer deze query uit in de console:

MAAK GEBRUIKER 'magentouser'@'%' GEDENTIFICEERD MET mysql_native_password DOOR 'wachtwoord';

Opmerking: Vervang de wachtwoord in de query met een sterk wachtwoord naar keuze.

Gun dan de nieuwe magentouser volledige toegang tot de magento databank:

VERLENEN ALLES OP magento.* AAN 'magentouser'@'%' MET SUBSIDIEOPTIE;

We moeten de log_bin_trust_function_creators parameter als 1 omdat het is uitgeschakeld in de nieuwste versie van MySQL en zonder het in te schakelen, geeft Magento een paar fouten tijdens de installatie. Voer hiervoor de volgende query uit:

STEL GLOBAAL log_bin_trust_function_creators=1 in;

Laad ten slotte de databaserechten en instellingen die we hebben gewijzigd opnieuw en verlaat de console met behulp van deze vragen:

VLAKKE VOORRECHTEN; UITGANG;

Installeer PHP en vereiste extensies

Magento vereist PHP en enkele PHP-extensies om te kunnen functioneren. Op het moment van schrijven van dit artikel, de Magento Community Edition-versie 2.3 werkt niet met de nieuwste PHP-versie 7.4 en daarom moeten we de PHP-versie installeren 7.3.

We moeten een PHP PPA van derden toevoegen zodat we de PHP-versie kunnen installeren 7.3 omdat de Ubuntu-repository's alleen de nieuwste hebben 7.4 pakketjes. Voeg de PPA toe en werk de pakketlijst bij door deze opdrachten uit te voeren:

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

Installeer vervolgens PHP 7.3 en alle PHP-modules die Magento nodig heeft door de volgende opdracht uit te voeren:

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

Nadat PHP 7.3 is geïnstalleerd, moeten we enkele basisinstellingen configureren die door Magento worden aanbevolen om goed te kunnen functioneren. Voer deze opdracht uit om het configuratiebestand van de FPM-extensie te openen met nano

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

Hier zijn enkele van de aanbevolen instellingen voor de meeste Magento-websites.

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

Sla de wijzigingen op door op te drukken Ctrl+O verlaat vervolgens de nano-editor door op . te drukken Ctrl+X. We hebben nu PHP en alle benodigde extensies en dus kunnen we doorgaan met het verkrijgen van Magento.

Composer installeren

Composer is een PHP-afhankelijkheidsmanager die het installeren van PHP-frameworks en -bibliotheken eenvoudiger maakt. We hebben Composer nodig om Magento te downloaden en te installeren op onze Ubuntu 20.04-server.

Composer vereist een pakket genaamd uitpakken om de gedownloade bibliotheken en frameworks uit te pakken, installeer het door het volgende uit te voeren:

sudo apt install unzip

Installeer componist vervolgens op systeemniveau door deze opdracht uit te voeren:

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

De bovenstaande opdracht zou de Composer-afhankelijkheidsmanager op de Ubuntu 20.04-server moeten installeren. Controleer of Composer correct is geïnstalleerd door het volgende uit te voeren:

componist
 UITGANG:  ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Componist versie 1.10.8 2020-06- 24 21:23:30 Gebruik: commando [opties] [argumenten] 

Magento downloaden en installeren

We kunnen nu doorgaan met het downloaden en installeren van Magento, aangezien we alle benodigde pakketten hebben geïnstalleerd en geconfigureerd die Magento nodig heeft.

Een Magento-account aanmaken

Om Magento op uw Ubuntu 20.04-server te downloaden, heeft u een Magento 2-toegangssleutel nodig. Om deze toegangssleutel te krijgen, heb je een Magento-account nodig. Als je niet geregistreerd bent en geen Magento-account hebt, ga dan naar deze pagina en klik op 'Registreren'.

Nadat u klaar bent met het maken van een Magento-account, kunt u een nieuwe toegangssleutel maken, zodat u Magento 2 op uw computer kunt downloaden met behulp van componist. Op deze pagina kunt u al uw Magento toegangssleutels bekijken. Als er geen toegangssleutel is onder het tabblad Magento 2, klikt u op de knop 'Een nieuwe toegangssleutel maken' en geeft u deze een naam en drukt u vervolgens op 'OK'.

Deze sleutels zijn uw inloggegevens die worden gebruikt om Magento 2 te downloaden van Magento-repository via Composer. We zullen deze sleutels gebruiken wanneer we Magento downloaden, maar voordat we dat doen, gaan we directory-eigendom en machtigingen instellen.

Pre-installatie eigendom en machtigingsconfiguratie

De bestandsrechten kunnen de beveiliging van elke website maken of breken, dus het is noodzakelijk om het eigendom en de toestemming van de documentroot van de Apache-server correct in te stellen.

De standaard eigenaar van de /var/www/ directory is de rootgebruiker, maar we moeten de bestanden in deze directory openen en wijzigen. Daarnaast heeft de webserver ook toegang nodig tot de document root om de inhoud van de Magento site terug te schrijven en te wijzigen.

Dus om dit probleem op te lossen, gaan we de huidige gebruiker toevoegen aan de www-gegevens groep, om dit te doen:

sudo usermod -a -G www-data $USER

De -een-G opties zijn belangrijk omdat ze toevoegen www-gegevens als een secundaire groep voor het gebruikersaccount, waarbij de primaire groep van de gebruiker behouden blijft. Nadat u de gebruiker aan de webservergroep heeft toegevoegd, wijzigt u de eigenaar van /var/www/ en zijn submappen met behulp van deze opdracht:

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

Nu we pre-installatierechten voor Magento hebben ingesteld, kunnen we doorgaan met het downloaden in de webserver Document root.

Magento downloaden

Op dit moment zou u een Magento-account moeten hebben met toegangssleutels en pre-installatierechten correct ingesteld. Dus we zullen Composer gebruiken om Magento te downloaden in de Apache-documentroot en het vervolgens te installeren.

Wijzig de huidige map in /var/www/ dus de terminal wijst ernaar door uit te voeren:

cd /var/www/

Voer de onderstaande opdracht uit om een ​​nieuw project te maken met Composer, ook wel bekend als magento.

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

Nadat u de bovenstaande opdracht hebt gebruikt, wordt u om een ​​gebruikersnaam en wachtwoord gevraagd. De toegangssleutels die we hebben gemaakt, moeten hier worden gebruikt. Kopieer de openbare sleutel en plak deze in als gebruikersnaam en kopieer vervolgens op dezelfde manier uw privésleutel en plak deze als wachtwoord in de terminal. Druk vervolgens op ja om de inloggegevens op te slaan voor toekomstig gebruik.

 Uitgang:  Een "magento/project-community-edition"-project maken op "./magento" Waarschuwing van repo.magento.com: je hebt je Magento-authenticatiesleutels niet opgegeven. Ga voor instructies naar //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Verificatie vereist (repo.magento.com): Gebruikersnaam: e8b6120dce14c3d982a85525264897c4 Wachtwoord: Wilt u inloggegevens opslaan voor repo.magento.com in /home/ath/.config/composer/auth.json ? [Yn] ja

Nadat Magento en al zijn afhankelijkheden zijn gedownload via Composer, moeten we ook het eigendom en de toestemming voor de nieuwe magento-projectdirectory en zijn bestanden instellen. Wijzig de map naar de Magento-projectroot door:

cd /var/www/magento/

Wijzig vervolgens de groepseigenaar van de Magento-projectdirectory en zijn subdirectories door het volgende uit te voeren:

zoek var gegenereerde leverancier pub/statische pub/media app/etc -type f -exec chmod g+w {} + && zoek var gegenereerde leverancier pub/statische pub/media app/etc -type d -exec chmod g+ws {} + && chmod u+x bin/magento && sudo chown -R :www-data . 

Deze opdracht geeft de webservergroep (www-gegevens) machtigingen om te schrijven naar de directory's van de leverancier, pub/static, pub/media & app/etc en de bestanden erin. Bovendien zal het de bin/magento bestand uitvoerbaar, zodat we het kunnen uitvoeren en Magento op ons systeem kunnen installeren.

Apache configureren voor Magento

We gaan Magento installeren via GUI, omdat het in dit geval intuïtiever is dan CLI-installatie. We moeten dus een virtuele host voor de Apache-webserver maken voordat we verder kunnen gaan met de Magento-installatie.

Open het standaard virtuele hostbestand van Apache met nano met behulp van de volgende opdracht:

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

Wijzig de documenthoofdmap in /var/www/magento en voeg het volgende codefragment eronder toe.

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

Vervang de voorbeeld.com in ServerName en ServerAlias ​​met uw domeinnaam. De veranderingen in uw 000-default.conf bestand zou er ongeveer zo uit moeten zien als de gemarkeerde tekst die hieronder wordt weergegeven. Sla de wijzigingen op door op te drukken Ctrl+O en verlaat de editor met Ctrl+X sleutels.

 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 gecombineerd 

Vervolgens moeten we een Apache-mod inschakelen met de naam as mod_rewrite vereist door Magento. Het biedt een flexibele en krachtige manier om URL's te manipuleren, dus schakel de mod in door:

sudo a2enmod herschrijven

Start de Apache-server opnieuw zodat alle wijzigingen die we hebben aangebracht op de server worden toegepast:

sudo systemctl herstart apache2

Magento installeren

We kunnen eindelijk doorgaan met de Magento-installatie, aangezien we alles hebben wat Magento nodig heeft om te functioneren. Typ het IP-adres van uw Ubuntu 20.04-server in de URL-balk van uw voorkeursbrowser.

Klik op ‘Agree and Setup Magento’ om door te gaan met de Magento installatie. De eerste stap van het Magento Web-installatieprogramma is de gereedheidscontrole, het controleert of aan alle Magento-vereisten is voldaan. Klik op 'Start Readiness Check' en nadat het proces is voltooid, drukt u op 'Volgende'.

De volgende stap is het instellen van de details en het toevoegen van een database voor Magento. We hebben al een MySQL-gebruiker gemaakt voor Magento genaamd magentouser en een database genaamd magento in het bovenstaande gedeelte. Vul de juiste details in dit gedeelte in, namelijk de gebruikersnaam van de databaseserver, het wachtwoord en de databasenaam en druk vervolgens op 'Volgende' om verder te gaan.

De derde stap in de Magento setup is de webconfiguratie. Vervang het IP-adres van de invoer 'Winkeladres' door uw domeinnaam als u die heeft. Vergeet niet een schuine streep naar voren te zetten (/) achter uw domeinnaam, anders wordt de URL van het beheerdersadres ontoegankelijk.

Klik vervolgens op Geavanceerde opties en vink beide HTTPS-opties aan als je een beveiligde verbinding wilt gebruiken voor je Magento-site. Houd de rest van de instellingen zoals ze zijn en druk op volgende.

Opmerking: Als u de HTTPS-opties aanvinkt, moet u er SSL-certificaten voor krijgen. In het volgende gedeelte van deze tutorial zullen we bekijken hoe u SSL-certificaten kunt krijgen.

Onder de instellingen van 'Uw winkel aanpassen', u hoeft alleen de tijdzone, de standaardvaluta die in de winkel wordt gebruikt en de standaardtaal van de winkel te wijzigen volgens uw behoeften. Kijk rond in deze instellingen en configureer ze indien nodig, klik anders op volgende om door te gaan.

In de vijfde stap moet u een beheerdersaccount maken voor uw Magento Admin-dashboard. Voer een nieuwe gebruikersnaam in voor je beheerder en voer een e-mailadres in dat je hebt gekregen van je domeinnaamprovider. Maak een sterk wachtwoord voor het beheerdersaccount en klik op volgende als u klaar bent.

De laatste en laatste stap is om gewoon op de knop 'Installeren' te klikken om de instellingen te bevestigen en het installatieproces te starten. Wanneer de installatie is voltooid, toont de Magento-installatie u de samenvatting en enkele belangrijke details over uw Magento-site.

Noteer deze gegevens ergens veilig, zoals een offline papieren dossier of in een beveiligde database. Het Magento-beheerdersadres en de coderingssleutel mogen nooit openbaar worden gedeeld. De coderingssleutel wordt gebruikt om de Magento-database te coderen, zodat de gebruikersgegevens veilig zijn, zelfs als er een datalek is.

SSL-certificaat maken voor uw Magento-site

De Magento-site wordt geïmplementeerd en is direct toegankelijk nadat de installatie is voltooid. Maar als u webverkeer via HTTPS wilt bedienen, moet u een SSL-certificaat voor uw domein instellen.

Letsencrypt is een certificeringsinstantie zonder winstoogmerk die gratis TLS-certificaten verstrekt. We gaan een pakket gebruiken met de naam certbot wat helpt bij het verkrijgen van het certificaat en het automatisch configureren van de virtuele Apache-host. Voer deze opdracht uit in de terminal om certbot te installeren:

sudo apt install certbot python3-certbot-apache

Voer de volgende opdracht uit om uw certificaat van Letsencrypt te krijgen en de virtuele Apache-host te configureren:

sudo certbot --apache

Certbot begint met het verkrijgen van certificaten van Letsencrypt, geeft uw e-mailadres op wanneer daarom wordt gevraagd en drukt vervolgens op de enter-toets. Typ vervolgens EEN akkoord te gaan met de servicevoorwaarden van Letsencrypt. U wordt gevraagd of u uw e-mailadres met de EFF wilt delen, typ in ja of N afhankelijk van uw keuze.

Vervolgens krijgt u een lijst met domeinnamen waarvoor u HTTPS wilt activeren. Typ het juiste nummer dat overeenkomt met uw domeinnaam en druk op Enter.

Na het selecteren van uw domeinnaam, wordt u gevraagd of u HTTP-verkeer wilt omleiden naar HTTPS, typ 2 en druk op enter. Certbot configureert nu automatisch de virtuele Apache-host voor het domein voorbeeld.com.

Het Certbot-pakket wordt geleverd met cronjob die uw servercertificaten automatisch vernieuwt voordat ze verlopen.Test of de automatische verlenging werkt door het volgende uit te voeren:

sudo certbot vernieuwen --dry-run

De bovenstaande uitvoer betekent dat de cronjob voor automatische verlenging correct werkt. Om te bevestigen dat Certbot werkte, opent u uw browser en gaat u naar uw domein //voorbeeld.com.

Op dezelfde manier kunt u toegang krijgen tot de beheerdersaanmeldingspagina met behulp van de //example.com/admin_SecretString, deze URL bevond zich aan het einde van de Magento-installatie.

U hebt Magento nu met succes geïnstalleerd op de Ubuntu 20.04 LTS-server en nu kunt u beginnen met het aanpassen van uw winkel aan uw behoeften. Ga voor meer informatie over Magento en over winkelontwikkeling naar de Magento Docs-pagina.