Basisverzeichnis zur Verbesserung der Sicherheit ändern
Bei einer Standardinstallation mit einem Apache-Webserver wird Adobe Commerce im Standardwebstamm installiert: /var/www/html/magento2
.
Die magento2/
-Verzeichnis enthält Folgendes:
pub/
setup/
var/
Der Antrag wird von /var/www/html/magento2/pub
. Der Rest des Dateisystems ist anfällig, da er über einen Browser zugänglich ist.
Festlegen des Webstamms auf pub/
verhindert, dass Site-Besucher über einen Browser auf sensible Bereiche des Dateisystems zugreifen.
Hier wird beschrieben, wie Sie das Apache-Basisverzeichnis auf einer vorhandenen Instanz ändern, um Dateien aus dem pub/
-Verzeichnis, das sicherer ist.
Ein Hinweis zu nginx
Wenn Sie nginx und nginx.conf.sample
-Datei im Installationsverzeichnis enthalten ist, werden Sie wahrscheinlich bereits Dateien aus dem pub/
Verzeichnis.
Bei Verwendung in Ihrem Serverblock, der Ihre Site definiert, wird die Variable nginx.conf.sample
-Konfiguration überschreibt die Basisverzeichnis-Einstellungen Ihres Servers, um Dateien aus dem pub/
Verzeichnis. Siehe beispielsweise die letzte Zeile in der folgenden Konfiguration:
# /etc/nginx/sites-available/magento
upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}
server {
listen 80;
server_name 192.168.33.10;
set $MAGE_ROOT /var/www/html/magento2ce;
include /var/www/html/magento2ce/nginx.conf.sample;
}
Bevor Sie beginnen
Um dieses Tutorial abzuschließen, benötigen Sie Zugriff auf eine funktionierende Installation, die auf einem LAMP-Stapel ausgeführt wird:
- Linux
- Apache (2.4+)
- MySQL (5.7+)
- PHP (7.4)
- Elasticsearch (7.x) oder OpenSearch (1.2)
- Adobe Commerce (2.4+)
1. Bearbeiten der Serverkonfiguration
Der Name und der Speicherort Ihrer Virtual-Host-Datei hängt davon ab, welche Version von Apache Sie ausführen. Dieses Beispiel zeigt den Namen und den Speicherort der virtuellen Host-Datei auf Apache v2.4.
-
Melden Sie sich bei Ihrem Anwendungsserver an.
-
Bearbeiten Sie Ihre virtuelle Host-Datei:
code language-bash vim /etc/apache2/sites-available/000-default.conf
-
Fügen Sie den Pfad zu Ihrem
pub/
Verzeichnis inDocumentRoot
Richtlinie:code language-conf <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/magento2ce/pub ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html"> AllowOverride all </Directory> </VirtualHost>
-
Starten Sie Apache neu:
code language-bash systemctl restart apache2
2. Aktualisieren der Basis-URL
Wenn Sie beim Installieren der Anwendung einen Ordnernamen an den Hostnamen oder die IP-Adresse Ihres Servers angehängt haben, um die Basis-URL zu erstellen (z. B. http://192.168.33.10/magento2
), müssen Sie sie entfernen.
192.168.33.10
mit dem Hostnamen Ihres Servers.-
Melden Sie sich bei der Datenbank an:
code language-bash mysql -u <user> -p
-
Geben Sie die Datenbank an, die Sie bei der Installation des Programms erstellt haben:
code language-shell use <database-name>
-
Aktualisieren Sie die Basis-URL:
code language-shell UPDATE core_config_data SET value='http://192.168.33.10' WHERE path='web/unsecure/base_url';
3. Aktualisieren Sie die Datei env.php .
Hängen Sie den folgenden Knoten an die env.php
-Datei.
'directories' => [
'document_root_is_pub' => true
]
Siehe Abschnitt env.php-Referenz für weitere Informationen.
4. Wechseln der Modi
Anwendungsmodi, zu denen production
und developer
, die die Sicherheit verbessern und die Entwicklung erleichtern sollen. Wie die Namen nahe legen, sollten Sie zu developer
Modus beim Erweitern oder Anpassen der Anwendung und Wechseln zu production
-Modus, wenn sie in einer Live-Umgebung ausgeführt wird.
Der Wechsel zwischen den Modi ist ein wichtiger Schritt, um zu überprüfen, ob Ihre Serverkonfiguration ordnungsgemäß funktioniert. Sie können mit dem CLI-Tool zwischen den Modi wechseln:
-
Wechseln Sie zu Ihrem Installationsverzeichnis.
-
Wechseln zu
production
-Modus.code language-bash bin/magento deploy:mode:set production
code language-bash bin/magento cache:flush
-
Aktualisieren Sie Ihren Browser und überprüfen Sie, ob die Storefront korrekt angezeigt wird.
-
Wechseln zu
developer
-Modus.code language-bash bin/magento deploy:mode:set developer
code language-bash bin/magento cache:flush
-
Aktualisieren Sie Ihren Browser und überprüfen Sie, ob die Storefront korrekt angezeigt wird.
5. Überprüfen der Storefront
Gehen Sie in die Storefront eines Webbrowsers, um zu überprüfen, ob alles funktioniert.
-
Öffnen Sie einen Webbrowser und geben Sie den Hostnamen oder die IP-Adresse Ihres Servers in die Adressleiste ein. Beispiel:
http://192.168.33.10
.Die folgende Abbildung zeigt eine Beispiel-Storefront-Seite. Wenn es wie folgt angezeigt wird, war Ihre Installation ein Erfolg!
Siehe Abschnitt Fehlerbehebung , wenn auf der Seite ein 404-Fehler (Nicht gefunden) angezeigt wird oder andere Assets wie Bilder, CSS und JS nicht geladen werden können.
-
Versuchen Sie, über einen Browser auf ein Anwendungsverzeichnis zuzugreifen. Hängen Sie den Ordnernamen an den Hostnamen oder die IP-Adresse Ihres Servers in der Adressleiste an:
Wenn die Meldung 404 oder "Zugriff verweigert"angezeigt wird, haben Sie den Zugriff auf das Dateisystem erfolgreich eingeschränkt.