mod_pagespeed installeren met DirectAdmin

Voordat we onze website hadden vernieuwd ben ik gaan experimenteren met de module mod_pagespeed. Meer informatie over de module kan je in de developer stal van Google vinden. Een korte samenvatting is dat de module de laadtijd van je website verkort. Ik heb de cijfers van mijn eigen test’s helaas niet bewaard en kan je daardoor niet vertellen hoeveel korter de laadtijd van je website is als je deze module gaat gebruiken. Wel kan ik je vertellen hoe je mod_pagespeed op een server met DirectAdmin kan installeren.

Als je gebruik maakt van mod_ruid en een standaard installatie van mod_pagespeed doet dan heb je een probleem. Kenmerken zijn dat bepaalde applicaties niet meer goed werken (ook roundcube) doordat javascript en css ontbreekt. De oorzaak hiervan zijn rechten die niet goed staan voor mod_pagespeed. De module schrijft tijdelijk bestanden weg in een centrale map en gebruikt deze opnieuw om je bestanden sneller aan de bezoeker aan te bieden. Geen nood, met behulp van deze blog los je het op.

Voorbereiding

Voordat we mod_pagespeed gaan installeren passen we eerst de vhosts aan. Anders zullen de web applicaties na installatie van de module zeer waarschijnlijk niet werken door het permissie probleem. Dit is op te lossen door voor elke gebruiker een aparte map aan te maken waar mod_pagespeed zijn tijdelijke bestanden kan plaatsen. Voor elke gebruiker maken we de map /home/username/tmp/mod_pagespeed aan. Voor nieuwe gebruikers doen we dat door het bestand  /usr/local/directadmin/scripts/custom/user_create_post.sh aan te maken:

#!/bin/sh
mkdir /home/$username/tmp/
mkdir /home/$username/tmp/mod_pagespeed/
chown $username:$username /home/$username/tmp/ -R # Stel de juiste rechten in
exit 0;

Voer daarna de volgende commando’s uit:

chown diradmin:diradmin /usr/local/directadmin/scripts/custom/user_create_post.sh
chmod 700 /usr/local/directadmin/scripts/custom/user_create_post.sh

Als je al een bestand hebt met user_create_post.sh voeg dan alleen de mkdir en chown regels toe aan het bestand (boven exit 0;). De permissies staan waarschijnlijk al goed maar het kan nooit kwaad om de bovenstaande commando’s nog een keer uit te voeren.

[alert type=info” close=”false” heading=”Bestaande gebuikers”]

Het bovenstaande bestand is alleen voor nieuwe gebruikers. Voer de volgende commando uit om bestaande gebruikers ook de juiste mappen voor mod_pagespeed te geven:

ls /usr/local/directadmin/data/users | awk '{system("mkdir /home/" $1 "/tmp; mkdir /home/" $1 "/tmp/mod_pagespeed; chown "$1":"$1" /home/"$1"/tmp -R ")}'

[/alert]

Nu de mappen en rechten goed staan moeten we mod_pagespeed gaan vertellen dat iedere DirectAdmin gebruiker zijn eigen tijdelijke mod_pagespeed map heeft. Dat kan door in de vhost een instelling aan te maken met het volgende:

ModPagespeedFileCachePath /home/gebruikersnaam/tmp/mod_pagespeed

Hoe doen we dat? Om te beginnen heeft DirectAdmin de mogelijkheid om eigen virtual host templates te maken. Om te beginnen nemen we de bestaande templates over van het origineel. Als je al een eigen virtual host template hebt dan hoef je de volgende commando’s niet uit te voeren (behalve de cd commando). Heb je nog geen eigen virtual host template bestanden voer dan de volgende commando’s uit:

cd /usr/local/directadmin/data/templates/custom
cp ../virtual_host2.conf .
cp ../virtual_host2_secure.conf .
cp ../virtual_host2_secure_sub.conf .
cp ../virtual_host2_sub.conf .

Pas nu alle virtual_host2*.conf bestanden aan en voeg het volgende toe op een nieuwe regel na “ServerAdmin |ADMIN|”:

<IfModule pagespeed_module>
ModPagespeedFileCachePath /home/|USER|/tmp/mod_pagespeed
</IfModule>

Als je dat bij elk bestand hebt gedaan gaan we DirectAdmin vertellen dat we nieuwe instellingen hebben. Dit doen we met de volgende commando’s:

echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq
/usr/local/directadmin/dataskq

Nu weet DirectAdmin welke instellingen gebruikt moeten worden als mod_pagespeed is geïnstalleerd.

Mod_pagespeed installeren

Kies één van de volgende commando’s uit. X86 staat gelijk aan een 32 bits besturingssysteem.

CentOS/Fedora 32 bit
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm
rpm -ivh --nodeps mod-pagespeed-stable_current_i386.rpm
CentOS/Fedora 64 bit
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
rpm -ivh --nodeps mod-pagespeed-stable_current_x86_64.rpm
Debian/Ubuntu 32 bit
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
dpkg -i mod-pagespeed-stable_current_i386.deb
Debian/Ubuntu 64 bit
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
dpkg -i mod-pagespeed-stable_current_amd64.deb

Na het uitvoeren van de installatie hoef je alleen nog apache te herstarten. Dit kan per besturingssysteem verschillen: voor CentOS is dit:

service httpd restart

[alert]

Mod_pagespeed uitschakelen

Als een gebruiker niet wenst om de module te gebruiken dan kan mod_pagespeed met een simpele aanpassing de module uitschakelen. Maak een .htaccess aan (of bewerk de bestaande .htaccess) en voeg dit stukje code toe:

ModPagespeed off

De wijziging is direct na het opslaan van toepassing. Als je het weer wil inschakelen dan hoef je alleen maar de code weg te halen.

[/alert]

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *