Kapittel 14 · 14.5
PHP-innstillinger per mappe og via .htaccess
Noen ganger vil du at én mappe skal fungere annerledes enn resten av nettstedet ditt. For eksempel en gammel nettbutikk i en undermappe som ennå ikke tåler den nye PHP-versjonen, eller ett script som trenger mer minne. Det kan du ordne med en fil .htaccess i den mappen. Serverne våre kjører LiteSpeed, og LiteSpeed leser PHP-regler i .htaccess.
Merk: En feil i .htaccess kan gjøre hele nettstedet ditt (eller mappen) utilgjengelig med en feil 500. Lag først en kopi av filen og test rett etter at du har lagret. Hvordan du finner og redigerer .htaccess, leser du i Vise og redigere skjulte filer som .htaccess.
Endre en PHP-innstilling for én mappe
Sett inn linjer som disse i .htaccess for den mappen:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 384M
php_value max_execution_time 300
For innstillinger som er av eller på, bruker du php_flag, for eksempel php_flag display_errors off.
Linjene gjelder for den mappen og alle undermapper. Setter du dem i .htaccess for public_html, gjelder de for hele nettstedet ditt.
Tips: Vil du endre en innstilling for hele pakken din? Gjør det heller i Select PHP version (se PHP-innstillinger: upload_max_filesize, memory_limit og max_execution_time). Da står alt på ett sted, og du glemmer ikke senere at det fortsatt ligger regler i .htaccess.
En annen PHP-versjon for én mappe
Hele pakken din bruker versjonen du har valgt i Select PHP version. Vil du gi én mappe (eller et underdomene, som også har sin egen mappe) en annen versjon, setter du dette i .htaccess for den mappen:
<FilesMatch "\.(php)$">
SetHandler application/x-lsphp83
</FilesMatch>
Tallet etter lsphp er versjonen uten punktum: 74 for PHP 7.4, 82 for PHP 8.2, 83 for PHP 8.3, 84 for PHP 8.4, og så videre. Du kan velge mellom de samme versjonene som i Select PHP version.
Bruker du utvidelser eller innstillinger i den mappen som avviker? Disse hører til versjonen. Velg da midlertidig den versjonen i Select PHP version, still inn utvidelsene og innstillingene, og sett deretter versjonen for pakken din tilbake. Innstillingene per versjon blir bevart.
Sjekk om det fungerer
- Lag en fil info-test.php i mappen med denne ene linjen: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Åpne den i nettleseren din, for eksempel https://www.dittdomene.no/gammelbutikk/info-test.php. Du ser PHP-versjonen og minnet.
- Slett filen med det samme etterpå. Ikke la testfiler med informasjon om serveren din bli liggende på nettstedet ditt.
Hva fungerer ikke?
- En egen php.ini i mappen din har ingen effekt. Bruk Select PHP version eller .htaccess.
- disable_functions og open_basedir kan du ikke endre via .htaccess. Disse hører til sikkerheten på serveren.
- Verdier som står som overstyring for domenet under PHP Instellingen (se PHP Instellinger i DirectAdmin eller Select PHP version: hva er forskjellen?) går foran .htaccess.
