Kapitel 14 · 14.5
PHP-indstillinger pr. mappe og via .htaccess
Nogle gange vil du have, at én mappe fungerer anderledes end resten af din hjemmeside. For eksempel en gammel webshop i en undermappe, der endnu ikke kan køre på den nye PHP-version, eller ét script, der har brug for mere hukommelse. Det kan du klare med en fil .htaccess i den mappe. Vores servere kører LiteSpeed, og LiteSpeed læser PHP-regler i .htaccess.
Bemærk: En fejl i .htaccess kan gøre hele din hjemmeside (eller mappen) utilgængelig med en fejl 500. Lav først en kopi af filen, og test straks efter du har gemt. Hvordan du finder og redigerer .htaccess, kan du læse i Sådan viser og redigerer du skjulte filer som .htaccess.
Tilpas en PHP-indstilling for én mappe
Sæt linjer som disse i .htaccess for den mappe:
php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 384M
php_value max_execution_time 300
Til indstillinger, der er til eller fra, bruger du php_flag, for eksempel php_flag display_errors off.
Reglerne gælder for den mappe og alle mapper derunder. Sætter du dem i .htaccess for public_html, gælder de for hele din hjemmeside.
Tip: Vil du tilpasse en indstilling for hele din pakke? Så er det bedre at gøre det i Select PHP version (se PHP-indstillinger: upload_max_filesize, memory_limit og max_execution_time). Så står alt ét sted, og du glemmer ikke senere, at der stadig er regler i .htaccess.
En anden PHP-version for én mappe
Hele din pakke bruger den version, du har valgt i Select PHP version. Vil du give én mappe (eller et underdomæne, der også har sin egen mappe) en anden version, så sæt dette i .htaccess for den mappe:
<FilesMatch "\.(php)$">
SetHandler application/x-lsphp83
</FilesMatch>
Tallet efter lsphp er versionen uden 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 vælge mellem de samme versioner som i Select PHP version.
Bruger du udvidelser eller indstillinger i den mappe, der afviger? De hører til versionen. Vælg da midlertidigt den version i Select PHP version, indstil udvidelserne og indstillingerne, og sæt derefter versionen for din pakke tilbage igen. Indstillingerne pr. version bliver gemt.
Kontrollér, om det virker
- Opret en fil info-test.php i mappen med denne ene linje: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Åbn den i din browser, for eksempel https://www.dindomæne.dk/gammelbutik/info-test.php. Du ser PHP-versionen og hukommelsen.
- Slet filen igen med det samme bagefter. Lad ikke testfiler med oplysninger om din server blive liggende på din hjemmeside.
Hvad virker ikke?
- En egen php.ini i din mappe har ingen effekt. Brug Select PHP version eller .htaccess.
- disable_functions og open_basedir kan du ikke tilpasse via .htaccess. De hører til serverens sikkerhed.
- Værdier, der under PHP Indstillinger står som overstyring for domænet (se PHP Indstillinger i DirectAdmin eller Select PHP version: hvad er forskellen?), går forud for .htaccess.
