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+)
NOTE
Weitere Informationen finden Sie unter Voraussetzungen und im Installationshandbuch .

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.

  1. Melden Sie sich bei Ihrem Anwendungsserver an.

  2. Bearbeiten Sie Ihre virtuelle Host-Datei:

    code language-bash
    vim /etc/apache2/sites-available/000-default.conf
    
  3. Fügen Sie den Pfad zum Verzeichnis pub/ zur Anweisung DocumentRoot 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>
    
  4. 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.

NOTE
Ersetzen Sie 192.168.33.10 durch den Hostnamen Ihres Servers.
  1. Melden Sie sich bei der Datenbank an:

    code language-bash
    mysql -u <user> -p
    
  2. Geben Sie die Datenbank an, die Sie bei der Installation des Programms erstellt haben:

    code language-shell
    use <database-name>
    
  3. 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:

  1. Wechseln Sie zu Ihrem Installationsverzeichnis.

  2. Wechseln Sie in den Modus production .

    code language-bash
    bin/magento deploy:mode:set production
    
    code language-bash
    bin/magento cache:flush
    
  3. Aktualisieren Sie Ihren Browser und überprüfen Sie, ob die Storefront korrekt angezeigt wird.

  4. Wechseln Sie in den Modus developer .

    code language-bash
    bin/magento deploy:mode:set developer
    
    code language-bash
    bin/magento cache:flush
    
  5. 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.

  1. Ö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!

    Storefront, die eine erfolgreiche Installation überprüft

    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.

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

    Zugriff verweigert

recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995