Ändern des Stammverzeichnisses zur Verbesserung der Sicherheit
Bei einer Standardinstallation mit einem Apache-Webserver wird Adobe Commerce im Standard-Webstamm installiert: /var/www/html/magento2
.
Das magento2/
-Verzeichnis enthält Folgendes:
pub/
setup/
var/
Die Anwendung wird von /var/www/html/magento2/pub
bereitgestellt. Der Rest des Dateisystems ist anfällig, weil es von einem Browser aus zugänglich ist.
Wenn Sie den Webstamm auf das pub/
Verzeichnis setzen, können Besucher der Site von einem Browser aus nicht auf sensible Bereiche des Dateisystems zugreifen.
In diesem Thema wird beschrieben, wie Sie den Apache-Stamm in einer vorhandenen Instanz so ändern, dass Dateien aus dem sichereren pub/
bereitgestellt werden.
Ein Hinweis zu nginx
Wenn Sie nginx verwenden und die nginx.conf.sample
Datei im Installationsverzeichnis enthalten ist, stellen Sie wahrscheinlich bereits Dateien aus dem pub/
Verzeichnis bereit.
Bei Verwendung in Ihrem Server-Block, der Ihre Site definiert, überschreibt die nginx.conf.sample
-Konfiguration die docroot-Einstellungen Ihres Servers, um Dateien aus dem pub/
Verzeichnis bereitzustellen. Ein Beispiel finden Sie in der letzten 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-Stack 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. Serverkonfiguration bearbeiten
Name und Speicherort der virtuellen Host-Datei hängen davon ab, welche Apache-Version Sie ausführen. Dieses Beispiel zeigt den Namen und den Speicherort der virtuellen Host-Datei in Apache v2.4.
-
Melden Sie sich beim Anwendungs-Server an.
-
Bearbeiten der virtuellen Host-Datei:
code language-bash vim /etc/apache2/sites-available/000-default.conf
-
Fügen Sie den Pfad zu Ihrem
pub/
-Verzeichnis zurDocumentRoot
-Anweisung hinzu: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>
-
Apache neu starten:
code language-bash systemctl restart apache2
2. Aktualisieren der Basis-URL
Wenn Sie bei der Installation der Anwendung einen Verzeichnisnamen 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
durch den 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 der Anwendung 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
an.
'directories' => [
'document_root_is_pub' => true
]
Weitere Informationen finden Sie in env.phpReferenz.
4. Modi wechseln
Anwendungsmodi zu denen production
und developer
gehören, wurden entwickelt, um die Sicherheit zu verbessern und die Entwicklung zu erleichtern. Wie aus den Namen hervorgeht, sollten Sie beim Erweitern oder Anpassen der Anwendung in den developer
Modus und beim Ausführen in einer Live-Umgebung in den production
Modus wechseln.
Der Wechsel zwischen den Modi ist ein wichtiger Schritt, um zu überprüfen, ob Ihre Server-Konfiguration ordnungsgemäß funktioniert. Mit dem CLI-Tool können Sie zwischen den Modi wechseln:
-
Navigieren Sie zu Ihrem Installationsverzeichnis.
-
Wechseln Sie in den
production
.code language-bash bin/magento deploy:mode:set production
code language-bash bin/magento cache:flush
-
Aktualisieren Sie Ihren Browser und stellen Sie sicher, dass die Storefront ordnungsgemäß angezeigt wird.
-
Wechseln Sie in den
developer
.code language-bash bin/magento deploy:mode:set developer
code language-bash bin/magento cache:flush
-
Aktualisieren Sie Ihren Browser und stellen Sie sicher, dass die Storefront ordnungsgemäß angezeigt wird.
5. Überprüfen Sie die Storefront
Gehen Sie zur Storefront in einem Webbrowser, 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 sie wie folgt angezeigt wird, war Ihre Installation erfolgreich!
Siehe den Abschnitt Fehlerbehebung, wenn auf der Seite die Meldung 404 (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 Verzeichnisnamen an den Hostnamen oder die IP-Adresse Ihres Servers in der Adressleiste an:
Wenn die Meldung „Zugriff verweigert“ oder „404“ angezeigt wird, haben Sie den Zugriff auf das Dateisystem erfolgreich eingeschränkt.