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+)
NOTE
Per ulteriori informazioni, consultare Prerequisiti e la Guida all'installazione.

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.

  1. Accedere al server applicazioni.

  2. Modifica il file host virtuale:

    code language-bash
    vim /etc/apache2/sites-available/000-default.conf
    
  3. Aggiungere il percorso della directory pub/ alla direttiva 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. 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.

NOTE
Sostituisci 192.168.33.10 con il nome host del server.
  1. Accedi al database:

    code language-bash
    mysql -u <user> -p
    
  2. Specificare il database creato al momento dell'installazione dell'applicazione:

    code language-shell
    use <database-name>
    
  3. 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:

  1. Vai alla directory di installazione.

  2. Passa alla modalità production.

    code language-bash
    bin/magento deploy:mode:set production
    
    code language-bash
    bin/magento cache:flush
    
  3. Aggiorna il browser e verifica che la vetrina sia visualizzata correttamente.

  4. Passa alla modalità developer.

    code language-bash
    bin/magento deploy:mode:set developer
    
    code language-bash
    bin/magento cache:flush
    
  5. 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.

  1. 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.

    Storefront che verifica la corretta installazione

    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.

  2. 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.

    Accesso negato

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