Den här guiden går igenom de vanligaste ändringar du kan behöva göra för att din webbplats ska fungera (vara kompatibel) med Apache 2.4.
Använder du WordPress och får en vit sida med meddelandet ”Internal server error” efter att din webbplats har flyttats till Apache 2.4? Se den här guiden.
Apache 2.4 har flera fördelar jämfört med föregångaren 2.2. Den största fördelen är prestandan: Apache 2.4 är betydligt effektivare än 2.2 och levererar därför de flesta sidor snabbare.
Eftersom stödet för Apache 2.2 snart upphör helt bör du göra den här uppdateringen så snart som möjligt.
Gör webbplatsen kompatibel med Apache 2.4
Kör du till exempel WordPress, Joomla eller något annat publiceringsverktyg är det oftast inte mycket du behöver göra för att webbplatsen ska fungera på Apache 2.4.
- Se som vanligt till att allt (WordPress, Joomla, tillägg, teman och så vidare) är uppdaterat till de senaste versionerna.
- Kontrollera att de tillägg och teman du använder fortfarande får uppdateringar av utvecklaren. För WordPress hittar du den informationen på wordpress.org eller på webbplatsen där du köpte temat eller tillägget. Har temat eller tillägget uppdaterats någon gång under de senaste månaderna kan det räknas som aktivt och bör vara kompatibelt med Apache 2.4.
- Är delar av din webbplats specialbyggda bör du kontakta den som byggt dem och kontrollera att de är kompatibla med Apache 2.4.
Observera att du måste göra dessa eventuella uppdateringar innan du byter till Apache 2.4 i Kundzonen. Om webbplatsen slutar fungera efter att du har bytt till Apache 2.4 kan du prova att byta till en äldre PHP-version, eller kontakta vår support.
Så kör du din webbplats med Apache 2.4
För att köra din webbplats på Apache 2.4 hos Loopia loggar du in i Loopia Kundzon och klickar på ditt domännamn. Under rubriken ”Konfigurering” väljer du ”Hemsida hos Loopia (ny plattform)” > ”Unix” och därefter ”PHP 8.1, Apache 2.4” för att köra webbplatsen med Apache 2.4 och PHP-version 8.1.

Manuell uppdatering (avancerat)
Uppdateringen till Apache 2.4 berör direktiven i .htaccess-filen, inklusive funktioner som skriver till .htaccess-filen.
Ändringar rörande auktorisering
De stora förändringarna här rör inställningarna för auktorisering, som styr vilka som får se en sida och vilka som ska stängas ute. De här funktionerna används ofta i brandväggar för webbplatsen, till exempel för att bara låta besökare med specifika IP-adresser nå en sida. Kontrollera om .htaccess-filen innehåller något av följande direktiv:
- Order
- Allow
- Deny
- Satisfy
Om den inte gör det använder du i dagsläget troligen ingen sådan funktionalitet, och då bör koden redan fungera som den ska på Apache 2.4.
I Apache 2.4 används istället direktivet ”Require”, som du använder för att beskriva de kriterier som måste uppfyllas för att en besökare ska tillåtas se sidan.
Se även: https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html
De här direktiven kan grupperas i olika block som styr vad som krävs för att de ska räknas som uppfyllda:
- RequireAll
Samtliga krav måste uppfyllas för att besökaren ska få tillgång till sidan. - RequireAny
Endast ett av kraven i blocket behöver uppfyllas för att ge tillgång till sidan. Om Require-direktiven inte grupperas hanterar Apache dem på samma sätt som om de låg i ett RequireAny-block. - RequireNone
Inget av Require-direktiven i blocket får uppfyllas om besökaren ska få tillgång till sidan.
Exempel
# Tillåt endast besökare från nedanstående IP adresser
Require ip 93.188.2.53
Require ip 2a02:250:0:8::53
# Tillåt ingen att besöka sidan
Require all denied
# Tillåt endast autentiserad användare
AuthUserFile /www/absolute/path/.htpasswd
AuthType Basic
AuthName "Forbidden area"
Require valid-user
# Tillåt inte POST förfrågningar
<RequireAll>
Require all granted
Require not method POST
</RequireAll>
# Förhindra "hotlinking" av bilder
SetEnvIf Referer "mindoman\.se" localreferer
<FilesMatch "\.(jpe?g|gif|png)$">
Require env localreferer
</FilesMatch>
# Direktiv som endast körs av Apache < 2.3
<IfModule !mod_authz_core.c>
Order Allow,Deny
Allow from all
</IfModule>
# Direktiv som endast körs av Apache >= 2.3
<IfModule mod_authz_core.c>
<RequireAll>
Require all Granted
</RequireAll>
</IfModule>
Ändringar rörande AddOutputFilterByType
Direktivet AddOutputFilterByType har i och med Apache 2.4 flyttat till modulen mod_filter. Det är en modul som inte finns på våra webbservrar. Därför måste du radera alla rader i .htaccess-filen som använder det här direktivet.
Om du i nuläget använder direktivet för att aktivera gzip behöver du inte göra något annat än att radera raderna, eftersom gzip-komprimering är påslagen automatiskt på vår Apache 2.4-plattform.
Hantera anrop över https (SSL)
Om du inte vill använda funktionen ”Tvinga SSL”, som du hittar under konfigureringen av din domän i Loopia Kundzon, kan du istället använda följande exempel direkt i .htaccess-filen.
# Är Loopia SSL på?
RewriteCond %{HTTP:X-Loopia-SSL} off # Använd inte www här. Om de redan avvänder www så kommer det att komma med,
# annars kommer regeln under att lägga till det.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Skriv om alla anrop till fel domän med rätt anrop och www.
# [NC] sätt på case-insensitive matchning.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Övriga ändringar och mer information
Utöver ovanstående förändringar har även några mindre gjorts i Apache 2.4. De flesta som behöver uppdatera sin kod berörs dock inte av dem. En komplett beskrivning av vad som har uppdaterats hittar du här:
