Modifica la directory principale dei documenti per migliorare la sicurezza
In un'installazione standard con un server Web Apache, Adobe Commerce viene installato nella directory principale Web predefinita: /var/www/html/magento2
.
La directory magento2/
contiene quanto segue:
pub/
setup/
var/
L'applicazione è servita da /var/www/html/magento2/pub
. Il resto del file system è vulnerabile perché è accessibile da un browser.
L'impostazione della directory Web pub/
impedisce ai visitatori del sito di accedere ad aree sensibili del file system da un browser.
In questo argomento viene descritto come modificare la directory principale dei documenti Apache in un'istanza esistente per distribuire i file dalla directory pub/
, che è più sicura.
Nota sull'indice
Se si utilizza nginx e il file nginx.conf.sample
incluso nella directory di installazione, è probabile che si stiano già distribuendo file dalla directory pub/
.
Se utilizzata nel blocco del server che definisce il sito, la configurazione di nginx.conf.sample
sostituisce le impostazioni della directory principale dei documenti del server per distribuire i file dalla directory di pub/
. Ad esempio, vedi l’ultima riga nella seguente configurazione:
# /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;
}
Prima di iniziare
Per completare questa esercitazione, è necessario accedere a un'installazione funzionante in esecuzione su uno stack LAMP:
- Linux
- Apache (2.4+)
- MySQL (5.7+)
- PHP (7.4)
- Elasticsearch (7.x) o OpenSearch (1.2)
- Adobe Commerce (2.4+)
1. Modifica la configurazione del server
Il nome e la posizione del file host virtuale dipendono dalla versione di Apache in esecuzione. Questo esempio mostra il nome e la posizione del file host virtuale in Apache v2.4.
-
Accedere al server applicazioni.
-
Modifica il file host virtuale:
code language-bash vim /etc/apache2/sites-available/000-default.conf
-
Aggiungere il percorso della directory
pub/
alla direttivaDocumentRoot
: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>
-
Riavvia Apache:
code language-bash systemctl restart apache2
2. Aggiorna l’URL di base
Se si è aggiunto un nome di directory al nome host o all'indirizzo IP del server per creare l'URL di base al momento dell'installazione dell'applicazione (ad esempio http://192.168.33.10/magento2
), è necessario rimuoverlo.
192.168.33.10
con il nome host del server.-
Accedi al database:
code language-bash mysql -u <user> -p
-
Specificare il database creato al momento dell'installazione dell'applicazione:
code language-shell use <database-name>
-
Aggiornare l’URL di base:
code language-shell UPDATE core_config_data SET value='http://192.168.33.10' WHERE path='web/unsecure/base_url';
3. Aggiornare il file env.php
Aggiungere il nodo seguente al file env.php
.
'directories' => [
'document_root_is_pub' => true
]
Per ulteriori informazioni, fare riferimento al riferimento env.php.
4. Cambiare modalità
Le modalità applicazione, che includono production
e developer
, sono progettate per migliorare la sicurezza e semplificare lo sviluppo. Come suggeriscono i nomi, è necessario passare alla modalità developer
quando si estende o si personalizza l'applicazione e passare alla modalità production
quando l'esecuzione avviene in un ambiente live.
Il passaggio da una modalità all’altra è un passaggio importante per verificare che la configurazione del server funzioni correttamente. È possibile passare da una modalità all'altra utilizzando lo strumento CLI:
-
Vai alla directory di installazione.
-
Passa alla modalità
production
.code language-bash bin/magento deploy:mode:set production
code language-bash bin/magento cache:flush
-
Aggiorna il browser e verifica che la vetrina sia visualizzata correttamente.
-
Passa alla modalità
developer
.code language-bash bin/magento deploy:mode:set developer
code language-bash bin/magento cache:flush
-
Aggiorna il browser e verifica che la vetrina sia visualizzata correttamente.
5. Verificare la vetrina
Vai alla vetrina in un browser web per verificare che tutto funzioni.
-
Apri un browser web e immetti il nome host o l’indirizzo IP del server nella barra degli indirizzi. Ad esempio,
http://192.168.33.10
.La figura seguente mostra una pagina di vetrina di esempio. Se viene visualizzato come segue, l'installazione è stata completata correttamente.
Consulta la sezione per la risoluzione dei problemi se nella pagina viene visualizzato il valore 404 (Non trovato) o se non è possibile caricare altre risorse come immagini, CSS e JS.
-
Provare ad accedere a una directory dell'applicazione da un browser. Aggiungi il nome della directory al nome host o all’indirizzo IP del server nella barra degli indirizzi:
Se viene visualizzato il messaggio 404 o "Accesso negato", l'accesso al file system è stato limitato.