Impostazioni PHP
Questo argomento illustra come impostare le opzioni PHP richieste.
Per informazioni sulla configurazione cloud, consulta Impostazioni PHP nella guida Commerce su infrastruttura cloud.
Controllo processo PHP
Prima di poter eseguire gli indicizzatori in modalità parallela, è necessario attivare il supporto Controllo processo (pcntl
) in PHP. Vedi Installazione nella documentazione di PHP.
Verificare che PHP sia installato
PHP è installato per impostazione predefinita sulla maggior parte delle distribuzioni Linux. In questo argomento si presuppone che sia già stato installato PHP. Per verificare se PHP è installato, immetti quanto segue sulla riga di comando:
php -v
Se PHP è installato, viene visualizzato un messaggio simile al seguente:
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.14, Copyright (c), by Zend Technologies
Se PHP non è installato (o richiede un aggiornamento), installarlo seguendo le istruzioni per la distribuzione Linux.
Verificare le estensioni installate
Adobe Commerce richiede alcune estensioni PHP. Negli elenchi seguenti vengono specificate le estensioni richieste per ogni edizione di Commerce. Gli elenchi vengono generati automaticamente da una distribuzione che esegue la versione più recente di ogni edizione.
Adobe Commerce richiede:
ext-bcmath
ext-ctype
ext-curl
ext-dom
ext-fileinfo
ext-filter
ext-gd
ext-hash
ext-iconv
ext-intl
ext-json
ext-libxml
ext-mbstring
ext-openssl
ext-pcre
ext-pdo_mysql
ext-simplexml
ext-soap
ext-sockets
ext-sodium
ext-spl
ext-tokenizer
ext-xmlwriter
ext-xsl
ext-zip
ext-zlib
lib-libxml
Il Magento Open Source richiede:
ext-bcmath
ext-ctype
ext-curl
ext-dom
ext-fileinfo
ext-filter
ext-gd
ext-hash
ext-iconv
ext-intl
ext-json
ext-libxml
ext-mbstring
ext-openssl
ext-pcre
ext-pdo_mysql
ext-simplexml
ext-soap
ext-sockets
ext-sodium
ext-tokenizer
ext-xmlwriter
ext-xsl
ext-zip
ext-zlib
lib-libxml
Per verificare le estensioni installate:
-
Elencare i moduli installati.
code language-bash php -m
-
Verifica che siano installate tutte le estensioni richieste.
-
Aggiungi eventuali moduli mancanti utilizzando lo stesso flusso di lavoro utilizzato per l'installazione di PHP.
Verifica impostazioni PHP
pcre.jit=0
nel file php.ini
. Questo aggira un bug PHP che impedisce il caricamento di CSS.- Impostare il fuso orario di sistema per PHP; in caso contrario, errori come il seguente display durante l'installazione e operazioni correlate al tempo come cron potrebbero non funzionare:
PHP Warning: date(): It is not safe to rely on the system's timezone settings. [more messages follow]
-
Impostare il limite della memoria PHP.
L’Adobe consiglia quanto segue:
- Compilazione del codice o distribuzione delle risorse statiche,
1G
- Debug,
2G
- Test,
~3-4G
- Compilazione del codice o distribuzione delle risorse statiche,
-
Aumentare i valori per PHP
realpath_cache_size
erealpath_cache_ttl
alle impostazioni consigliate:code language-conf realpath_cache_size=10M realpath_cache_ttl=7200
Queste impostazioni consentono ai processi PHP di memorizzare nella cache i percorsi dei file invece di cercarli al caricamento della pagina. Vedi Ottimizzazione delle prestazioni nella documentazione di PHP.
-
Abilita
opcache.save_comments
, richiesto per Adobe Commerce 2.1 e versioni successive.L'Adobe consiglia di abilitare PHP OPcache per motivi di prestazioni. OPcache è abilitata in molte distribuzioni PHP.
Adobe Commerce 2.1 e versioni successive utilizzano i commenti del codice PHP per la generazione del codice.
Trova file di configurazione PHP
Questa sezione illustra come trovare i file di configurazione necessari per aggiornare le impostazioni richieste.
Trova il file di configurazione php.ini
Per trovare la configurazione del server Web, eseguire un file phpinfo.php
nel browser Web e cercare Loaded Configuration File
nel modo seguente:
Per individuare la configurazione della riga di comando PHP, immettete
php --ini | grep "Loaded Configuration File"
php.ini
, modificarlo. Se hai due file php.ini
, modifica entrambi. In caso contrario, le prestazioni potrebbero risultare imprevedibili.Trova impostazioni di configurazione OPcache
Le impostazioni PHP OPcache si trovano in genere in php.ini
o opcache.ini
. La posizione potrebbe dipendere dal sistema operativo in uso e dalla versione PHP. Il file di configurazione OPcache potrebbe avere una sezione opcache
o impostazioni come opcache.enable
.
Utilizza le seguenti linee guida per trovarlo:
-
Server web Apache:
Per Ubuntu con Apache, le impostazioni OPcache si trovano in genere nel file
php.ini
.Per CentOS con Apache o nginx, le impostazioni OPcache si trovano in genere in
/etc/php.d/opcache.ini
In caso contrario, utilizzare il comando seguente per individuarlo:
code language-bash sudo find / -name 'opcache.ini'
-
Server Web nginx con PHP-FPM:
/etc/php/8.1/fpm/php.ini
Se si dispone di più di un opcache.ini
, modificarli tutti.
Come impostare le opzioni PHP
Per impostare le opzioni PHP:
-
Apri
php.ini
in un editor di testo. -
Individua il fuso orario del server nelle impostazioni del fuso orario disponibili
-
Individua la seguente impostazione e, se necessario, rimuovi il commento:
code language-conf date.timezone =
-
Aggiungere l'impostazione del fuso orario specificata al passaggio 2.
-
Modificare il valore di
memory_limit
in uno dei valori consigliati all'inizio di questa sezione.Ad esempio:
code language-conf memory_limit=2G
-
Aggiungi o aggiorna la configurazione
realpath_cache
in modo che corrisponda ai seguenti valori:code language-conf ; ; Increase realpath cache size ; realpath_cache_size = 10M ; ; Increase realpath cache ttl ; realpath_cache_ttl = 7200
-
Salva le modifiche e esci dall’editor di testo.
-
Apri l'altro
php.ini
(se sono diversi) e apporta le stesse modifiche.
Impostare le opzioni OPcache
Per impostare opcache.ini
opzioni:
-
Apri il file di configurazione OPcache in un editor di testo:
opcache.ini
(CentOS)php.ini
(Ubuntu)/etc/php/8.1/fpm/php.ini
(server Web Inginx (CentOS o Ubuntu))
-
Individuare
opcache.save_comments
e rimuoverlo dal commento, se necessario. -
Assicurarsi che il relativo valore sia impostato su
1
. -
Salva le modifiche e esci dall’editor di testo.
-
Riavviare il server Web:
- Apache, Ubuntu:
service apache2 restart
- Apache, CentOS:
service httpd restart
- nginx, Ubuntu e CentOS:
service nginx restart
- Apache, Ubuntu:
Risoluzione dei problemi
Consulta i seguenti articoli di supporto Adobe Commerce per assistenza nella risoluzione dei problemi PHP: