Kapitel 14 · 14.5
PHP-inställningar per mapp och via .htaccess
Ibland vill du att en mapp ska fungera annorlunda än resten av din webbplats. Till exempel en gammal webbshop i en undermapp som ännu inte klarar den nya PHP-versionen, eller ett skript som behöver mer minne. Det kan du lösa med en fil .htaccess i den mappen. Våra servrar kör LiteSpeed, och LiteSpeed läser PHP-regler i .htaccess.
Obs: Ett fel i .htaccess kan göra hela din webbplats (eller mappen) otillgänglig med ett fel 500. Gör först en kopia av filen och testa direkt efter att du har sparat. Hur du hittar och redigerar .htaccess läser du i Visa och redigera dolda filer som .htaccess.
Ändra en PHP-inställning för en mapp
Lägg till rader som dessa i .htaccess för 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
För inställningar som är på eller av använder du php_flag, till exempel php_flag display_errors off.
Reglerna gäller för den mappen och alla undermappar till den. Lägger du dem i .htaccess för public_html gäller de för hela din webbplats.
Tips: Vill du ändra en inställning för hela ditt paket? Gör det då hellre i Select PHP version (se PHP-alternativ: upload_max_filesize, memory_limit och max_execution_time). Då finns allt på ett ställe och du glömmer inte senare att det ligger kvar rader i .htaccess.
En annan PHP-version för en mapp
Hela ditt paket använder den version du har valt i Select PHP version. Vill du ge en mapp (eller ett underdomän, som också har en egen mapp) en annan version, lägg då till följande i .htaccess för den mappen:
<FilesMatch "\.(php)$">
SetHandler application/x-lsphp83
</FilesMatch>
Siffran efter lsphp är versionen utan punkt: 74 för PHP 7.4, 82 för PHP 8.2, 83 för PHP 8.3, 84 för PHP 8.4, och så vidare. Du kan välja mellan samma versioner som i Select PHP version.
Använder du andra tillägg eller inställningar i den mappen? De hör ihop med versionen. Välj då tillfälligt den versionen i Select PHP version, ställ in tilläggen och inställningarna, och ställ sedan tillbaka versionen för ditt paket. Inställningarna per version sparas.
Kontrollera att det fungerar
- Skapa en fil info-test.php i mappen med den här enda raden: <?php echo PHP_VERSION, ' ', ini_get('memory_limit');
- Öppna den i din webbläsare, till exempel https://www.dindomän.se/gammalbutik/info-test.php. Du ser PHP-versionen och minnet.
- Ta sedan bort filen direkt. Lämna inga testfiler med information om din server kvar på din webbplats.
Vad fungerar inte?
- En egen php.ini i din mapp har ingen effekt. Använd Select PHP version eller .htaccess.
- disable_functions och open_basedir kan du inte ändra via .htaccess. De hör till serverns säkerhet.
- Värden som under PHP Instellingar står som överstyrning för domänet (se PHP Instellingar i DirectAdmin eller Select PHP version: vad är skillnaden?) går före .htaccess.
