Använd Storage Server med WordPress: vad som fungerar och vad som inte gör det

Publicerad den 5 min läsning

Inte allt som skrivs om WordPress och extern lagring fungerar också i praktiken. Den här artikeln skiljer de tre fallen: säkerhetskopior går direkt, nedladdningar med lite jobb, och mediebiblioteket bara under ett villkor.

Katalogen wp-content/uploads är den del av WordPress som växer obromsat. Bilder, PDF-filer, videor, och av varje bild dessutom flera storlekar som WordPress skapar automatiskt. Efter ett par år ligger dussintals gigabyte där, och utrymmet på webbservern är det dyraste man kan köpa.

En Storage Server kostar en bråkdel av det. Frågan är bara vad som verkligen går att flytta ut. På nätet står mycket om det som inte fungerar i praktiken. Den här artikeln skiljer de tre fallen rent.

De tre fallen i korthet

VadGår det?Arbete
Säkerhetskopiorja, direkten kvart, kostnadsfritt plugin
Stora nedladdningarjaett litet skript eller ett nedladdningsplugin
Mediebiblioteket, egen serverjamontera en gång, sedan osynligt
Mediebiblioteket, delat webbhotellnejdet passande pluginet saknas

Den sista punkten är den som de flesta snubblar på. Därför först den obekväma sanningen.

Varför det inte finns något plugin för mediebiblioteket

De kända utflyttnings-pluginen för WordPress talar alla samma språk: S3. De ansluter till Amazon S3 eller en kompatibel tjänst, laddar upp filen dit, raderar den lokala kopian och byter adressen i inlägget mot en publik adress hos tjänsten.

Precis det går inte att överföra till en Storage Server, och det av två skäl:

  • Lagringen talar SMB, SFTP och WebDAV, men inget S3.
  • Det finns ingen publik adress per fil. Varje åtkomst är inloggad, det kan alltså inte finnas någon länk som besökarens webbläsare anropar direkt.

Det finns enstaka plugin som arbetar med FTP, men inget med nämnvärd spridning och aktuellt underhåll som flyttar ut hela mediebiblioteket via SFTP eller WebDAV. Hittar du ett bör du före användning se på datumet för den senaste uppdateringen och antalet aktiva installationer.

Vägen som fungerar: montera i stället för att flytta ut

På en egen server med root-rättigheter vänder man på saken. I stället för att lära WordPress tala med främmande lagring flyttar man lagringen till den plats där WordPress ändå skriver:

apt install -y cifs-utils
mkdir -p /mnt/storage
printf 'username=u123456-sub1\npassword=DITT_LOSENORD\n' > /etc/samba/storage.cred
chmod 600 /etc/samba/storage.cred

Rad i /etc/fstab:

//u123456.storage.kernelhost.net/backup /mnt/storage cifs credentials=/etc/samba/storage.cred,uid=www-data,gid=www-data,file_mode=0660,dir_mode=0770,seal,_netdev,nofail 0 0

Därefter flyttar du de befintliga filerna och byter ut katalogen:

mount -a
mkdir -p /mnt/storage/uploads
rsync -a /var/www/example.com/wp-content/uploads/ /mnt/storage/uploads/
mv /var/www/example.com/wp-content/uploads /var/www/example.com/wp-content/uploads.alt
ln -s /mnt/storage/uploads /var/www/example.com/wp-content/uploads

WordPress märker ingenting, för applikationen är det en helt vanlig sökväg. Den gamla katalogen ligger kvar som uploads.alt till att du har kontrollerat att allt fungerar. Radera först då, inte tidigare.

Fällan i det: miniatyrbilderna

WordPress skapar flera storlekar av varje bild och laddar dem vid varje sidvisning. Ligger dessa små filer på nätverkslagringen tillkommer nätverkslatensen per fil, och ett galleri med fyrtio bilder väntar fyrtio gånger.

Två lösningar, båda bra:

  • Sätt en mellanlagring framför, till exempel en cache i webbservern som håller de levererade filerna lokalt.
  • Lägg bara originalen på lagringen och låt de skapade storlekarna ligga lokalt. Det är lite mer arbete, men den renaste vägen för sidor med många bilder.

Säkerhetskopior: den snabbaste nyttan

Gör du bara en sak, gör då den här. En säkerhetskopia på samma server är ingen säkerhetskopia: raderas disken eller krypteras webbplatsen är den med borta. På separat lagring överlever den.

Det kostnadsfria pluginet WPvivid kan i grundversionen säkerhetskopiera till lagringen via SFTP, med tidsplan och bevaranderegel. Den fullständiga anvisningen står i WordPress-säkerhetskopior till Storage Server.

På en egen server går det ännu bättre, nämligen med rsync eller BorgBackup direkt ur en tidsplan. Då överför du bara ändringarna, och BorgBackup deduplicerar dessutom.

Leverera stora nedladdningar

För filer som besökare ska ladda ner är lagringen idealisk: de läses sällan, är stora, och de måste inte vara snabba, bara komma fram. Åtkomsten går via ett litet skript som först kontrollerar behörigheten:

<?php
// i functions.php eller som eget plugin
add_action('template_redirect', function () {
    if (!isset($_GET['kh_download'])) {
        return;
    }
    if (!is_user_logged_in()) {
        wp_die('Logga in först', '', ['response' => 403]);
    }

    $pfad = '/mnt/storage/downloads/' . basename($_GET['kh_download']);
    if (!is_readable($pfad)) {
        wp_die('Filen hittades inte', '', ['response' => 404]);
    }

    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . basename($pfad) . '"');
    header('Content-Length: ' . filesize($pfad));
    readfile($pfad);
    exit;
});

Exemplet utgår från en monterad lagring. Utan montering byter du readfile() mot en SFTP- eller WebDAV-hämtning, så som den beskrivs i Använd Storage Server för din webbplats.

Sidoeffekten är behaglig: eftersom filen aldrig har någon publik adress kan ingen skicka länken vidare. Behörighetskontrollen går inte att gå runt.

Vad som återstår på delat webbhotell

AvsiktDelat webbhotellEgen server
Säkerhetskopiering med pluginjaja
Leverera nedladdningar via PHPja, via WebDAV eller SFTPja
Flytta ut mediebiblioteketnejja, via montering
rsync eller BorgBackupoftast nejja

På delat webbhotell är WebDAV över HTTPS den mest tillförlitliga vägen, eftersom port 443 praktiskt taget aldrig är blockerad. SFTP fungerar också, men körs hos oss på port 23, och inte varje leverantör tillåter utgående anslutningar på sådana portar. Det bör man kontrollera kort före beställningen.

Ett underkonto per ändamål

Varje Storage Server tillåter upp till 100 underkonton, vart och ett med egen startkatalog, eget lösenord och egna protokollbehörigheter. För WordPress betyder det minst två:

  • Ett konto för webbplatsen, som bara ser /uploads.
  • Ett konto för säkerhetskopiorna, som bara ser /backup.

Blir webbplatsen en gång kapad hittar angriparen det första kontots inloggningsuppgifter i wp-config.php. Säkerhetskopiorna förblir orörda, eftersom det kontot inte känner till dem alls. Med ett enda huvudkonto vore allt borta vid den punkten.

När flera användare behöver eget utrymme

En Storage Server känner ingen kvot per underkonto. Ett konto stannar i sin katalog, men kan där fylla hela paketet. Vill du ge kunder, fotografer eller redaktörer var sitt begränsade utrymme sätter du därför en applikation framför, som tar över det. Nextcloud är det mest naturliga valet för det, det har användare, kvoter och delningslänkar med sig: Koppla Nextcloud till Storage Server.

Vilket paket passar

PaketUtrymmeUnderkontonPris
Storage-11 TB1009,99 EUR
Storage-25 TB10029,99 EUR
Storage-310 TB10039,99 EUR
Storage-420 TB10069,99 EUR

För en enda WordPress-sida med säkerhetskopior räcker Storage-1 i regel länge. Den som flyttar ut mediebiblioteken från flera sidor eller arbetar med video hamnar snabbt på Storage-2 eller Storage-3. Alla paket står i Tyskland, kommer utan uppläggningsavgift, faktureras på PrePaid-basis och har ingen bindningstid. Ett byte till det näst större paketet är möjligt när som helst, utan att röra data.

Vanliga frågor

Kan jag flytta ut WordPress-mediebiblioteket till en Storage Server med ett plugin?
Nej, i alla fall inte tillförlitligt. De kända utflyttnings-pluginen talar uteslutande S3 och kompatibla tjänster. För SFTP eller WebDAV finns inget underhållet plugin som flyttar ut hela mediebiblioteket. Den som läser detta och ändå hittar ett plugin bör kontrollera dess uppdateringsdatum och antal installationer.
Hur går det då ändå?
På en egen server med root-rättigheter. Där monterar du lagringen i filsystemet och lägger katalogen wp-content/uploads på den. WordPress märker ingenting, för applikationen är det en helt vanlig sökväg. På delat webbhotell utan root-rättigheter fungerar det inte.
Vad är den enklaste nyttan?
Säkerhetskopior. Ett plugin som WPvivid kan i den kostnadsfria versionen säkerhetskopiera till lagringen via SFTP, det är uppsatt på en kvart och ger trygghet direkt, eftersom säkerhetskopian inte längre ligger på samma maskin som webbplatsen.
Laddas mina bilder långsammare av det?
Bygger du det fel, ja. Miniatyrbilder behövs vid varje sidvisning, och varje åtkomst över nätet kostar tid. Lösningen är att hålla originalen på lagringen och låta de storlekar WordPress skapar ligga lokalt eller mellanlagras.
Kan jag länka nedladdningar direkt till lagringen?
Nej, varje åtkomst till lagringen är inloggad. Du levererar filen via ett litet PHP-skript eller ett nedladdningsplugin som kontrollerar behörigheten och skickar filen vidare. Det är till och med en fördel, eftersom ingen kan skicka länken vidare.
Vilket protokoll väljer jag på delat webbhotell?
WebDAV över HTTPS, eftersom port 443 praktiskt taget aldrig är blockerad. SFTP går också, men körs hos oss på port 23, och vissa webbhotell tillåter inte utgående anslutningar på sådana portar. Det kontrollerar du bäst i förväg.
Behöver jag ett eget underkonto för varje ändamål?
Det är starkt att rekommendera. Varje Storage Server tillåter upp till 100 underkonton med egen katalog och eget lösenord. Blir webbplatsen en gång kapad kommer angriparen då inte åt säkerhetskopiorna, eftersom webbplatsens konto inte ser dem alls.
Hur är det med flera användare som var och en behöver eget utrymme?
För det är lagringen inte gjord på egen hand, eftersom någon kvot per underkonto inte finns. Sätt i så fall Nextcloud framför, det har användare, kvoter och delningar med sig och lägger filerna på lagringen.
Är det värt det för en liten webbplats?
För säkerhetskopior ja, alltid. För mediebiblioteket först när utrymmet på webbservern blir knappt eller dyrt. Som tumregel: så snart du funderar på extra webbutrymme är en Storage Server det billigare svaret.
Vad kostar det?
Storage-1 med 1 TB kostar 9,99 euro i månaden, Storage-2 med 5 TB 29,99, Storage-3 med 10 TB 39,99 och Storage-4 med 20 TB 69,99. Plats Tyskland, ingen uppläggningsavgift, PrePaid och utan bindningstid.

WordPress Storage Server Mediathek Backup Downloads SFTP WebDAV