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
.
Katalogen magento2/
innehåller följande:
pub/
setup/
var/
Programmet hanteras från /var/www/html/magento2/pub
. Resten av filsystemet är känsligt eftersom det är tillgängligt via en webbläsare.
Om du ställer in webbroten på katalogen pub/
hindras webbplatsbesökare från att komma åt känsliga områden i filsystemet från en webbläsare.
I det här avsnittet beskrivs hur du ändrar Apache-dokumentroten för en befintlig instans så att filer från katalogen pub/
kan hanteras, vilket är säkrare.
En anteckning om nginx
Om du använder nginx och filen nginx.conf.sample
som ingår i installationskatalogen, hanterar du förmodligen redan filer från katalogen pub/
.
När konfigurationen nginx.conf.sample
används i ett serverblock som definierar platsen åsidosätter den serverns docroot-inställningar för att hantera filer från katalogen pub/
. 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+)
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.
-
Logga in på programservern.
-
Redigera din virtuella värdfil:
code language-bash vim /etc/apache2/sites-available/000-default.conf
-
Lägg till sökvägen till din
pub/
-katalog i direktivetDocumentRoot
: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>
-
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.
192.168.33.10
med serverns värdnamn.-
Logga in i databasen:
code language-bash mysql -u <user> -p
-
Ange den databas du skapade när du installerade programmet:
code language-shell use <database-name>
-
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 filen env.php
.
'directories' => [
'document_root_is_pub' => true
]
Mer information finns i referensen env.php.
4. Växlingslägen
Programlägen, som innehåller production
och developer
, är utformade för att förbättra säkerheten och underlätta utvecklingen. Som namnen tyder på bör du växla till läget developer
när du utökar eller anpassar programmet och växla till läget production
när du kör i en live-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:
-
Gå till installationskatalogen.
-
Växla till läget
production
.code language-bash bin/magento deploy:mode:set production
code language-bash bin/magento cache:flush
-
Uppdatera webbläsaren och kontrollera att butiken visas korrekt.
-
Växla till läget
developer
.code language-bash bin/magento deploy:mode:set developer
code language-bash bin/magento cache:flush
-
Uppdatera webbläsaren och kontrollera att butiken visas korrekt.
5. Verifiera butiken
Gå till butiken i en webbläsare och kontrollera att allt fungerar.
-
Öppna en webbläsare och ange serverns värdnamn eller IP-adress i adressfältet. 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!
Se felsökningsavsnittet om sidan visar 404 (Hittades inte) eller inte kan läsa in andra resurser som bilder, CSS och JS.
-
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.