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+)
NOTE
Siehe Abschnitt Voraussetzungen und Installationsanleitung für weitere Informationen.

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 zu Ihrem pub/ Verzeichnis in DocumentRoot 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>
    
  4. 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.

NOTE
Ersetzen 192.168.33.10 mit dem 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 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:

  1. Wechseln Sie zu Ihrem Installationsverzeichnis.

  2. Wechseln zu production -Modus.

    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 zu developer -Modus.

    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

    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.

  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