Magento Installation auf Debian 11

Magento ist eine kostenlose und quelloffene E-Commerce-Anwendung, mit der du deinen Onlineshop betreiben kannst. Es ist in PHP geschrieben und nutzt das Zend-Framework. Es ist vielseitig und skalierbar und eignet sich daher für kleine, mittlere und große Läden. Du kannst damit ein voll funktionsfähiges Online-Warenkorbsystem hosten, ohne dass du Programmierkenntnisse brauchst. Aufgrund seiner Einfachheit und Benutzerfreundlichkeit wird es von Tausenden von Online-Shops genutzt.

In diesem Tutorial zeige ich dir, wie du Magento2 auf Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Installiere Apache, PHP und andere benötigte Erweiterungen

Zunächst musst du Apache, PHP und andere notwendige PHP-Erweiterungen auf deinem Server installieren. Du kannst sie alle mit dem folgenden Befehl installieren:

apt-get install apache2 php libapache2-mod-php php-common php-gmp php-curl php-soap php-bcmath php-intl php-mbstring php-xmlrpc php-mysql php-gd php-xml php-cli php-zip -y

Sobald alle Pakete installiert sind, bearbeite die Datei php.ini und ändere einige Standardeinstellungen:

nano /etc/php/7.4/apache2/php.ini

Ändere die folgenden Werte:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 128M
max_execution_time = 3600

Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

MySQL-Server installieren und konfigurieren

Magento2 verwendet MariaDB oder MySQL als Datenbank-Backend. Standardmäßig ist die Version 10.5 von MariaDB im Standard-Repository von Debian 11 enthalten, die von Magento2 nicht unterstützt wird. Daher musst du MySQL Server 8 auf deinem Server installieren.

Lade zunächst die MySQL-Paketdatei mit dem folgenden Befehl herunter:

wget https://repo.mysql.com//mysql-apt-config_0.8.18-1_all.deb

Danach installierst du sie mit dem folgenden Befehl:

apt install ./mysql-apt-config_0.8.18-1_all.deb -y

Du wirst aufgefordert, die MySQL-Version auszuwählen, die du installieren möchtest:

MySQL installieren

Wähle MySQL Server 8 und klicke auf die Schaltfläche OK.

Als nächstes aktualisierst du das Repository und installierst den MySQL Server 8 mit folgendem Befehl:

apt-get update -y
apt-get install mysql-server -y

Sobald MySQL installiert ist, verbindest du dich mit folgendem Befehl mit dem MySQL-Server:

mysql -u root -p

Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer für Magento2 mit dem folgenden Befehl:

mysql> CREATE DATABASE magento2;
mysql> CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'password';

Als Nächstes erteilst du der Magento2-Datenbank alle Berechtigungen:

mysql> GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost';

Als Nächstes löschst du die Berechtigungen und verlässt MySQL mit folgendem Befehl:

mysql> FLUSH PRIVILEGES;
mysql> EXIT;

Wenn du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Installiere Composer

Composer ist ein Abhängigkeitsmanager für PHP, mit dem du die für dein Projekt benötigten PHP-Abhängigkeiten verwalten kannst.

Installiere zunächst das Kommandozeilentool curl mit dem folgenden Befehl:

apt-get install curl -y

Als Nächstes installierst du den Composer mit dem folgenden Befehl:

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

Du erhältst die folgende Ausgabe:

All settings correct for using Composer
Downloading...

Composer (version 2.1.12) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Als Nächstes überprüfst du die Version des Composers mit dem folgenden Befehl:

composer --version

Du solltest die folgende Ausgabe sehen:

Composer version 2.1.12 2021-11-09 16:02:04

Magento2 installieren

Wechsle als Nächstes in das Apache-Web-Root-Verzeichnis und lade die neueste Version von Magento2 mit dem folgenden Befehl herunter:

cd /var/www/html
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2

Du wirst aufgefordert, deinen Magento-Benutzernamen und dein Passwort einzugeben (siehe unten):

Creating a "magento/project-community-edition" project at "./magento2"
Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html
    Authentication required (repo.magento.com):
      Username: a6b333ad41629bac913eaabb9b8e053c
      Password: 

Gib den öffentlichen Schlüssel als Benutzernamen und den privaten Schlüssel als Passwort ein und drücke die Eingabetaste. Du erhältst die folgende Ausgabe:

Do you want to store credentials for repo.magento.com in /root/.config/composer/auth.json ? [Yn] Y
Installing magento/project-community-edition (2.4.3-p1)
  - Downloading magento/project-community-edition (2.4.3-p1)
  - Installing magento/project-community-edition (2.4.3-p1): Extracting archive
Created project in /var/www/html/magento2
Loading composer repositories with package information

Lege als Nächstes die richtigen Berechtigungen und Eigentümer von Magento2 und anderen Verzeichnissen fest:

