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:
-
Installa i pacchetti
php-fpmephp-cliper 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>-clinote 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. -
Apri i file
php.iniin un editor:code language-bash vim /etc/php/<php-version>/fpm/php.inicode language-bash vim /etc/php/<php-version>/cli/php.ini -
Modificate entrambi i file in modo che corrispondano alle seguenti righe:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote 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. -
Salva ed esci dall’editor.
-
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.
-
In qualità di proprietario del file system, accedi al server applicazioni.
-
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 -
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 -
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.
-
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 . # Ubuntucode language-bash chmod u+x bin/magento -
Installa dalla riga di comando. In questo esempio si presuppone che la directory di installazione sia denominata
magento2eee 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>=9200note note NOTE Utilizza il valore --search-enginee le opzioni host/porta corrispondenti richieste dalla versione di Adobe Commerce che stai installando. Per le versioni precedenti alla 2.4.6, utilizzareelasticsearch7con 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. -
Passa alla modalità sviluppatore:
code language-bash cd /var/www/html/magento2/bincode 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.
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.
-
Crea un nuovo host virtuale per il sito:
code language-bash vim /etc/nginx/sites-available/magento -
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 includedeve puntare al file di configurazione nginx di esempio nella directory di installazione. -
Sostituisci
www.magento-dev.comcon il tuo nome di dominio. Deve corrispondere all’URL di base specificato durante l’installazione di Adobe Commerce. -
Salva ed esci dall’editor.
-
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 -
Verifica che la sintassi sia corretta:
code language-bash nginx -t -
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.
-
Installa
php-fpm:code language-bash yum -y install <php-fpm-package> -
Aprire il file
/etc/php.iniin un editor.note note NOTE Installa il pacchetto che fornisce php-fpmper 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. -
Rimuovere il commento dalla riga
cgi.fix_pathinfoe modificare il valore in0. -
Modifica il file in modo che corrisponda alle righe seguenti:
code language-conf memory_limit = 2G max_execution_time = 1800 zlib.output_compression = Onnote 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. -
Rimuovere il commento dalla directory del percorso di sessione e impostare il percorso:
code language-conf session.save_path = "/var/lib/php/session" -
Salva ed esci dall’editor.
-
Apri
/etc/php-fpm.d/www.confin un editor. -
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 -
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 -
Salva ed esci dall’editor.
-
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/ -
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/ -
Avviare il servizio
php-fpme configurarlo per l'avvio al momento dell'avvio:code language-bash systemctl start php-fpmcode language-bash systemctl enable php-fpm -
Verificare che il servizio
php-fpmsia 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.
-
In qualità di proprietario del file system, accedi al server applicazioni.
-
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 -
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 -
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.
-
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 . # CentOScode language-bash chmod u+x bin/magento -
Installa dalla riga di comando. In questo esempio si presuppone che la directory di installazione sia denominata
magento2eee 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 -
Passa alla modalità sviluppatore:
code language-bash cd /usr/share/nginx/html/magento2/bincode 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.
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.
-
Crea un nuovo host virtuale per il sito:
code language-bash vim /etc/nginx/conf.d/magento.conf -
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 includedeve puntare al file di configurazione nginx di esempio nella directory di installazione. -
Sostituisci
www.magento-dev.comcon il tuo nome di dominio. -
Salva ed esci dall’editor.
-
Verifica che la sintassi sia corretta:
code language-bash nginx -t -
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:
-
Installare gli strumenti di gestione SELinux:
code language-bash yum -y install policycoreutils-python -
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/' -
Installare il pacchetto firewalld:
code language-bash yum -y install firewalld -
Avviare il servizio firewall e configurarlo per l'avvio al momento dell'avvio:
code language-bash systemctl start firewalldcode language-bash systemctl enable firewalld -
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=httpcode language-bash firewall-cmd --permanent --add-service=httpscode 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.