{"id":102519,"date":"2024-06-12T12:47:48","date_gmt":"2024-06-12T10:47:48","guid":{"rendered":"https:\/\/gtechgroup.it\/?p=102519"},"modified":"2024-06-12T12:47:48","modified_gmt":"2024-06-12T10:47:48","slug":"ottimizzare-la-configurazione-php-e-php-fpm-per-il-tuo-sito-web","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/ottimizzare-la-configurazione-php-e-php-fpm-per-il-tuo-sito-web\/","title":{"rendered":"Ottimizzare la Configurazione PHP e PHP-FPM per il Tuo Sito Web"},"content":{"rendered":"<p><strong>Configurare correttamente PHP e PHP-FPM \u00e8 essenziale per garantire che il tuo sito web funzioni in modo efficiente e stabile.<\/strong> Di seguito, analizzeremo le impostazioni suggerite, spiegando ogni parametro e fornendo consigli su come ottimizzare la tua configurazione in base alle visite e al consumo del sito web.<\/p>\n<h2>Configurazioni PHP<\/h2>\n<h3><code>memory_limit<\/code>: 2048M<\/h3>\n<p><strong>Funzione:<\/strong> Il parametro <code>memory_limit<\/code> definisce la quantit\u00e0 massima di memoria che uno script PHP pu\u00f2 utilizzare. Se uno script supera questo limite, verr\u00e0 terminato.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> Un valore di 128M-512M \u00e8 generalmente sufficiente.<\/li>\n<li><strong>Per siti a medio-alto traffico con contenuti complessi:<\/strong> Un valore di 1024M-2048M pu\u00f2 essere necessario.<\/li>\n<li><strong>Verifica:<\/strong> Assicurati che il server abbia abbastanza memoria fisica per supportare questa impostazione. Utilizza strumenti di monitoraggio per controllare l&#8217;utilizzo della memoria e adegua il valore se necessario.<\/li>\n<\/ul>\n<h3><code>max_execution_time<\/code>: 512<\/h3>\n<p><strong>Funzione:<\/strong> Il parametro <code>max_execution_time<\/code> determina il tempo massimo in secondi durante il quale uno script pu\u00f2 essere in esecuzione prima di essere terminato. Questo evita che script malfunzionanti consumino risorse indefinitamente.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> Un valore di 30-60 secondi \u00e8 spesso sufficiente.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> Un valore di 60-120 secondi pu\u00f2 essere adeguato.<\/li>\n<li><strong>Per script complessi:<\/strong> Se i tuoi script richiedono pi\u00f9 tempo (ad esempio, per elaborazioni intensive), puoi aumentare il valore, ma cerca di ottimizzare il codice per ridurre i tempi di esecuzione.<\/li>\n<\/ul>\n<h3><code>max_input_time<\/code>: 512<\/h3>\n<p><strong>Funzione:<\/strong> Il parametro <code>max_input_time<\/code> specifica il tempo massimo in secondi durante il quale uno script pu\u00f2 analizzare dati di input (ad esempio, dati di moduli o file caricati).<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> Un valore di 30-60 secondi \u00e8 adeguato.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> Un valore di 60-120 secondi \u00e8 consigliato.<\/li>\n<li><strong>Monitoraggio:<\/strong> Se i tuoi script analizzano grandi quantit\u00e0 di dati, verifica il tempo necessario e adegua il valore di conseguenza.<\/li>\n<\/ul>\n<h3><code>post_max_size<\/code>: 128M<\/h3>\n<p><strong>Funzione:<\/strong> Il parametro <code>post_max_size<\/code> definisce la dimensione massima dei dati che possono essere inclusi in una richiesta POST.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti con piccoli upload:<\/strong> Un valore di 8M-32M \u00e8 sufficiente.<\/li>\n<li><strong>Per siti con upload medi:<\/strong> Un valore di 32M-64M \u00e8 adeguato.<\/li>\n<li><strong>Per siti con grandi upload:<\/strong> 128M o pi\u00f9, assicurandoti che <code>upload_max_filesize<\/code> sia inferiore a <code>post_max_size<\/code>.<\/li>\n<\/ul>\n<h3><code>upload_max_filesize<\/code>: 256M<\/h3>\n<p><strong>Funzione:<\/strong> Il parametro <code>upload_max_filesize<\/code> definisce la dimensione massima di un file caricato.<\/p>\n<h2><strong>Consiglio:<\/strong><\/h2>\n<ul>\n<li><strong>Per siti con piccoli file:<\/strong> Un valore di 2M-16M \u00e8 sufficiente.<\/li>\n<li><strong>Per siti con file medi:<\/strong> Un valore di 16M-64M \u00e8 adeguato.<\/li>\n<li><strong>Per siti con grandi file:<\/strong> 256M o pi\u00f9, assicurati che il valore di <code>post_max_size<\/code> sia maggiore di <code>upload_max_filesize<\/code>.<\/li>\n<\/ul>\n<h2><code>opcache.enable<\/code>: on<\/h2>\n<p><strong>Funzione:<\/strong> Abilita la cache opcode per migliorare le prestazioni della tua applicazione PHP.<\/p>\n<p><strong>Consiglio:<\/strong> Mantieni questa impostazione abilitata per migliorare le prestazioni. Assicurati di configurare correttamente altre impostazioni opcache per massimizzare i benefici.<\/p>\n<h2><code>disable_functions<\/code>: opcache_get_status<\/h2>\n<p><strong>Funzione:<\/strong> Disabilita determinate funzioni PHP per motivi di sicurezza.<\/p>\n<p><strong>Consiglio:<\/strong> Disabilita solo le funzioni che non sono necessarie per il tuo sito per aumentare la sicurezza.<\/p>\n<h2>Impostazioni Comuni di PHP<\/h2>\n<h2><code>include_path<\/code><\/h2>\n<p><strong>Funzione:<\/strong> La lista di directory in cui gli script PHP cercano file inclusi o richiesti.<\/p>\n<p><strong>Consiglio:<\/strong> Mantieni il percorso predefinito a meno che non ci sia un motivo specifico per modificarlo. Aggiungi percorsi solo se necessari per il funzionamento del tuo sito.<\/p>\n<h2><code>session.save_path<\/code><\/h2>\n<p><strong>Funzione:<\/strong> La directory in cui i file di sessione PHP sono archiviati.<\/p>\n<p><strong>Consiglio:<\/strong> La directory predefinita \u00e8 generalmente adeguata, ma assicurati che abbia le autorizzazioni appropriate per leggere e scrivere. Se il tuo sito utilizza sessioni pesantemente, considera l&#8217;utilizzo di una soluzione di memorizzazione delle sessioni pi\u00f9 performante come Redis o Memcached.<\/p>\n<h2><code>error_reporting<\/code>: E_ALL &amp; ~E_NOTICE &amp; ~E_STRICT &amp; ~E_DEPRECATED<\/h2>\n<p><strong>Funzione:<\/strong> Il livello di segnalazione degli errori PHP.<\/p>\n<p><strong>Consiglio:<\/strong> Mantieni questa configurazione per l&#8217;ambiente di produzione per evitare che messaggi di errore non critici vengano visualizzati agli utenti finali.<\/p>\n<h2><code>display_errors<\/code>: off<\/h2>\n<p><strong>Funzione:<\/strong> Determina se gli errori PHP devono essere mostrati come parte dell&#8217;output.<\/p>\n<p><strong>Consiglio:<\/strong> Mantieni questa impostazione disabilitata in produzione per motivi di sicurezza. Abilitala solo in un ambiente di sviluppo.<\/p>\n<h2><code>log_errors<\/code>: on<\/h2>\n<p><strong>Funzione:<\/strong> Abilita l&#8217;accesso agli errori PHP, registrandoli in un file di log.<\/p>\n<p><strong>Consiglio:<\/strong> Mantieni questa impostazione abilitata per poter risolvere eventuali problemi. Verifica periodicamente i log degli errori per identificare e correggere eventuali bug.<\/p>\n<h2>Impostazioni PHP-FPM<\/h2>\n<h2><code>pm.max_children<\/code>: 12<\/h2>\n<p><strong>Funzione:<\/strong> Il numero massimo di processi figli che PHP-FPM pu\u00f2 creare.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> 5-10 processi sono sufficienti.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> 10-20 processi possono essere necessari.<\/li>\n<li><strong>Monitoraggio:<\/strong> Monitora l&#8217;utilizzo della memoria e del CPU per determinare il numero ottimale di processi.<\/li>\n<\/ul>\n<h2><code>pm.start_servers<\/code>: 2<\/h2>\n<p><strong>Funzione:<\/strong> Il numero di processi server all&#8217;avvio.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> 1-2 processi sono adeguati.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> 2-4 processi all&#8217;avvio.<\/li>\n<li><strong>Monitoraggio:<\/strong> Verifica il tempo di avvio del server e adegua il valore se necessario.<\/li>\n<\/ul>\n<h2><code>pm.min_spare_servers<\/code>: 2<\/h2>\n<p><strong>Funzione:<\/strong> Il numero minimo di processi server inattivi.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> 1-2 processi sono adeguati.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> 2-4 processi inattivi.<\/li>\n<li><strong>Monitoraggio:<\/strong> Mantieni un numero di processi inattivi sufficiente per rispondere rapidamente a nuovi utenti.<\/li>\n<\/ul>\n<h2><code>pm.max_spare_servers<\/code>: 4<\/h2>\n<p><strong>Funzione:<\/strong> Il numero massimo di processi server inattivi.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> 2-4 processi sono adeguati.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> 4-6 processi inattivi.<\/li>\n<li><strong>Monitoraggio:<\/strong> Regola in base al carico per evitare sprechi di risorse.<\/li>\n<\/ul>\n<h2><code>pm.max_requests<\/code>: 500<\/h2>\n<p><strong>Funzione:<\/strong> Il numero massimo di richieste che ogni processo figlio pu\u00f2 eseguire prima di essere riciclato.<\/p>\n<h3><strong>Consiglio:<\/strong><\/h3>\n<ul>\n<li><strong>Per siti a basso traffico:<\/strong> 200-500 richieste possono essere sufficienti.<\/li>\n<li><strong>Per siti a medio-alto traffico:<\/strong> 500-1000 richieste sono pi\u00f9 adatte.<\/li>\n<li><strong>Monitoraggio:<\/strong> Controlla il comportamento dei processi e regola il valore per prevenire perdite di memoria e garantire la stabilit\u00e0.<\/li>\n<\/ul>\n<h2><code>pm<\/code>: dynamic<\/h2>\n<p><strong>Funzione:<\/strong> Determina il comportamento della gestione dei processi figli.<\/p>\n<p><strong>Consiglio:<\/strong> Mantieni <code>dynamic<\/code> per una gestione flessibile dei processi figli in base al carico del server. In alcuni casi, <code>ondemand<\/code> pu\u00f2 essere utile per risparmiare risorse in periodi di basso traffico.<\/p>\n<h3>Suggerimenti Aggiuntivi<\/h3>\n<h3>Monitoraggio delle risorse<\/h3>\n<p><strong>Utilizza strumenti di monitoraggio come New Relic o strumenti di monitoraggio del server per tenere d&#8217;occhio l&#8217;utilizzo della memoria e del CPU.<\/strong><\/p>\n<ul>\n<li><strong>Consiglio:<\/strong> Monitora il server regolarmente per rilevare e risolvere rapidamente eventuali problemi di prestazioni.<\/li>\n<\/ul>\n<h3>Caching<\/h3>\n<p><strong>Implementa un sistema di caching lato server (ad esempio, Varnish) e\/o caching lato applicazione per ridurre il carico sul server.<\/strong><\/p>\n<ul>\n<li><strong>Consiglio:<\/strong> Un buon sistema di caching pu\u00f2 migliorare notevolmente le prestazioni del sito.<\/li>\n<\/ul>\n<h3>Aggiornamenti regolari<\/h3>\n<p><strong>Assicurati che tutte le componenti del server e le librerie utilizzate siano aggiornate per beneficiare di miglioramenti delle prestazioni e correzioni di sicurezza.<\/strong><\/p>\n<ul>\n<li><strong>Consiglio:<\/strong> Mantieni il tuo software aggiornato per evitare vulnerabilit\u00e0 di sicurezza e problemi di compatibilit\u00e0.<\/li>\n<\/ul>\n<p><strong>Utilizzando queste configurazioni e suggerimenti, dovresti essere in grado di gestire efficacemente la memoria PHP-FPM e migliorare le prestazioni del tuo sito web.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Configurare correttamente PHP e PHP-FPM \u00e8 essenziale per garantire che il tuo sito web funzioni in modo efficiente e stabile. Di seguito, analizzeremo le impostazioni&hellip;<\/p>\n","protected":false},"author":2,"featured_media":102524,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"0","_seopress_titles_title":"Ottimizzazione Configurazioni PHP-FPM %%sep%% %%sitename%%","_seopress_titles_desc":"Scopri come ottimizzare le configurazioni PHP-FPM per migliorare le prestazioni del tuo sito web. Consigli pratici e parametri chiave.","_seopress_robots_index":"","footnotes":""},"categories":[89],"tags":[875,911],"class_list":["post-102519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-consigli-guide","tag-ottimizzazione","tag-sicurezza"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/102519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=102519"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/102519\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/102524"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=102519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=102519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=102519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}