html-site/public/wordpress-installation.html

102 lines
6.6 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="sv">
<head>
<meta charset="UTF-8">
<title>Webbutveckling 1 - Installation av Wordpress - Fredrick Amnehagen</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Installation av Wordpress.">
<meta name="author" content="Fredrick Amnehagen">
<link rel="icon" href="favicon.ico">
<link rel="icon" href="favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="apple-touch-icon.png">
<link rel="stylesheet" href="css/common.css?v=1.0">
<link rel="stylesheet" href="css/page-wordpress-installation.css?v=1.0">
<!-- Web fonts -->
<link href="https://fonts.cdnfonts.com/css/source-sans-pro" rel="stylesheet">
<link href="https://fonts.cdnfonts.com/css/montserrat" rel="stylesheet">
<link href="https://fonts.cdnfonts.com/css/journal" rel="stylesheet">
<!-- dev voodoo magic line to refresh the page every 5 seconds. Probably very old. -->
<!-- <meta http-equiv="refresh" content="10"> -->
</head>
<body>
<div class="grid-container paper">
<header class="grid-item header">
<h1>Webbutveckling 1</h1>
</header>
<nav class="grid-item navigation grid-container-navigation">
<a href="index.html"><div class="grid-item nav-element nav-button">Presentation</div></a>
<a href="internet-history.html"><div class="grid-item nav-element nav-button">Internets historia & samhällspåverkan</div></a>
<a href="ethics.html"><div class="grid-item nav-element nav-button">Etik och integritet på nätet</div></a>
<a href="wordpress-installation.html"><div class="grid-item nav-element nav-button">Installation av Wordpress</div></a>
</nav>
<section class="grid-item content">
<h2>Installation av Wordpress</h2>
<p>Jag ville sätta upp en Wordpress server så korrekt som möjligt. Med TLS-kryptering från Lets encrypt och automatiska systemuppdateringar, inte automatiska Wordpress-uppdateringar. Linux skulle vara i grunden och MariaDB istället för MySQL för att den är mera öppen och fri.</p>
<p>Ett av mina extraknäck är serverunderhåll, så jag har snubblat in på flera områden tidigare och snappat upp lite här och var. Dessutom så går jag Linux Steg 2 på Valla parallelt med denna webbkurs.</p>
<p>Efter att ha lagt mycket tid och följt många guider samt fyllt en wiki med anteckningar, så fick jag fram följande arbetsflöde:</p>
<h3>Steg 1, en server</h3>
<ul>
<li>Installerade Proxmox som är baserat på Debian. Det är en hypervisor för virtuella maskiner med KVM/QEMU och containers med LXC.</li>
<li>Configurerade automatiska säkerhetsuppdateringar och säkrade brandväggen.</li>
<li>Skapade en Debian 12 mall i en LXC.</li>
<li>Klonade mallen och skapade en MariaDB server med åtkomst endast från LAN.</li>
<li>Klonade mallen och skapade en webbserver med Apache2.
<ul>
<li>Installerade och konfigurerade PHP 8.3 med FPM istället för den gamla modulen för PHP i Apache. FPM är bättre för multitrådade maskiner, alltså alla moderna maskiner.</li>
</ul>
</li>
<li>Klonade Debian 12 mallen en tredje gång för att skapa en maskin som hanterar TLS certifikaten.
<ul>
<li>Installerade Certbot och Lets Encrypt certifikat med automatisk förnyelse.</li>
</ul>
</li>
<li>Automatiserade backuper enligt veckoshema mot mitt NAS.
<ul>
<li>Alla tre LXC:er har varsin backup av både hela containern och filerna samt databasen. Gamla backupper rensas automatiskt genom schemalagda bash-script.</li>
</ul>
</li>
</ul>
<h3>Steg 2, domännamn</h3>
<ul>
<li>Köpte en domän på Loopia.</li>
<li>Pekade om namnservrarna till Cloudflare.</li>
<li>Konfigurerade domänen med DNS i Cloudflare.</li>
<li>Ställde in dynamisk DNS i min router för domännamnet och Cloudflare. DNS får nu automatisk den aktuella IP-adressen enligt schemalagd rutin.</li>
<li><i>Dagdrömmande om egen SMTP server för att skicka mejl från mina egna system...</i></li>
</ul>
<h3>Steg 3, eget webbhotell</h3>
<ul>
<li>Pekade om portarna 80 och 443 till min webbserver LXC.</li>
<li>Skapade en Virtual Host i Apache för hemsidan, för både port 80 och 443. Port 80 omdirigerar trafiken till 443 med HTTPS via rewrite.</li>
<li>Körde certbot kommando för att skapa certifikat för domänen. Ett kommando som går via Cloudflare API istället för att använda apache-metoden som annars är vanlig. Det går då att använda certifikatet till mer än bara hemsidan.</li>
</ul>
<h3>Steg 4, installera wordpress</h3>
<ul>
<li>Föjde denna guide och diverseforumposter för att installera Wordpress, <a href="https://developer.wordpress.org/advanced-administration/before-install/" target="_blank">https://developer.wordpress.org/advanced-administration/before-install/</a>. Den officiella dokumentationen för att installera Wordpress på egen server.</li>
<li>Skapade databasen med charset utf8mb4 och collation utbmb4_unicode_ci, för att få korrekt sortering på alla språk mot en minimal hit mot prestandan. Om man väljer en collation med sitt språk eller general så kan sortering gå fortare, men jag anser att det är bättre att optimera andra aspekter av applikationen, databasarkitekturen samt konfigurationen av databassystemet.</li>
<li>Skapade en användare med fulla rättigheter för wordpress, men planerar att minsta rättigheterna i framtiden för att bättre på säkerheten. Denna artikel pratar om hur man kan bättra på säkerheten i Wordpress-installationer: <a href="https://wordpress.stackexchange.com/a/129489" target="_blank">https://wordpress.stackexchange.com/a/129489</a>.</li>
<li>Hämtade tar-filen till webbsidans mapp, packade upp.</li>
<li>Kopierade konfigurationsmallen och matade in databasuppgifterna samt secrets avsnittet.</li>
<li>Öppnade wordpress sidan i min webbläsare och följde guiden för att ställa in sidans namn och användaruppgiter.</li>
</ul>
<p>Nu är jag redo att komma vidare. Jag hade helt missat att vi skulle skriva uppsats och inte bara installera Wordpress. <i>...Mycket att tänka på som småbarnspappa till flera barn och ekonom på ett åkeri.</i></p>
</section>
<footer class="grid-item footer">
<p class="footer-text">&copy; <a href="mailto:fredrick@amnehagen.com">Fredrick Amnehagen</a> 2024-04-06</p>
</footer>
</div>
</body>
</html>