645 lines
32 KiB
HTML
645 lines
32 KiB
HTML
|
|
<!DOCTYPE html>
|
||
|
|
<html lang="de" dir="ltr">
|
||
|
|
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script>
|
||
|
|
<title>Moodle Server mit Ubuntu 20 LTS und Iomad :: Jörg Lohrer - Example site for hugo-theme-tailwind</title>
|
||
|
|
|
||
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
|
|
<meta
|
||
|
|
name="description"
|
||
|
|
content="Moodle Server mit Ubuntu 20 LTS und Iomad Ubuntu Server-Image herunterladen https://releases.ubuntu.com/20.04/ Virtualbox mit dem Ubuntu Image einrichten Netzwerkbrücke aktivieren IP-Adresse ermitteln ifconfig -> 192.168.178.132
|
||
|
|
Auf dem Mac (oder PC) die Auflösung des Hosts verknüpfen auf dem Mac sudo nano /etc/hosts die IP eintragen und moodle.local zuweisen: "
|
||
|
|
/>
|
||
|
|
<meta
|
||
|
|
name="keywords"
|
||
|
|
content="hugo, tailwind, tailwindcss, hugo theme, hugo theme tailwind"
|
||
|
|
/>
|
||
|
|
<meta name="robots" content="noodp" /><link rel="manifest" href="/manifest.json" /><meta property="og:url" content="http://localhost:1313/2022/02/16/moodle-iomad-linux.html/">
|
||
|
|
<meta property="og:site_name" content="Jörg Lohrer">
|
||
|
|
<meta property="og:title" content="Moodle Server mit Ubuntu 20 LTS und Iomad">
|
||
|
|
<meta property="og:description" content="Installation von Iomad zur Moodle-Instanz-Verwaltung">
|
||
|
|
<meta property="og:locale" content="de">
|
||
|
|
<meta property="og:type" content="article">
|
||
|
|
<meta property="article:section" content="posts">
|
||
|
|
<meta property="article:published_time" content="2022-02-16T00:00:00+00:00">
|
||
|
|
<meta property="article:modified_time" content="2022-02-16T00:00:00+00:00">
|
||
|
|
<meta property="article:tag" content="Moodle">
|
||
|
|
<meta property="article:tag" content="Ubuntu">
|
||
|
|
<meta property="article:tag" content="Linux">
|
||
|
|
<meta property="article:tag" content="Iomad">
|
||
|
|
<meta property="article:tag" content="Server">
|
||
|
|
<meta property="article:tag" content="MySql">
|
||
|
|
|
||
|
|
|
||
|
|
<meta name="twitter:card" content="summary">
|
||
|
|
<meta name="twitter:title" content="Moodle Server mit Ubuntu 20 LTS und Iomad">
|
||
|
|
<meta name="twitter:description" content="Installation von Iomad zur Moodle-Instanz-Verwaltung">
|
||
|
|
|
||
|
|
|
||
|
|
<link rel="canonical" href="http://localhost:1313/2022/02/16/moodle-iomad-linux.html/" />
|
||
|
|
|
||
|
|
<link rel="shortcut icon" href="/favicon.ico" />
|
||
|
|
<link rel="stylesheet" href="/css/index.f2b5b9c8e4e9b03048601ca9eedc29df44c3a73343f4538f41785e16f13c341a.css">
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
</head>
|
||
|
|
<body class="flex flex-col min-h-screen w-full bg-slate-50 dark:bg-gray-800">
|
||
|
|
|
||
|
|
<div class="fixed right-0 top-0 z-50 flex items-center justify-center bg-gray-200 p-2 text-sm uppercase text-black sm:bg-red-200 md:bg-yellow-200 lg:bg-green-200 xl:bg-blue-200 2xl:bg-pink-200">
|
||
|
|
<span class="block sm:hidden">all</span>
|
||
|
|
<span class="hidden sm:block md:hidden">sm</span>
|
||
|
|
<span class="hidden md:block lg:hidden">md</span>
|
||
|
|
<span class="hidden lg:block xl:hidden">lg</span>
|
||
|
|
<span class="hidden xl:block 2xl:hidden">xl</span>
|
||
|
|
<span class="hidden 2xl:block">2xl</span>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<header class="flex flex-none justify-center z-10">
|
||
|
|
<div class="flex flex-row gap justify-between w-full max-w-4xl lg:max-w-5xl h-12 mt-3">
|
||
|
|
<div class="flex-none ml-2 md:ml-0">
|
||
|
|
<a href="/" class="">
|
||
|
|
<img class="h-12 w-12 rounded-full object-cover bg-gray-100" src="/joerg-profil-2024.webp" alt="logo">
|
||
|
|
</a>
|
||
|
|
</div>
|
||
|
|
<div class="flex-1"></div>
|
||
|
|
<div class="flex-none">
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<nav class="h-full static">
|
||
|
|
<button id="navbar-menu-toggle" type="button" class="inline-flex items-center p-2 text-sm text-slate-800 dark:text-slate-200 rounded-lg md:hidden" aria-controls="navbar-menu" aria-expanded="false">
|
||
|
|
<span class="sr-only">Hauptmenü öffnen</span>
|
||
|
|
<i class="w-8 h-8">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-menu-2" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||
|
|
<path d="M4 6l16 0" />
|
||
|
|
<path d="M4 12l16 0" />
|
||
|
|
<path d="M4 18l16 0" />
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
</button>
|
||
|
|
<div class="absolute md:static top-16 left-0 right-0 z-50 hidden w-full md:block md:w-auto" id="navbar-menu">
|
||
|
|
<ul class="flex flex-col mx-2 md:mx-0 md:flex-row md:border-0 rounded-sm md:rounded-full px-3 text-base font-medium text-slate-800 dark:text-slate-200 shadow-lg bg-white dark:bg-gray-600 shadow-slate-800/5 dark:shadow-slate-200/5 ring-1 ring-slate-900/5 dark:ring-slate-100/5">
|
||
|
|
|
||
|
|
<li id="" class="">
|
||
|
|
<a class="block px-3 py-3 hover:text-emerald-600"
|
||
|
|
href="/" title="Home">Home</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
|
||
|
|
<li id="" class="">
|
||
|
|
<a class="block px-3 py-3 hover:text-emerald-600"
|
||
|
|
href="/tags/" title="Schlagworte">Schlagworte</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
|
||
|
|
<li id="" class="">
|
||
|
|
<a class="block px-3 py-3 hover:text-emerald-600"
|
||
|
|
href="/impressum/" title="Impressum">Impressum</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
|
||
|
|
<li id="" class="">
|
||
|
|
<a class="block px-3 py-3 hover:text-emerald-600"
|
||
|
|
href="https://reliverse.social/@joerglohrer" title="Mastodon">Mastodon</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
|
||
|
|
</ul>
|
||
|
|
</div>
|
||
|
|
</nav>
|
||
|
|
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="flex-none mx-1"></div>
|
||
|
|
|
||
|
|
<div class="flex-none md:hidden">
|
||
|
|
<a href=/search/ class="inline-flex items-center p-2 text-sm text-slate-800 dark:text-slate-200 rounded-lg" aria-controls="navbar-menu" aria-expanded="false">
|
||
|
|
<span class="sr-only">Suche</span>
|
||
|
|
<i class="w-8 h-8">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
|
||
|
|
<path d="M10 10m-7 0a7 7 0 1 0 14 0a7 7 0 1 0 -14 0" />
|
||
|
|
<path d="M21 21l-6 -6" />
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
</a>
|
||
|
|
</div>
|
||
|
|
<div class="darkmode-toggle flex flex-none mr-2 md:mr-0">
|
||
|
|
<label for="darkmode-toggle" class="flex items-center px-3 cursor-pointer rounded-full bg-gray-100 dark:bg-gray-600" title="Dark Mode umschalten">
|
||
|
|
<input name="darkmode-toggle" id="darkmode-toggle" type="checkbox" class="sr-only peer" aria-label="Dark Mode umschalten">
|
||
|
|
<div class="group flex flex-row gap-1 justify-center h-8 px-1 rounded-full bg-white dark:bg-gray-700">
|
||
|
|
<i class="h-6 w-6 flex-none rounded-full bg-yellow-400 place-self-center peer-checked:group-[]:invisible">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brightness-down" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
||
|
|
<path d="M12 5l0 .01"></path>
|
||
|
|
<path d="M17 7l0 .01"></path>
|
||
|
|
<path d="M19 12l0 .01"></path>
|
||
|
|
<path d="M17 17l0 .01"></path>
|
||
|
|
<path d="M12 19l0 .01"></path>
|
||
|
|
<path d="M7 17l0 .01"></path>
|
||
|
|
<path d="M5 12l0 .01"></path>
|
||
|
|
<path d="M7 7l0 .01"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<i class="h-6 w-6 flex-none rounded-full place-self-center invisible peer-checked:group-[]:visible">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-moon-stars" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"></path>
|
||
|
|
<path d="M17 4a2 2 0 0 0 2 2a2 2 0 0 0 -2 2a2 2 0 0 0 -2 -2a2 2 0 0 0 2 -2"></path>
|
||
|
|
<path d="M19 11h2m-1 -1v2"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
</div>
|
||
|
|
</label>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</header>
|
||
|
|
<main class="flex flex-auto justify-center">
|
||
|
|
|
||
|
|
<div class="w-full max-w-4xl lg:max-w-5xl">
|
||
|
|
<div class="flex flex-col mt-6 mx-2 md:mx-0 rounded-lg overflow-hidden shadow-md bg-white dark:bg-gray-700">
|
||
|
|
<div>
|
||
|
|
<a href="/2022/02/16/moodle-iomad-linux.html/">
|
||
|
|
<picture>
|
||
|
|
<source type="image/webp" srcset="/2022/02/16/moodle-iomad-linux.html/title-gif_hu3623969665034820503.webp 960w" sizes="(min-width: 1024px) 100vw, 50vw" />
|
||
|
|
<source type="image/jpeg" srcset="/2022/02/16/moodle-iomad-linux.html/title-gif_hu17894921011820061086.jpg 960w" sizes="(min-width: 1024px) 100vw, 50vw" />
|
||
|
|
<img class="w-full object-cover h-36 md:h-48 xl:h-60" src="/2022/02/16/moodle-iomad-linux.html/title-gif_hu3721531138749118599.jpg" width="1440" height="810" alt="Moodle Server mit Ubuntu 20 LTS und Iomad" title="Moodle Server mit Ubuntu 20 LTS und Iomad" loading="lazy" />
|
||
|
|
</picture>
|
||
|
|
</a>
|
||
|
|
</div>
|
||
|
|
<div class="flex flex-col gap-y-3 p-6">
|
||
|
|
<h1 class="text-4xl font-semibold text-slate-800 dark:text-slate-100">
|
||
|
|
<a href="/2022/02/16/moodle-iomad-linux.html/">Moodle Server mit Ubuntu 20 LTS und Iomad</a>
|
||
|
|
</h1>
|
||
|
|
|
||
|
|
|
||
|
|
<h2 class="my-4 text-large text-slate-600 dark:text-slate-300">
|
||
|
|
Installation von Iomad zur Moodle-Instanz-Verwaltung
|
||
|
|
</h2>
|
||
|
|
|
||
|
|
|
||
|
|
<ul class="flex flex-row flex-wrap text-slate-500 dark:text-slate-300">
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/moodle/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">Moodle</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/ubuntu/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">Ubuntu</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/linux/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">Linux</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/iomad/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">Iomad</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/server/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">Server</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/mysql/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">MySql</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
<li>
|
||
|
|
<a href="/tags/datenbank/"
|
||
|
|
class="flex flex-row text-sm mr-2 py-1">
|
||
|
|
<i class="h-5 w-5 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M5 9l14 0"></path>
|
||
|
|
<path d="M5 15l14 0"></path>
|
||
|
|
<path d="M11 4l-4 16"></path>
|
||
|
|
<path d="M17 4l-4 16"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span class="ml-0">Datenbank</span>
|
||
|
|
</a>
|
||
|
|
</li>
|
||
|
|
|
||
|
|
|
||
|
|
</ul>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<div class="flex flex-col gap-y-1 md:flex-row md:gap-y-0 md:gap-x-4 text-slate-500 dark:text-slate-300">
|
||
|
|
|
||
|
|
|
||
|
|
<div class="flex flex-row text-base gap-x-1">
|
||
|
|
<i class="h-6 w-6 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-calendar" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M4 7a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12z"></path>
|
||
|
|
<path d="M16 3v4"></path>
|
||
|
|
<path d="M8 3v4"></path>
|
||
|
|
<path d="M4 11h16"></path>
|
||
|
|
<path d="M11 15h1"></path>
|
||
|
|
<path d="M12 15v3"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<time datetime="2022-02-16T00:00:00+00:00">
|
||
|
|
2022-02-16
|
||
|
|
</time>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="flex flex-row text-base gap-x-1">
|
||
|
|
<i class="h-6 w-6 flex-none">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hourglass-high" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M6.5 7h11"></path>
|
||
|
|
<path d="M6 20v-2a6 6 0 1 1 12 0v2a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1z"></path>
|
||
|
|
<path d="M6 4v2a6 6 0 1 0 12 0v-2a1 1 0 0 0 -1 -1h-10a1 1 0 0 0 -1 1z"></path>
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
<span>
|
||
|
|
Lesezeit 2 Minuten
|
||
|
|
</span>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<section class="prose prose-slate dark:prose-invert w-full max-w-4xl lg:max-w-5xl mt-6">
|
||
|
|
<h2>Inhaltsverzeichnis</h2>
|
||
|
|
<aside><nav id="TableOfContents">
|
||
|
|
<ul>
|
||
|
|
<li><a href="#ubuntu-server-image-herunterladen">Ubuntu Server-Image herunterladen</a></li>
|
||
|
|
<li><a href="#virtualbox-mit-dem-ubuntu-image-einrichten">Virtualbox mit dem Ubuntu Image einrichten</a>
|
||
|
|
<ul>
|
||
|
|
<li><a href="#netzwerkbrücke-aktivieren">Netzwerkbrücke aktivieren</a></li>
|
||
|
|
<li><a href="#ip-adresse-ermitteln">IP-Adresse ermitteln</a></li>
|
||
|
|
<li><a href="#auf-dem-mac-oder-pc-die-auflösung-des-hosts-verknüpfen">Auf dem Mac (oder PC) die Auflösung des Hosts verknüpfen</a></li>
|
||
|
|
</ul>
|
||
|
|
</li>
|
||
|
|
<li><a href="#moodle-server-auf-virtualbox-vorbereiten">Moodle Server auf Virtualbox vorbereiten</a>
|
||
|
|
<ul>
|
||
|
|
<li><a href="#ssh-zugriff-ermöglichen">SSH Zugriff ermöglichen</a></li>
|
||
|
|
<li><a href="#shellbefehle-zur-installation">Shellbefehle zur Installation:</a></li>
|
||
|
|
<li><a href="#anlegen-etcapache2sites-availablemoodleconf">anlegen: /etc/apache2/sites-available/moodle.conf</a></li>
|
||
|
|
<li><a href="#weitere-shellbefehle-zur-installation">Weitere Shellbefehle zur Installation:</a></li>
|
||
|
|
<li><a href="#host-eintrag-hinzufügen-192168178xxx-moodlelocal">host eintrag hinzufügen: “192.168.178.xxx moodle.local”</a></li>
|
||
|
|
<li><a href="#im-browser-öffnen-httpmoodlelocalinfophp">im Browser öffnen: <a href="http://moodle.local/info.php">http://moodle.local/info.php</a></a></li>
|
||
|
|
<li><a href="#maschine-speichern-und-klonen">maschine speichern und klonen</a></li>
|
||
|
|
</ul>
|
||
|
|
</li>
|
||
|
|
<li><a href="#anschließend-iomad-moodle-installieren">Anschließend IOMAD moodle installieren:</a>
|
||
|
|
<ul>
|
||
|
|
<li><a href="#datenbank-für-moodle-erzeugen-via-ssh">Datenbank für moodle erzeugen via SSH:</a></li>
|
||
|
|
<li><a href="#installation-iomad">Installation iomad</a></li>
|
||
|
|
<li><a href="#httpmoodlelocal-aufrufen-und-configphp-datei-mit-hilfe-des-assistenten-generieren-lassen"><a href="http://moodle.local">http://moodle.local</a> aufrufen und config.php Datei mit Hilfe des Assistenten generieren lassen</a></li>
|
||
|
|
<li><a href="#configphp">config.php</a></li>
|
||
|
|
</ul>
|
||
|
|
</li>
|
||
|
|
</ul>
|
||
|
|
</nav></aside>
|
||
|
|
</section>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<article class="mt-6 w-full max-w-4xl lg:max-w-5xl prose prose-slate dark:prose-invert prose-quoteless post-content">
|
||
|
|
<h1 id="moodle-server-mit-ubuntu-20-lts-und-iomad">Moodle Server mit Ubuntu 20 LTS und Iomad</h1>
|
||
|
|
<h2 id="ubuntu-server-image-herunterladen">Ubuntu Server-Image herunterladen</h2>
|
||
|
|
<p><a href="https://releases.ubuntu.com/20.04/" target="_blank" rel="noopener">https://releases.ubuntu.com/20.04/</a>
|
||
|
|
</p>
|
||
|
|
<h2 id="virtualbox-mit-dem-ubuntu-image-einrichten">Virtualbox mit dem Ubuntu Image einrichten</h2>
|
||
|
|
<h3 id="netzwerkbrücke-aktivieren">Netzwerkbrücke aktivieren</h3>
|
||
|
|
<p><div class="not-prose">
|
||
|
|
<picture>
|
||
|
|
<source type="image/webp" srcset="/2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu16852899275597617734.webp 320w, /2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu9409710355968461671.webp 640w, /2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu2050422444914045510.webp 960w, /2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu5349805855501300020.webp 1280w" sizes="(min-width: 1024px) 100vw, 50vw" />
|
||
|
|
<source type="image/jpeg" srcset="/2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu17647642909661686562.jpg 320w, /2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu5042484230805009626.jpg 640w, /2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu8139939129482603142.jpg 960w, /2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu7635719699381927071.jpg 1280w" sizes="(min-width: 1024px) 100vw, 50vw" />
|
||
|
|
<img class="h-auto max-w-full rounded-lg" src="/2022/02/16/moodle-iomad-linux.html/01-netzwerkbruecke_hu5042484230805009626.jpg" width="1350" height="984" alt="" title="" loading="lazy" />
|
||
|
|
</picture>
|
||
|
|
</div>
|
||
|
|
</p>
|
||
|
|
<h3 id="ip-adresse-ermitteln">IP-Adresse ermitteln</h3>
|
||
|
|
<p><code>ifconfig </code> -> 192.168.178.132</p>
|
||
|
|
<h3 id="auf-dem-mac-oder-pc-die-auflösung-des-hosts-verknüpfen">Auf dem Mac (oder PC) die Auflösung des Hosts verknüpfen</h3>
|
||
|
|
<p>auf dem Mac <code>sudo nano /etc/hosts</code> die IP eintragen und moodle.local zuweisen:
|
||
|
|
<div class="not-prose">
|
||
|
|
<picture>
|
||
|
|
<source type="image/webp" srcset="/2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu1219182166375429365.webp 320w, /2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu6647259199079463737.webp 640w, /2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu12518742203076258003.webp 960w" sizes="(min-width: 1024px) 100vw, 50vw" />
|
||
|
|
<source type="image/jpeg" srcset="/2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu9393402586358471159.jpg 320w, /2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu15905914641083743300.jpg 640w, /2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu17948746361618212520.jpg 960w" sizes="(min-width: 1024px) 100vw, 50vw" />
|
||
|
|
<img class="h-auto max-w-full rounded-lg" src="/2022/02/16/moodle-iomad-linux.html/02-hosts-eintragen_hu15905914641083743300.jpg" width="1064" height="272" alt="" title="" loading="lazy" />
|
||
|
|
</picture>
|
||
|
|
</div>
|
||
|
|
</p>
|
||
|
|
<h2 id="moodle-server-auf-virtualbox-vorbereiten">Moodle Server auf Virtualbox vorbereiten</h2>
|
||
|
|
<p><code>sudo -i</code>wechselt auf root</p>
|
||
|
|
<h3 id="ssh-zugriff-ermöglichen">SSH Zugriff ermöglichen</h3>
|
||
|
|
<p><a href="https://linuxconfig.org/allow-ssh-root-login-on-ubuntu-20-04-focal-fossa-linux" target="_blank" rel="noopener">Allow SSH root login on Ubuntu 20.04 Focal Fossa Linux</a>
|
||
|
|
</p>
|
||
|
|
<h3 id="shellbefehle-zur-installation">Shellbefehle zur Installation:</h3>
|
||
|
|
<pre tabindex="0"><code class="language-shell=" data-lang="shell=">sudo apt update && apt upgrade -y
|
||
|
|
|
||
|
|
apt install mariadb-server
|
||
|
|
sudo apt install apache2 libapache2-mod-fcgid
|
||
|
|
sudo apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-intl php-xmlrpc php-soap
|
||
|
|
a2enconf php7.4-fpm
|
||
|
|
|
||
|
|
sudo a2enmod actions fcgid alias proxy_fcgi setenvif
|
||
|
|
|
||
|
|
a2dismod php7.4
|
||
|
|
a2dismod mpm_prefork
|
||
|
|
a2dismod mpm_worker
|
||
|
|
|
||
|
|
a2enmod mpm_event
|
||
|
|
|
||
|
|
systemctl restart php7.4-fpm apache2
|
||
|
|
</code></pre><h3 id="anlegen-etcapache2sites-availablemoodleconf">anlegen: /etc/apache2/sites-available/moodle.conf</h3>
|
||
|
|
<pre tabindex="0"><code class="language-shell=" data-lang="shell=">############################
|
||
|
|
<VirtualHost *:80>
|
||
|
|
ServerName moodle.local
|
||
|
|
|
||
|
|
ServerAdmin webmaster@localhost
|
||
|
|
DocumentRoot /var/www/moodle
|
||
|
|
|
||
|
|
<FilesMatch \.php$>
|
||
|
|
SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"
|
||
|
|
</FilesMatch>
|
||
|
|
|
||
|
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||
|
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||
|
|
|
||
|
|
</VirtualHost>
|
||
|
|
####################################################################
|
||
|
|
</code></pre><h3 id="weitere-shellbefehle-zur-installation">Weitere Shellbefehle zur Installation:</h3>
|
||
|
|
<pre tabindex="0"><code class="language-shell=" data-lang="shell=">a2ensite moodle.conf
|
||
|
|
systemctl reload apache2
|
||
|
|
|
||
|
|
mkdir /var/www/moodle
|
||
|
|
echo '<?php phpinfo(); ?>' > /var/www/moodle/info.php
|
||
|
|
</code></pre><h3 id="host-eintrag-hinzufügen-192168178xxx-moodlelocal">host eintrag hinzufügen: “192.168.178.xxx moodle.local”</h3>
|
||
|
|
<p>192.168.178.xxx moodle.local
|
||
|
|
192.168.178.xxx <a href="https://www.moodle.local" target="_blank" rel="noopener">www.moodle.local</a>
|
||
|
|
</p>
|
||
|
|
<h3 id="im-browser-öffnen-httpmoodlelocalinfophp">im Browser öffnen: <a href="http://moodle.local/info.php" target="_blank" rel="noopener">http://moodle.local/info.php</a>
|
||
|
|
</h3>
|
||
|
|
<h3 id="maschine-speichern-und-klonen">maschine speichern und klonen</h3>
|
||
|
|
<h2 id="anschließend-iomad-moodle-installieren">Anschließend IOMAD moodle installieren:</h2>
|
||
|
|
<p><a href="https://www.iomad.org/wp-content/uploads/2021/03/Iomad-Installation-Guide.pdf" target="_blank" rel="noopener">https://www.iomad.org/wp-content/uploads/2021/03/Iomad-Installation-Guide.pdf</a>
|
||
|
|
</p>
|
||
|
|
<h3 id="datenbank-für-moodle-erzeugen-via-ssh">Datenbank für moodle erzeugen via SSH:</h3>
|
||
|
|
<pre tabindex="0"><code class="language-shell=" data-lang="shell=">
|
||
|
|
mysql
|
||
|
|
|
||
|
|
CREATE DATABASE moodledb;
|
||
|
|
CREATE USER 'moodleowner'@'localhost' IDENTIFIED BY '$mdb2passwd';
|
||
|
|
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON moodledb.* TO 'moodleowner'@'localhost';
|
||
|
|
GRANT FILE ON *.* TO 'moodleowner'@'localhost';
|
||
|
|
|
||
|
|
quit
|
||
|
|
</code></pre><h3 id="installation-iomad">Installation iomad</h3>
|
||
|
|
<pre tabindex="0"><code class="language-shell=" data-lang="shell=">cd /var/www/moodle
|
||
|
|
git clone https://github.com/iomad/iomad.git
|
||
|
|
cd iomad
|
||
|
|
git checkout -b myiomad origin/IOMAD_310_STABLE
|
||
|
|
mkdir /var/www/moodledata && chmod 777 /var/www/moodledata
|
||
|
|
</code></pre><p><strong>ändern!!!</strong>: <code>/etc/apache2/sites-available/moodle.conf -> DocumentRoot /var/www/moodle/iomad</code></p>
|
||
|
|
<p><code>systemctl restart php7.4-fpm apache2</code></p>
|
||
|
|
<h3 id="httpmoodlelocal-aufrufen-und-configphp-datei-mit-hilfe-des-assistenten-generieren-lassen"><a href="http://moodle.local" target="_blank" rel="noopener">http://moodle.local</a>
|
||
|
|
aufrufen und config.php Datei mit Hilfe des Assistenten generieren lassen</h3>
|
||
|
|
<p></p>
|
||
|
|
<p><strong>ändern!!!</strong>: <code>/moodle</code> entfernen</p>
|
||
|
|
<h3 id="configphp">config.php</h3>
|
||
|
|
<pre tabindex="0"><code class="language-shell=" data-lang="shell="><?php // Moodle configuration file
|
||
|
|
|
||
|
|
unset($CFG);
|
||
|
|
global $CFG;
|
||
|
|
$CFG = new stdClass();
|
||
|
|
|
||
|
|
$CFG->dbtype = 'mariadb';
|
||
|
|
$CFG->dblibrary = 'native';
|
||
|
|
$CFG->dbhost = 'localhost';
|
||
|
|
$CFG->dbname = 'moodledb';
|
||
|
|
$CFG->dbuser = 'moodleowner';
|
||
|
|
$CFG->dbpass = '$mdb2passwd';
|
||
|
|
$CFG->prefix = 'mdl_';
|
||
|
|
$CFG->dboptions = array (
|
||
|
|
'dbpersist' => 0,
|
||
|
|
'dbport' => '',
|
||
|
|
'dbsocket' => '',
|
||
|
|
'dbcollation' => 'utf8mb4_general_ci',
|
||
|
|
);
|
||
|
|
|
||
|
|
$CFG->wwwroot = 'http://moodle.local';
|
||
|
|
$CFG->dataroot = '/var/www/moodledata';
|
||
|
|
$CFG->admin = 'admin';
|
||
|
|
|
||
|
|
$CFG->directorypermissions = 0777;
|
||
|
|
|
||
|
|
require_once(__DIR__ . '/lib/setup.php');
|
||
|
|
|
||
|
|
// There is no php closing tag in this file,
|
||
|
|
// it is intentional because it prevents trailing whitespace problems!
|
||
|
|
</code></pre>
|
||
|
|
</article>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</main>
|
||
|
|
<footer class="flex flex-none justify-center">
|
||
|
|
<section class="flex flex-col md:flex-row mx-2 md:mx-0 gap-2 md:gap-0 justify-between w-full max-w-4xl lg:max-w-5xl py-6 text-slate-500 dark:text-slate-300">
|
||
|
|
<div class="flex flex-row">
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<a href="https://reliverse.social/@joerglohrer" target="_blank" title="Mastodon" class="flex flex-row mr-2">
|
||
|
|
<span class="hidden">Mastodon</span>
|
||
|
|
<i class="h-6 w-6 flex-none"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-mastodon"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18.648 15.254c-1.816 1.763 -6.648 1.626 -6.648 1.626a18.262 18.262 0 0 1 -3.288 -.256c1.127 1.985 4.12 2.81 8.982 2.475c-1.945 2.013 -13.598 5.257 -13.668 -7.636l-.026 -1.154c0 -3.036 .023 -4.115 1.352 -5.633c1.671 -1.91 6.648 -1.666 6.648 -1.666s4.977 -.243 6.648 1.667c1.329 1.518 1.352 2.597 1.352 5.633s-.456 4.074 -1.352 4.944z" /><path d="M12 11.204v-2.926c0 -1.258 -.895 -2.278 -2 -2.278s-2 1.02 -2 2.278v4.722m4 -4.722c0 -1.258 .895 -2.278 2 -2.278s2 1.02 2 2.278v4.722" /></svg> </i>
|
||
|
|
</a>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<a href="https://nostrrr.com/p/npub1mmful66pyasny86vdxtm0d2v9v572hjtmx0ufaa2t4m9hxartuxs4wu69w" target="_blank" title="nostr" class="flex flex-row mr-2">
|
||
|
|
<span class="hidden">nostr</span>
|
||
|
|
<i class="h-6 w-6 flex-none"> <?xml version="1.0" encoding="UTF-8"?>
|
||
|
|
<svg id="_8" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><defs><style>.cls-1{fill:none;}.cls-2{fill:#fff;}.cls-3{fill:#662482;}</style></defs><path class="cls-2" d="m231.16,159.49c0,20.71,0,31.07-3.53,42.22-4.43,12.17-14.02,21.76-26.19,26.19-11.15,3.53-21.5,3.53-42.22,3.53h-62.46c-20.71,0-31.06,0-42.21-3.53-12.17-4.43-21.76-14.02-26.19-26.19-3.53-11.15-3.53-21.5-3.53-42.22v-62.46c0-20.71,0-31.07,3.53-42.22,4.43-12.17,14.02-21.76,26.19-26.19,11.15-3.52,21.5-3.52,42.21-3.52h62.46c20.71,0,31.07,0,42.22,3.52,12.17,4.43,21.76,14.02,26.19,26.19,3.53,11.15,3.53,21.5,3.53,42.22v62.46Z"/><path class="cls-3" d="m210.81,116.2v83.23c0,3.13-2.54,5.67-5.67,5.67h-68.04c-3.13,0-5.67-2.54-5.67-5.67v-15.5c.31-19,2.32-37.2,6.54-45.48,2.53-4.98,6.7-7.69,11.49-9.14,9.05-2.72,24.93-.86,31.67-1.18,0,0,20.36.81,20.36-10.72,0-9.28-9.1-8.55-9.1-8.55-10.03.26-17.67-.42-22.62-2.37-8.29-3.26-8.57-9.24-8.6-11.24-.41-23.1-34.47-25.87-64.48-20.14-32.81,6.24.36,53.27.36,116.05v8.38c-.06,3.08-2.55,5.57-5.65,5.57h-33.69c-3.13,0-5.67-2.54-5.67-5.67V55.49c0-3.13,2.54-5.67,5.67-5.67h31.67c3.13,0,5.67,2.54,5.67,5.67,0,4.65,5.23,7.24,9.01,4.53,11.39-8.16,26.01-12.51,42.37-12.51,36.65,0,64.36,21.36,64.36,68.69Zm-60.84-16.89c0-6.7-5.43-12.13-12.13-12.13s-12.13,5.43-12.13,12.13,5.43,12.13,12.13,12.13,12.13-5.43,12.13-12.13Z"/><rect class="cls-1" /></svg> </i>
|
||
|
|
</a>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<a href="https://bsky.app/profile/joerglohrer.bsky.social" target="_blank" title="Bluesky" class="flex flex-row mr-2">
|
||
|
|
<span class="hidden">Bluesky</span>
|
||
|
|
<i class="h-6 w-6 flex-none"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-bluesky"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6.335 5.144c-1.654 -1.199 -4.335 -2.127 -4.335 .826c0 .59 .35 4.953 .556 5.661c.713 2.463 3.13 2.75 5.444 2.369c-4.045 .665 -4.889 3.208 -2.667 5.41c1.03 1.018 1.913 1.59 2.667 1.59c2 0 3.134 -2.769 3.5 -3.5c.333 -.667 .5 -1.167 .5 -1.5c0 .333 .167 .833 .5 1.5c.366 .731 1.5 3.5 3.5 3.5c.754 0 1.637 -.571 2.667 -1.59c2.222 -2.203 1.378 -4.746 -2.667 -5.41c2.314 .38 4.73 .094 5.444 -2.369c.206 -.708 .556 -5.072 .556 -5.661c0 -2.953 -2.68 -2.025 -4.335 -.826c-2.293 1.662 -4.76 5.048 -5.665 6.856c-.905 -1.808 -3.372 -5.194 -5.665 -6.856z" /></svg> </i>
|
||
|
|
</a>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
<a href="https://www.instagram.com/joerglohrer" target="_blank" title="Instagram" class="flex flex-row mr-2">
|
||
|
|
<span class="hidden">Instagram</span>
|
||
|
|
<i class="h-6 w-6 flex-none"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-instagram" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M4 4m0 4a4 4 0 0 1 4 -4h8a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4z"></path>
|
||
|
|
<path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path>
|
||
|
|
<path d="M16.5 7.5l0 .01"></path>
|
||
|
|
</svg>
|
||
|
|
</i>
|
||
|
|
</a>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
</div>
|
||
|
|
<div class="grow"></div>
|
||
|
|
<div class="flex flex-row">
|
||
|
|
<i class="h-6 w-6 flex-none"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copyright" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||
|
|
<path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0"></path>
|
||
|
|
<path d="M14 9.75a3.016 3.016 0 0 0 -4.163 .173a2.993 2.993 0 0 0 0 4.154a3.016 3.016 0 0 0 4.163 .173"></path>
|
||
|
|
</svg>
|
||
|
|
</i> 2023 - 2024
|
||
|
|
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<div class="flex flex-row">
|
||
|
|
<span class="ml-0 pl-0 md:ml-2 md:pl-2 border-l-0 md:border-l border-slate-300 dark:border-slate-400">
|
||
|
|
Powered by <a href="https://gohugo.io" target="_blank" rel="noopener" class="underline">Hugo</a> <span class="text-red-600">♥</span> <a href="https://github.com/tomowang/hugo-theme-tailwind" target="_blank" rel="noopener" class="underline">Tailwind</a>
|
||
|
|
</span>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
</section>
|
||
|
|
|
||
|
|
</footer>
|
||
|
|
<script src="/main.js"></script>
|
||
|
|
|
||
|
|
<div class="hidden top-1 right-1" id="code-copy">
|
||
|
|
<i class="h-6 w-6 block">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copy" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||
|
|
<path d="M7 7m0 2.667a2.667 2.667 0 0 1 2.667 -2.667h8.666a2.667 2.667 0 0 1 2.667 2.667v8.666a2.667 2.667 0 0 1 -2.667 2.667h-8.666a2.667 2.667 0 0 1 -2.667 -2.667z" />
|
||
|
|
<path d="M4.012 16.737a2.005 2.005 0 0 1 -1.012 -1.737v-10c0 -1.1 .9 -2 2 -2h10c.75 0 1.158 .385 1.5 1" />
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
</div>
|
||
|
|
<div class="hidden top-1 right-1" id="code-copy-done">
|
||
|
|
<i class="h-6 w-6 block">
|
||
|
|
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-check" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||
|
|
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||
|
|
<path d="M5 12l5 5l10 -10" />
|
||
|
|
</svg>
|
||
|
|
|
||
|
|
</i>
|
||
|
|
</div><script src="/code-copy.js"></script>
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
</body>
|
||
|
|
</html>
|