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.sample
dossier 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+)
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.
-
Meld u aan bij uw toepassingsserver.
-
Bewerk uw virtuele hostbestand:
code language-bash vim /etc/apache2/sites-available/000-default.conf
-
Voeg het pad naar de map
pub/
toe aan de aanwijzingDocumentRoot
: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>
-
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.
192.168.33.10
door de hostnaam van de server.-
Meld u aan bij de database:
code language-bash mysql -u <user> -p
-
Geef de database op die u hebt gemaakt toen u de toepassing installeerde:
code language-shell use <database-name>
-
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:
-
Ga naar de installatiemap.
-
Schakel over naar de modus
production
.code language-bash bin/magento deploy:mode:set production
code language-bash bin/magento cache:flush
-
Vernieuw de browser en controleer of de winkel goed wordt weergegeven.
-
Schakel over naar de modus
developer
.code language-bash bin/magento deploy:mode:set developer
code language-bash bin/magento cache:flush
-
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.
-
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!
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.
-
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.