Quando ci troviamo a lavorare con WordPress, Joomla!, PrestaShop, Magento, Moodle e altri CMS, soprattutto con qualche template o tema in vendita nei vari portali, può capitare di avere la necessità di dover aumentare le “risorse” del nostro spazio web.
Grazie a questo articolo andiamo a scoprire come calibrare il nostro spazio web con le specifiche richieste da alcuni template (o temi) e CMS.
Anche in questo caso abbiamo suddiviso l’articolo in maniera da aiutarvi nella lettura o per permettervi di andare direttamente alla sezione che più vi interessa. Eccolo:
Introduzione:
Impostazioni prestazioni:
- Supporto PHP
- memory_limit
- max_execution_time
- max_input_time
- post_max_size
- upload_max_filesize
- opcache.enable
Impostazioni comuni:
- include_path
- session.save_path
- mail.force_extra_parameters
- open_basedir
- error_reporting
- display_errors
- log_errors
- allow_url_fopen
- file_uploads
- short_open_tag
Non per ultima risorsa citiamo le impostazioni ideali nella parte finale di questo articolo.
Per andare a personalizzare le specifiche del nostro spazio di Hosting, dobbiamo fare accesso a Plesk per trovarci poi nella seguente schermata:
Da qui dobbiamo fare click su impostazioni PHP per trovarci catapultati all’interno della configurazione PHP del nostro spazio di Hosting:
Perdonate l’immagine lunga ma qui ci sono, come potete vedere, molte cose da impostare e che cercheremo adesso di spiegarvi in dettaglio.
Supporto PHP
Come si può intuire facilmente, qui possiamo cambiare la versione PHP del nostro spazio web relativo al sito inserito all’interno del nostro abbonamento.
È sempre meglio utilizzare la versione di PHP 7 perché completamente supportata anziché l’ormai obsoleta versione 5.6 che, tra le altre cose, è molto più lenta.
Ora andiamo a vedere nel dettaglio quelle impostazioni che Plesk menziona come impostazioni delle prestazioni:
memory_limit
Memory Limit è un parametro molto importante: a volte può capitare di imbatterci in template pesanti che necessitano più memoria. Questo parametro ci consente quindi di aumentare il limite di memoria del nostro spazio web nei seguenti modi:
- 8M
- 16M
- 32M
- 64M
- 128M
la “M” indica i MegaByte. Se siamo davanti ad un’installazione di un CMS (magari WordPress) che necessita più memoria delle scelte che Plesk ci mette a disposizione, possiamo impostare questo campo a mano inserendo direttamente il numero di MegaByte, ad esempio 256M.
max_execution_time
Il max execution time è un valore espresso in secondi per l’elaborazione delle richieste. Vi è mai capitato di navigare un sito, magari in via di sviluppo, che all’interno di qualche pagina mostra l’errore “Maximum execution time exceeded”? Se si, è colpa del valore max execution time che non consente al nostro spazio web di elaborare le richieste in maniera corretta.
Basta quindi alzare questo valore per fare in modo che il sito funzioni correttamente.
A seguire le scelte che possiamo impostare, espresse in secondi:
- 30
- 60
- 90
- 120
Anche in questo caso, se siamo davanti ad una installazione di WordPress o di altro CMS che vuole più tempo per eseguire le richieste, è possibile aumentare il valore semplicemente scrivendo nel campo i secondi che vogliamo.
max_input_time
Il max input time è il tempo massimo in secondi in cui uno script può analizzare i dati di input, come POST e GET. Il tempo inizia nel momento in cui PHP viene richiamato sul server e termina quando inizia l’esecuzione. L’impostazione predefinita è -1, il che significa che al suo posto viene utilizzato max_execution_time.
Anche in questo caso abbiamo le seguenti opzioni:
- 30
- 60
- 90
- 120
Questo valore può essere impostato su 0 (zero) per avere così tempo illimitato.
post_max_size
Questo valore imposta la dimensione massima dei dati consentiti ed influisce anche sul caricamento dei file.
Per caricare file di grandi dimensioni, il valore upload_max_filesize (vedi più in basso per i dettagli) deve essere maggiore.
In generale quindi il memory_limit dovrebbe essere più grande di post_max_size.
A seguire le opzioni possibili, fermo restando che è sempre possibile editare il campo direttamente:
- 2M
- 4M
- 8M
- 16M
[adrotate banner=”1″]
upload_max_filesize
Il campo upload_max_filesize, come si può evincere dal nome, è dedicato alla grandezza di un file che può essere caricato nel nostro spazio web direttamente dal CMS che stiamo utilizzando. Ad esempio in WordPress nel reparto “media”.
A seguire le scelte che possiamo impostare, ma che ovviamente possono sempre essere editate, anche in questo caso la “M” indica i MegaByte:
- 2M
- 4M
- 8M
- 10M
- 16M
opcache.enable
Opcache.enable abilita la cache dell’opcode (operation code o codice operativo). L’opcode è una porzione di istruzione in un linguaggio di programmazione che va a specificare l’operazione che deve essere eseguita. Se disabilitato, il codice non è ottimizzato o memorizzato nella cache.
Adesso invece vediamo le impostazioni comuni:
include_path
Include_path specifica un elenco di directory in cui le funzioni require, include, fopen (), file (), readfile () e file_get_contents () cercano i file.
Il formato è come la variabile di ambiente “path” del sistema: un elenco di directory separate da due punti nei sistemi Unix (come Linux) o separate da punto e virgola nei sistemi Windows.
PHP considera ogni voce separatamente quando cerca i file da includere, controlla il primo percorso e, se non lo trova, controlla il percorso successivo, fino a quando non individua il file incluso o restituisce un avviso o un errore. È possibile modificare o impostare il percorso di inclusione in fase di esecuzione utilizzando set_include_path ().
Questo parametro lasciamolo così com’è se non siamo molto tecnici.
session.save_path
session.save_path definisce l’argomento che viene “passato” al gestore di salvataggio. Se si sceglie il gestore di file predefinito, questo è il percorso in cui vengono creati i file.
Anche in questo caso possiamo lasciare a default questo parametro se non sappiamo bene cosa dobbiamo fare.
mail.force_extra_parameters
mail.force_extra_parameters è dedicato, come si evince dal nome, a dei parametri aggiuntivi per il servizio di posta elettronica. Lasciamoli direttamente a default.
open_basedir
Open_basedir limita i file a cui è possibile accedere da PHP all’albero di directory specificato, incluso il file stesso.
In pratica, quando uno script tenta di accedere al filesystem, per esempio usando include o fopen (), viene controllata la posizione del file. Quando il file si trova all’interno dell’albero della directory specificata, PHP rifiuterà di accedervi.
L’impostazione predefinita è di consentire l’apertura di tutti i file quindi lasciamolo pure così com’è, salvo casi particolari.
error_reporting
Error_reporting imposta il livello di segnalazione degli errori.
Il parametro è un numero intero che rappresenta un campo di bit o il nome di una costante. I livelli di error_reporting e le costanti sono descritti nel file php.ini.
Questo parametro è direttamente collegato con l’opzione display_errors che vediamo qui sotto.
display_errors
Display_errors determina se gli errori devono essere stampati sullo schermo come parte dell’output o se devono essere nascosti all’utente. Anche in questo caso, è meglio lasciare questa impostazione su “off” in modo predefinito.
log_errors
Log_errors indica se i messaggi di errore dello script devono essere registrati nel log degli errori del server o in error_log. Questa opzione è quindi specifica per il server.
allow_url_fopen
Allow_url_fopen permette alle funzioni del file PHP di ripristinare dati da percorsi remoti su FTP o HTTP.
Non tocchiamo questa impostazione se non la conosciamo.
file_uploads
File_uploads, come si può capire facilmente, ci da la possibilità di decidere se consentire o meno i caricamenti di file HTTP.
Ovviamente per default è impostato su “ON”.
short_open_tag
Short_open_tag, ultimo parametro delle impostazioni PHP in Plesk, è un parametro da veri “nerd”, ossia quello dedicato al formato breve dei tag PHP.
In pratica questo parametro indica a PHP se deve essere consentito il formato breve (<? ?>) del tag di apertura e chiusura di PHP.
Se si desidera utilizzare PHP in combinazione con XML, è possibile disabilitare questa opzione per utilizzare <? Xml?> in linea.
Altrimenti, è possibile stamparlo con PHP, ad esempio: <? php echo ‘<? Xml version = “1.0”?>’; ?>. Inoltre, se disabilitato, bisogna usare la forma lunga del tag aperto PHP (<? Php?>).
Conclusione
Speriamo di avervi aiutato a capire come modificare le impostazioni PHP per far funzionare al meglio il CMS che stiamo utilizzando. I CMS sono dei veri e propri sistemi operativi del web ed ognuno di loro ha bisogno di alcune specifiche per lavorare correttamente.
Soffermiamoci per un attimo su quelle che potrebbero essere le impostazioni ideali per un sito web sviluppato in WordPress:
A seguire la spiegazione di ogni punto:
- memory_limit a 128 MegaByte: un tema non dovrebbe richiedere ulteriore memoria ma possiamo anche aumentarlo fino a 256 o, proprio in extremis, a 512 MegaByte ma non di più;
- max_execution_time e max_input_time di 180 secondi sono sufficienti per gestire qualunque tipo di richiesta anche se in casi particolari questi valori possono essere aumentati (vedi per esempio le aree di sviluppo);
- post_max_size e upload_max_size: questo valore possiamo anche aumentarlo ma attenzione: inserire file più grandi di queste dimensioni potrebbe creare problemi alla sicurezza e/o provocare un grosso rallentamento nella navigazione del sito (esempio: inserimento di file di grosse dimensioni (video) o immagini non ottimizzate);
- opcache.enable: questo deve rimanere sempre su “on”.
Ovviamente un sito in HTML normale necessita di caratteristiche diverse rispetto ad un ipotetico sito web fatto alla stessa maniera ma con un CMS che gestisce i contenuti come WordPress o Joomla. In questo ultimo caso bisogna essere consci del fatto che, ogni installazione, ha una vita propria con delle proprie caratteristiche tecniche che richiedono un minimo di dimestichezza con i parametri che vi abbiamo mostrato.
Speriamo dunque di avervi dato qualche spunto di riflessione sull’ottimizzazione dello spazio web, fateci sapere cosa pensate di questo articolo nei commenti; non ci resta che darvi appuntamento al prossimo articolo dedicato a Plesk.