Documenthoofdmap wijzigen om de beveiliging te verbeteren

In een standaardinstallatie met een Apache-webserver wordt Adobe Commerce geïnstalleerd als de standaardhoofdmap van het web: /var/www/html/magento2 .

De map magento2/ bevat het volgende:

  • pub/
  • setup/
  • var/

De toepassing wordt vanuit /var/www/html/magento2/pub verzonden. De rest van het bestandssysteem is kwetsbaar omdat het vanuit een browser toegankelijk is.
Als u de webroot instelt op de map pub/ , hebben sitebezoekers geen toegang tot gevoelige gebieden van het bestandssysteem vanuit een browser.

In dit onderwerp wordt beschreven hoe u de Apache-hoofdmap van een bestaande instantie wijzigt om bestanden uit de map pub/ te bedienen. Deze map is veiliger.

Een opmerking over nginx

Als u nginxen het nginx.conf.sampledossier inbegrepen in de installatiemap gebruikt, dient u waarschijnlijk reeds dossiers van de pub/ folder.

Wanneer de configuratie van nginx.conf.sample wordt gebruikt in uw serverblok dat uw site definieert, worden de hoofdmapinstellingen van uw server genegeerd om bestanden uit de map van pub/ te bedienen. Zie bijvoorbeeld de laatste regel in de volgende configuratie:

# /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;
}

Voordat u begint

Als u deze zelfstudie wilt voltooien, hebt u toegang nodig tot een werkende installatie die op een LAMP-stapel wordt uitgevoerd:

  • Linux
  • Apache (2.4+)
  • MySQL (5.7+)
  • PHP (7.4)
  • Elasticsearch (7.x) of OpenSearch (1.2)
  • Adobe Commerce (2.4+)
NOTE
Verwijs naar Eerste vereistenen de Gids van de Installatievoor meer informatie.

1. De serverconfiguratie bewerken

De naam en locatie van het virtuele hostbestand zijn afhankelijk van de versie van Apache die u uitvoert. In dit voorbeeld worden de naam en locatie van het virtuele hostbestand op Apache v2.4 weergegeven.

  1. Meld u aan bij uw toepassingsserver.

  2. Bewerk uw virtuele hostbestand:

    code language-bash
    vim /etc/apache2/sites-available/000-default.conf
    
  3. Voeg het pad naar de map pub/ toe aan de aanwijzing DocumentRoot :

    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. Apache opnieuw starten:

    code language-bash
    systemctl restart apache2
    

2. Werk uw basis-URL bij

Als u een mapnaam aan de hostnaam of het IP-adres van de server hebt toegevoegd om de basis-URL te maken wanneer u de toepassing hebt geïnstalleerd (bijvoorbeeld http://192.168.33.10/magento2 ), moet u deze verwijderen.

NOTE
Vervang 192.168.33.10 door de hostnaam van de server.
  1. Meld u aan bij de database:

    code language-bash
    mysql -u <user> -p
    
  2. Geef de database op die u hebt gemaakt toen u de toepassing installeerde:

    code language-shell
    use <database-name>
    
  3. De basis-URL bijwerken:

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

3. Werk het bestand env.php bij

Voeg het volgende knooppunt toe aan het env.php -bestand.

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

Verwijs naar de {🔗 verwijzing 0} env.php voor meer informatie.

4. Overschakelmodi

de wijzen van de Toepassing, die production en developer omvatten, worden ontworpen om veiligheid te verbeteren en ontwikkeling gemakkelijker te maken. Zoals de namen suggereren, moet u overschakelen op de modus developer wanneer u de toepassing uitbreidt of aanpast en overschakelen op de modus production wanneer u in een live omgeving werkt.

Het schakelen tussen wijzen is een belangrijke stap om te verifiëren dat uw serverconfiguratie behoorlijk werkt. U kunt tussen wijzen schakelen gebruikend het CLI hulpmiddel:

  1. Ga naar de installatiemap.

  2. Schakel over naar de modus production .

    code language-bash
    bin/magento deploy:mode:set production
    
    code language-bash
    bin/magento cache:flush
    
  3. Vernieuw de browser en controleer of de winkel goed wordt weergegeven.

  4. Schakel over naar de modus developer .

    code language-bash
    bin/magento deploy:mode:set developer
    
    code language-bash
    bin/magento cache:flush
    
  5. Vernieuw de browser en controleer of de winkel goed wordt weergegeven.

5. Controleer de opslagplaats

Ga naar de winkel in webbrowser om te controleren of alles werkt.

  1. Open een webbrowser en voer op de adresbalk de hostnaam of het IP-adres van de server in. Bijvoorbeeld http://192.168.33.10 .

    In de volgende afbeelding ziet u een voorbeeldwinkelpagina. Als het als volgt toont, was uw installatie een succes!

    Storefront die een succesvolle installatie verifieert

    Verwijs naar de het oplossen van problemensectieals de pagina 404 (niet Gevonden) toont of er niet in slaagt om andere activa zoals beelden, CSS, en JS te laden.

  2. Probeer een toepassingsmap vanuit een browser te openen. Voeg de mapnaam toe aan de hostnaam of het IP-adres van de server op de adresbalk:

    Als u een bericht van 404 of "Toegang ontkend"ziet, hebt u met succes toegang tot het dossiersysteem beperkt.

    Ontkende Toegang

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