chown -R www-data:www-data /var/www/html/magento2/
cd /var/www/html/magento2
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chown -R :www-data . 
chmod u+x bin/magento

Als Nächstes deaktivierst du das Elasticsearch-Modul mit folgendem Befehl:

php bin/magento module:disable {Magento_Elasticsearch,Magento_InventoryElasticsearch,Magento_Elasticsearch6,Magento_Elasticsearch7}

Du erhältst die folgende Ausgabe:

The following modules have been disabled:
- Magento_Elasticsearch
- Magento_Elasticsearch6
- Magento_InventoryElasticsearch
- Magento_Elasticsearch7

Cache cleared successfully.
Generated classes cleared successfully. Please run the 'setup:di:compile' command to generate classes.
Info: Some modules might require static view files to be cleared. To do this, run 'module:disable' with the --clear-static-content option to clear them.

Als Nächstes installierst du Magento2 mit dem folgenden Befehl:

bin/magento setup:install --base-url=http://magento.example.com --db-host=localhost --db-name=magento2 --db-user=magento2 --db-password=password --admin-firstname=admin --admin-lastname=admin --admin-email=admin@example.com --admin-user=admin --admin-password=Secure@password123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1

Sobald Magento2 installiert ist, solltest du die folgende Ausgabe sehen:

Module 'Vertex_AddressValidation':
[Progress: 1363 / 1370]
Module 'Yotpo_Yotpo':
[Progress: 1364 / 1370]
Enabling caches:
Current status:
layout: 1
block_html: 1
full_page: 1
[Progress: 1365 / 1370]
Installing admin user...
[Progress: 1366 / 1370]
Caches clearing:
Cache cleared successfully
[Progress: 1367 / 1370]
Disabling Maintenance Mode:
[Progress: 1368 / 1370]
Post installation file permissions check...
For security, remove write permissions from these directories: '/var/www/html/magento2/app/etc'
[Progress: 1369 / 1370]
Write installation date...
[Progress: 1370 / 1370]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_fgadpx
Nothing to import.

Hinweis: Bitte merke dir die Magento2 Admin URI aus der obigen Ausgabe. Du musst sie verwenden, um auf die Magento-Weboberfläche zuzugreifen.

Als Nächstes deaktivierst du die Magento2 Zwei-Faktor-Authentifizierung, löschst den Cache und installierst den Cron mit den folgenden Befehlen:

sudo -u www-data bin/magento module:disable Magento_TwoFactorAuth
sudo -u www-data bin/magento cache:flush
sudo -u www-data bin/magento cron:install

Sobald du damit fertig bist, kannst du mit dem nächsten Schritt fortfahren.

Erstellen einer Apache Virtual Host Konfigurationsdatei

Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Apache-Host für Magento2 erstellen. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/apache2/sites-available/magento2.conf

Füge die folgenden Zeilen ein:

<VirtualHost *:80>
     ServerAdmin admin@example.com
      DocumentRoot /var/www/html/magento2/
     ServerName magento.example.com

     <Directory /var/www/html/magento2/>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/magento2_error.log
     CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined

</VirtualHost>

Speichere und schließe die Datei und aktiviere den virtuellen Magento-Host und das Apache-Rewrite-Modul mit dem folgenden Befehl:

a2ensite magento2.conf
a2enmod rewrite

Starte abschließend den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Du kannst den Apache-Status auch mit dem folgenden Befehl überprüfen:

systemctl status apache2

Du solltest die folgende Ausgabe sehen:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-11-20 06:00:59 UTC; 4s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 18394 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 18398 (apache2)
      Tasks: 6 (limit: 4679)
     Memory: 15.1M
        CPU: 99ms
     CGroup: /system.slice/apache2.service
             ??18398 /usr/sbin/apache2 -k start
             ??18399 /usr/sbin/apache2 -k start
             ??18400 /usr/sbin/apache2 -k start
             ??18401 /usr/sbin/apache2 -k start
             ??18402 /usr/sbin/apache2 -k start
             ??18403 /usr/sbin/apache2 -k start

Nov 20 06:00:59 debian11 systemd[1]: Starting The Apache HTTP Server...

Zugriff auf das Magento2 Web Interface

Öffne nun deinen Webbrowser und rufe die Magento2-Admin-Oberfläche über die URL http://magento.example.com/admin_fgadpx auf. Du solltest die Magento2-Anmeldeseite sehen:

Magento Anmeldung

Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Login. Auf der folgenden Seite solltest du das Magento2 Dashboard sehen:

Magento Dashboard

Fazit

Glückwunsch! Du hast Magento2 erfolgreich auf Debian 11 installiert. Jetzt kannst du deinen Online-Shop ganz einfach mit Magento hosten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …