[On-premise]{class="badge informative" title="Applicabile solo ai progetti locali di Adobe Commerce."}

Installare Nginx per le distribuzioni locali nginx

Questa guida illustra come installare Nginx per le distribuzioni Adobe Commerce on-premise e configurare le impostazioni Nginx richieste da Commerce. Include procedure specifiche per il sistema operativo per Ubuntu e CentOS, oltre a indicazioni per la configurazione di PHP-FPM. Adobe consiglia di seguire le istruzioni di configurazione fornite in questa guida per preservare sia la funzionalità che la sicurezza dell’applicazione Commerce.

Adobe supporta le versioni Nginx elencate nei requisiti di sistema per la versione di Adobe Commerce in uso. Le versioni supportate variano a seconda della versione. Nginx richiede anche una configurazione PHP-FPM supportata. Per i requisiti PHP correlati, vedere PHP.

Installazione su Ubuntu

Usa questa sezione per installare Adobe Commerce su Ubuntu con Nginx, PHP e MySQL.

Installa Nginx

sudo apt -y install nginx

Puoi anche generare Nginx dall'origine.

Dopo aver completato le sezioni seguenti e aver installato l'applicazione, utilizzare il file di configurazione di esempio per configurare Nginx. Questa configurazione consigliata preserva sia la funzionalità che la sicurezza dell’applicazione Commerce.

Installare e configurare PHP-FPM

Adobe Commerce richiede diverse estensioni PHP per funzionare correttamente. Oltre a queste estensioni, se utilizzi Nginx devi installare e configurare l'estensione php-fpm.

Per installare e configurare php-fpm:

  1. Installa i pacchetti php-fpm e php-cli per la versione PHP supportata dalla versione Adobe Commerce. In Ubuntu, i nomi dei pacchetti in genere seguono questo pattern:

    code language-bash
    apt-get -y install php<php-version>-fpm php<php-version>-cli
    
    note note
    NOTE
    Sostituisci <php-version> con la versione secondaria PHP supportata elencata in requisiti di sistema per la versione di Adobe Commerce che stai installando. Utilizzare lo stesso valore nei percorsi dei file, nel nome del servizio e nel percorso del socket nei passaggi seguenti.
  2. Apri i file php.ini in un editor:

    code language-bash
    vim /etc/php/<php-version>/fpm/php.ini
    
    code language-bash
    vim /etc/php/<php-version>/cli/php.ini
    
  3. Modificate entrambi i file in modo che corrispondano alle seguenti righe:

    code language-conf
    memory_limit = 2G
    max_execution_time = 1800
    zlib.output_compression = On
    
    note note
    NOTE
    Adobe consiglia di impostare il limite di memoria su 2 GB durante il test di Adobe Commerce. Per ulteriori informazioni, consultare Impostazioni PHP richieste.
  4. Salva ed esci dall’editor.

  5. Riavviare il servizio php-fpm:

    code language-bash
    systemctl restart php<php-version>-fpm
    

Installare e configurare MySQL

Per ulteriori informazioni, consultare MySQL.

Installare Adobe Commerce

Puoi scaricare Adobe Commerce in diversi modi:

Questo esempio mostra un'installazione basata su Compositore utilizzando la riga di comando.

  1. In qualità di proprietario del file system, accedi al server applicazioni.

  2. Passare alla directory principale dei documenti del server Web o a una directory configurata come directory principale dei documenti host virtuale. In questo esempio viene utilizzato il valore predefinito di Ubuntu /var/www/html.

    code language-bash
    cd /var/www/html
    
  3. Installa Compositore a livello globale. Il Compositore è necessario per aggiornare le dipendenze prima di installare Adobe Commerce:

    code language-bash
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
    
  4. Crea un progetto Compositore utilizzando il metapacchetto Adobe Commerce.

    Magento Open Source

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
    

    Adobe Commerce

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
    

    Quando richiesto, immetti le chiavi di autenticazione. La chiave pubblica è il tuo nome utente; la tua chiave privata è la tua password.

  5. Impostare le autorizzazioni di lettura/scrittura per il gruppo di server Web prima di installare l'applicazione. Ciò è necessario affinché la riga di comando possa scrivere file nel file system.

    code language-bash
    cd /var/www/html/<magento install directory>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :www-data . # Ubuntu
    
    code language-bash
    chmod u+x bin/magento
    
  6. Installa dalla riga di comando. In questo esempio si presuppone che la directory di installazione sia denominata magento2ee e che l'host del database si trovi nello stesso computer (localhost):

    code language-bash
    bin/magento setup:install \
    --base-url=http://localhost/magento2ee \
    --db-host=localhost \
    --db-name=<db-name> \
    --db-user=<db-user> \
    --db-password=<db-password> \
    --backend-frontname=<backend-uri> \
    --admin-firstname=<admin-first-name> \
    --admin-lastname=<admin-last-name> \
    --admin-email=<admin-email> \
    --admin-user=<admin-user> \
    --admin-password=<admin-password> \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1 \
    --search-engine=<search-engine-value> \
    --<search-engine-host-parameter>=search-host.example.com \
    --<search-engine-port-parameter>=9200
    
    note note
    NOTE
    Utilizza il valore --search-engine e le opzioni host/porta corrispondenti richieste dalla versione di Adobe Commerce che stai installando. Per le versioni precedenti alla 2.4.6, utilizzare elasticsearch7 con le opzioni --elasticsearch-* per Elasticsearch 7 o OpenSearch. Per le versioni 2.4.6 e successive, utilizza il valore del motore di ricerca e le opzioni CLI corrispondenti supportate da tale versione.
  7. Passa alla modalità sviluppatore:

    code language-bash
    cd /var/www/html/magento2/bin
    
    code language-bash
    ./magento deploy:mode:set developer
    

Configurare Nginx

Adobe consiglia di configurare Nginx utilizzando il file di configurazione nginx.conf.sample fornito nella directory di installazione e la configurazione dell'host virtuale Nginx per preservare sia la funzionalità che la sicurezza dell'applicazione Commerce.

IMPORTANT
Il file nginx.conf.sample fornisce il routing dell'applicazione richiesto e le regole di protezione avanzata. Ad esempio, limita l’esecuzione di script dannosi caricati sul server. Se non utilizzi questo file o non ne modifichi le regole, sei responsabile dell’implementazione di controlli di sicurezza equivalenti nella configurazione di indice personalizzata.

Queste istruzioni presuppongono l'utilizzo della posizione predefinita Ubuntu per l'host virtuale Nginx, ad esempio /etc/nginx/sites-available, e della directory principale dei documenti predefinita Ubuntu, ad esempio /var/www/html. Puoi modificare queste posizioni in base all’ambiente in uso.

  1. Crea un nuovo host virtuale per il sito:

    code language-bash
    vim /etc/nginx/sites-available/magento
    
  2. Aggiungi la seguente configurazione:

    code language-conf
    upstream fastcgi_backend {
      server  unix:/run/php/php<php-version>-fpm.sock;
    }
    
    server {
    
      listen 80;
      server_name www.magento-dev.com;
      set $MAGE_ROOT /var/www/html/magento2;
      include /var/www/html/magento2/nginx.conf.sample;
    }
    
    note note
    NOTE
    La direttiva include deve puntare al file di configurazione nginx di esempio nella directory di installazione.
  3. Sostituisci www.magento-dev.com con il tuo nome di dominio. Deve corrispondere all’URL di base specificato durante l’installazione di Adobe Commerce.

  4. Salva ed esci dall’editor.

  5. Attivare l'host virtuale appena creato creando un collegamento simbolico nella directory /etc/nginx/sites-enabled:

    code language-bash
    ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled
    
  6. Verifica che la sintassi sia corretta:

    code language-bash
    nginx -t
    
  7. Riavvia Nginx:

    code language-bash
    systemctl restart nginx
    

Verificare l'installazione

Per verificare l’installazione, apri un browser web e passa all’URL di base del sito. Per ulteriori informazioni, vedere Verificare l'installazione.

Installazione su CentOS 7

Usa questa sezione per installare Adobe Commerce su CentOS 7 con Nginx, PHP e MySQL.

Installa Nginx

yum -y install epel-release
yum -y install nginx

Al termine dell'installazione, avviare Index e configurarlo per avviarlo al momento dell'avvio:

systemctl start nginx
systemctl enable nginx

Dopo aver completato le sezioni seguenti e aver installato l’applicazione, utilizza un file di configurazione di esempio per configurare Nginx.

Installare e configurare PHP-FPM

Adobe Commerce richiede diverse estensioni PHP per funzionare correttamente. Oltre a queste estensioni, se utilizzi Nginx devi installare e configurare l'estensione php-fpm.

  1. Installa php-fpm:

    code language-bash
    yum -y install <php-fpm-package>
    
  2. Aprire il file /etc/php.ini in un editor.

    note note
    NOTE
    Installa il pacchetto che fornisce php-fpm per la versione PHP supportata dalla versione Adobe Commerce che stai installando. I nomi dei pacchetti variano a seconda dell’archivio e del sistema operativo. Consulta requisiti di sistema.
  3. Rimuovere il commento dalla riga cgi.fix_pathinfo e modificare il valore in 0.

  4. Modifica il file in modo che corrisponda alle righe seguenti:

    code language-conf
    memory_limit = 2G
    max_execution_time = 1800
    zlib.output_compression = On
    
    note note
    NOTE
    Adobe consiglia di impostare il limite di memoria su 2 GB durante il test di Adobe Commerce. Per ulteriori informazioni, consultare Impostazioni PHP richieste.
  5. Rimuovere il commento dalla directory del percorso di sessione e impostare il percorso:

    code language-conf
    session.save_path = "/var/lib/php/session"
    
  6. Salva ed esci dall’editor.

  7. Apri /etc/php-fpm.d/www.conf in un editor.

  8. Modifica il file in modo che corrisponda alle righe seguenti:

    code language-conf
    user = nginx
    group = nginx
    listen = /run/php-fpm/php-fpm.sock
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
    
  9. Rimuovi commento dalle righe ambiente:

    code language-conf
    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp
    
  10. Salva ed esci dall’editor.

  11. Creare una directory per il percorso della sessione PHP e impostare il proprietario sull'utente e sul gruppo nginx:

    code language-bash
    mkdir -p /var/lib/php/session/
    
    code language-bash
    chown -R nginx:nginx /var/lib/php/
    
  12. Creare una directory per il socket PHP-FPM e impostare il proprietario sull'utente e sul gruppo nginx:

    code language-bash
    mkdir -p /run/php-fpm/
    
    code language-bash
    chown -R nginx:nginx /run/php-fpm/
    
  13. Avviare il servizio php-fpm e configurarlo per l'avvio al momento dell'avvio:

    code language-bash
    systemctl start php-fpm
    
    code language-bash
    systemctl enable php-fpm
    
  14. Verificare che il servizio php-fpm sia in esecuzione:

    code language-bash
    netstat -pl | grep php-fpm.sock
    

Installare e configurare MySQL

Per ulteriori informazioni, consultare MySQL.

Installare Adobe Commerce

Puoi scaricare Adobe Commerce in diversi modi:

Questo esempio mostra un'installazione basata su Compositore utilizzando la riga di comando.

  1. In qualità di proprietario del file system, accedi al server applicazioni.

  2. Passare alla directory principale dei documenti del server Web o a una directory configurata come directory principale dei documenti host virtuale. Per questo esempio, utilizzare l'impostazione predefinita di CentOS /usr/share/nginx/html.

    code language-bash
    cd /usr/share/nginx/html
    
  3. Installa Compositore a livello globale. Il Compositore è necessario per aggiornare le dipendenze prima di installare Adobe Commerce:

    code language-bash
    curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
    
  4. Crea un progetto Compositore utilizzando il metapacchetto Adobe Commerce.

    Magento Open Source

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition <install-directory-name>
    

    Adobe Commerce

    code language-bash
    composer create-project --repository=https://repo.magento.com/ magento/project-enterprise-edition <install-directory-name>
    

    Quando richiesto, immetti le chiavi di autenticazione. La chiave pubblica è il tuo nome utente; la tua chiave privata è la tua password.

  5. Impostare le autorizzazioni di lettura/scrittura per il gruppo di server Web prima di installare l'applicazione. Ciò è necessario affinché la riga di comando possa scrivere file nel file system.

    code language-bash
    cd /usr/share/nginx/html/<magento install directory>
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
    
    code language-bash
    find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
    
    code language-bash
    chown -R :nginx . # CentOS
    
    code language-bash
    chmod u+x bin/magento
    
  6. Installa dalla riga di comando. In questo esempio si presuppone che la directory di installazione sia denominata magento2ee e che l'host del database si trovi nello stesso computer (localhost):

    code language-bash
    bin/magento setup:install \
    --base-url=http://localhost/magento2ee \
    --db-host=localhost \
    --db-name=<db-name> \
    --db-user=<db-user> \
    --db-password=<db-password> \
    --backend-frontname=<backend-uri> \
    --admin-firstname=<admin-first-name> \
    --admin-lastname=<admin-last-name> \
    --admin-email=<admin-email> \
    --admin-user=<admin-user> \
    --admin-password=<admin-password> \
    --language=en_US \
    --currency=USD \
    --timezone=America/Chicago \
    --use-rewrites=1
    
  7. Passa alla modalità sviluppatore:

    code language-bash
    cd /usr/share/nginx/html/magento2/bin
    
    code language-bash
    ./magento deploy:mode:set developer
    

Configurare Nginx

È consigliabile configurare Nginx utilizzando il file nginx.conf.sample nella directory di installazione e la configurazione dell'host virtuale Nginx.

IMPORTANT
Il file nginx.conf.sample fornisce il routing dell'applicazione richiesto e le regole di protezione avanzata. Ad esempio, limita l’esecuzione di script dannosi caricati sul server. Se non utilizzi questo file o non ne modifichi le regole, sei responsabile dell’implementazione di controlli di sicurezza equivalenti nella configurazione di indice personalizzata.

Queste istruzioni presuppongono l'utilizzo della posizione predefinita di CentOS per l'host virtuale Nginx, ad esempio /etc/nginx/conf.d, e della directory principale dei documenti predefinita, ad esempio /usr/share/nginx/html. Puoi modificare queste posizioni in base all’ambiente in uso.

  1. Crea un nuovo host virtuale per il sito:

    code language-bash
    vim /etc/nginx/conf.d/magento.conf
    
  2. Aggiungi la seguente configurazione:

    code language-conf
    upstream fastcgi_backend {
      server  unix:/run/php-fpm/php-fpm.sock;
    }
    
    server {
    
      listen 80;
      server_name www.magento-dev.com;
      set $MAGE_ROOT /usr/share/nginx/html/magento2;
      include /usr/share/nginx/html/magento2/nginx.conf.sample;
    }
    
    note note
    NOTE
    La direttiva include deve puntare al file di configurazione nginx di esempio nella directory di installazione.
  3. Sostituisci www.magento-dev.com con il tuo nome di dominio.

  4. Salva ed esci dall’editor.

  5. Verifica che la sintassi sia corretta:

    code language-bash
    nginx -t
    
  6. Riavvia Nginx:

    code language-bash
    systemctl restart nginx
    

Configurare SELinux e firewalld

SELinux è abilitato per impostazione predefinita su CentOS 7. Utilizza il seguente comando per confermare che è in esecuzione:

sestatus

Per configurare SELinux e firewalld:

  1. Installare gli strumenti di gestione SELinux:

    code language-bash
    yum -y install policycoreutils-python
    
  2. Eseguire i comandi seguenti per modificare il contesto di protezione per la directory di installazione:

    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/app/etc(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/var(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/media(/.*)?'
    
    code language-bash
    semanage fcontext -a -t httpd_sys_rw_content_t '/usr/share/nginx/html/magento2/pub/static(/.*)?'
    
    code language-bash
    restorecon -Rv '/usr/share/nginx/html/magento2/'
    
  3. Installare il pacchetto firewalld:

    code language-bash
    yum -y install firewalld
    
  4. Avviare il servizio firewall e configurarlo per l'avvio al momento dell'avvio:

    code language-bash
    systemctl start firewalld
    
    code language-bash
    systemctl enable firewalld
    
  5. Esegui i seguenti comandi per aprire le porte per HTTP e HTTPS in modo da poter accedere all’URL di base da un browser web:

    code language-bash
    firewall-cmd --permanent --add-service=http
    
    code language-bash
    firewall-cmd --permanent --add-service=https
    
    code language-bash
    firewall-cmd --reload
    

Verificare l'installazione

Per verificare l’installazione, apri un browser web e passa all’URL di base del sito. Per ulteriori informazioni, vedere Verificare l'installazione.

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