Capitolo 14 · 14.5
Impostazioni PHP per cartella e tramite .htaccess
A volte desidera che una cartella funzioni in modo diverso rispetto al resto del Suo sito web. Ad esempio un vecchio negozio online in una sottocartella che non può ancora passare alla nuova versione di PHP, oppure uno script che ha bisogno di più memoria. Questo è possibile con un file .htaccess in quella cartella. I nostri server utilizzano LiteSpeed, e LiteSpeed legge le regole PHP nel file .htaccess.
Attenzione: Un errore nel file .htaccess può rendere irraggiungibile tutto il Suo sito web (o la cartella) con un errore 500. Faccia prima una copia del file e verifichi subito dopo aver salvato. Per sapere come trovare e modificare il file .htaccess, consulti Mostrare e modificare i file nascosti come .htaccess.
Modificare un'opzione PHP per una cartella
Inserisca nel file .htaccess di quella cartella righe come queste:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 384M
php_value max_execution_time 300
Per le opzioni che sono attivate o disattivate, utilizzi php_flag, ad esempio php_flag display_errors off.
Le regole valgono per quella cartella e per tutte le sottocartelle. Se le inserisce nel file .htaccess di public_html, varranno per tutto il Suo sito web.
Suggerimento: Desidera modificare un'opzione per tutto il Suo pacchetto? In tal caso è preferibile farlo in Select PHP version (vedere Opzioni PHP: upload_max_filesize, memory_limit e max_execution_time). In questo modo tutto si trova in un unico posto e in seguito non dimenticherà che ci sono ancora righe nel file .htaccess.
Una versione PHP diversa per una cartella
Tutto il Suo pacchetto utilizza la versione scelta in Select PHP version. Se desidera assegnare a una cartella (o a un sottodominio, che ha anch'esso una propria cartella) una versione diversa, inserisca nel file .htaccess di quella cartella:
<FilesMatch "\.(php)$">
SetHandler application/x-lsphp83
</FilesMatch>
Il numero dopo lsphp è la versione senza punto: 74 per PHP 7.4, 82 per PHP 8.2, 83 per PHP 8.3, 84 per PHP 8.4, e così via. Può scegliere tra le stesse versioni disponibili in Select PHP version.
Utilizza in quella cartella estensioni o opzioni diverse? Queste sono legate alla versione. In tal caso selezioni temporaneamente quella versione in Select PHP version, imposti le estensioni e le opzioni, e poi ripristini la versione del Suo pacchetto. Le impostazioni per ciascuna versione rimangono salvate.
Verificare se funziona
- Crei nella cartella un file info-test.php con questa unica riga: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Lo apra nel Suo browser, ad esempio https://www.ilsuodominio.it/vecchionegozio/info-test.php. Vedrà la versione PHP e la memoria.
- Elimini subito il file dopo la verifica. Non lasci file di test con informazioni sul Suo server sul Suo sito web.
Cosa non funziona?
- Un file php.ini personalizzato nella Sua cartella non ha effetto. Utilizzi Select PHP version o il file .htaccess.
- disable_functions e open_basedir non possono essere modificati tramite il file .htaccess. Fanno parte della sicurezza del server.
- I valori impostati come override per il dominio in Impostazioni PHP (vedere PHP Instellingen in DirectAdmin o Select PHP version: qual è la differenza?) hanno la precedenza sul file .htaccess.
