Förbättra säkerheten genom att ändra dokumentroten

I en standardinstallation med en Apache-webbserver installeras Adobe Commerce i standardwebbroten: /var/www/html/magento2.

The magento2/ katalogen innehåller följande:

  • pub/
  • setup/
  • var/

Ansökan kommer från /var/www/html/magento2/pub. Resten av filsystemet är känsligt eftersom det är tillgängligt via en webbläsare.
Ange webbroten på pub/ -katalogen förhindrar besökare från att komma åt känsliga delar av filsystemet via en webbläsare.

I det här avsnittet beskrivs hur du ändrar Apache-dokumentroten för en befintlig instans för att hantera filer från pub/ katalog, vilket är säkrare.

En anteckning om nginx

Om du använder nginx och nginx.conf.sample filen som finns i installationskatalogen. Du hanterar förmodligen redan filer från pub/ katalog.

När den används i ett serverblock som definierar din plats, nginx.conf.sample konfigurationen åsidosätter serverns dokumentrotinställningar för att hantera filer från pub/ katalog. Se till exempel den sista raden i följande 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;
}

Innan du börjar

För att slutföra den här självstudiekursen behöver du tillgång till en fungerande installation som körs på en LAMP-stack:

  • Linux
  • Apache (2.4+)
  • MySQL (5.7+)
  • PHP (7.4)
  • Elasticsearch (7.x) eller OpenSearch (1.2)
  • Adobe Commerce (2.4+)
NOTE
Se Förutsättningar och Installationshandbok för mer information.

1. Redigera serverkonfigurationen

Namnet på och platsen för den virtuella värdfilen beror på vilken version av Apache du kör. I det här exemplet visas namnet och platsen för den virtuella värdfilen på Apache v2.4.

  1. Logga in på programservern.

  2. Redigera din virtuella värdfil:

    code language-bash
    vim /etc/apache2/sites-available/000-default.conf
    
  3. Lägg till sökvägen till pub/ till DocumentRoot direktiv:

    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. Starta om Apache:

    code language-bash
    systemctl restart apache2
    

2. Uppdatera din bas-URL

Om du lade till ett katalognamn till serverns värdnamn eller IP-adress för att skapa bas-URL:en när du installerade programmet (till exempel http://192.168.33.10/magento2) måste du ta bort den.

NOTE
Ersätt 192.168.33.10 med serverns värdnamn.
  1. Logga in i databasen:

    code language-bash
    mysql -u <user> -p
    
  2. Ange den databas du skapade när du installerade programmet:

    code language-shell
    use <database-name>
    
  3. Uppdatera bas-URL:

    code language-shell
    UPDATE core_config_data SET value='http://192.168.33.10' WHERE path='web/unsecure/base_url';
    

3. Uppdatera filen env.php.

Lägg till följande nod i env.php -fil.

'directories' => [
    'document_root_is_pub' => true
]

Se env.php reference för mer information.

4. Växlingslägen

Programlägen, som innehåller production och developer, har utformats för att förbättra säkerheten och underlätta utvecklingen. Du bör växla till developer läge när du utökar eller anpassar programmet och växlar till production när du kör i en aktiv miljö.

Att växla mellan lägen är ett viktigt steg när du vill verifiera att serverkonfigurationen fungerar som den ska. Du kan växla mellan lägena med CLI-verktyget:

  1. Gå till installationskatalogen.

  2. Växla till production läge.

    code language-bash
    bin/magento deploy:mode:set production
    
    code language-bash
    bin/magento cache:flush
    
  3. Uppdatera webbläsaren och kontrollera att butiken visas korrekt.

  4. Växla till developer läge.

    code language-bash
    bin/magento deploy:mode:set developer
    
    code language-bash
    bin/magento cache:flush
    
  5. Uppdatera webbläsaren och kontrollera att butiken visas korrekt.

5. Verifiera butiken

Gå till butiken i en webbläsare och kontrollera att allt fungerar.

  1. Öppna en webbläsare och ange serverns värdnamn eller IP-adress i adressfältet. Till exempel: http://192.168.33.10.

    I bilden nedan visas ett exempel på en butikssida. Om den visas på följande sätt har installationen lyckats!

    Storefront som verifierar en lyckad installation

    Se felsökningsavsnitt om sidan visar 404 (Hittades inte) eller inte kan läsa in andra resurser som bilder, CSS och JS.

  2. Försök att komma åt en programkatalog från en webbläsare. Lägg till katalognamnet i serverns värdnamn eller IP-adress i adressfältet:

    Om du ser ett 404-meddelande eller meddelandet"Åtkomst nekad" har du begränsat åtkomsten till filsystemet.

    Åtkomst nekad

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