Basisverzeichnis zur Verbesserung der Sicherheit ändern
Bei einer Standardinstallation mit einem Apache-Webserver wird Adobe Commerce im Standardwebstamm installiert: /var/www/html/magento2
.
Das Verzeichnis magento2/
enthält Folgendes:
pub/
setup/
var/
Die Anwendung wird von /var/www/html/magento2/pub
bereitgestellt. Der Rest des Dateisystems ist anfällig, da er über einen Browser zugänglich ist.
Wenn Sie den Webstamm auf den Ordner "pub/
"setzen, wird verhindert, dass Site-Besucher von einem Browser aus auf sensible Bereiche des Dateisystems zugreifen.
In diesem Thema wird beschrieben, wie Sie das Apache-Basisverzeichnis auf einer vorhandenen Instanz ändern, um Dateien aus dem Ordner "pub/
"bereitzustellen, was sicherer ist.
Ein Hinweis zu nginx
Wenn Sie nginx und die im Installationsverzeichnis enthaltene Datei nginx.conf.sample
verwenden, werden Sie wahrscheinlich bereits Dateien aus dem Ordner pub/
bereitstellen.
Bei Verwendung in einem Serverblock, der Ihre Site definiert, überschreibt die Konfiguration nginx.conf.sample
die Basisverzeichnis-Einstellungen Ihres Servers, um Dateien aus dem Verzeichnis pub/
bereitzustellen. 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 zum Verzeichnis
pub/
zur AnweisungDocumentRoot
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>
-
Starten Sie Apache neu:
code language-bash systemctl restart apache2
2. Aktualisieren der Basis-URL
Wenn Sie einen Ordnernamen an den Hostnamen oder die IP-Adresse Ihres Servers angehängt haben, um die Basis-URL zu erstellen, wenn Sie die Anwendung installiert haben (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 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 Datei env.php
an.
'directories' => [
'document_root_is_pub' => true
]
Weitere Informationen finden Sie in der Referenz zu env.php .
4. Wechseln der Modi
Anwendungsmodi, darunter production
und developer
, dienen der Verbesserung der Sicherheit und der Erleichterung der Entwicklung. Wie die Namen nahe legen, sollten Sie beim Erweitern oder Anpassen der Anwendung in den Modus developer
wechseln und beim Ausführen in einer Live-Umgebung in den Modus production
wechseln.
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 Sie in den Modus
production
.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 Sie in den Modus
developer
.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!
Lesen Sie den Abschnitt Fehlerbehebung , wenn die Seite einen 404-Fehler (Nicht gefunden) anzeigt oder andere Assets wie Bilder, CSS und JS nicht lädt.
-
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.