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:
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:
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:
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.