{"id":13943,"date":"2022-06-14T21:43:31","date_gmt":"2022-06-14T19:43:31","guid":{"rendered":"https:\/\/contabo.com\/blog\/?p=13943"},"modified":"2022-06-14T21:43:37","modified_gmt":"2022-06-14T19:43:37","slug":"lamp-stack-mit-cloud-init","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/de\/lamp-stack-mit-cloud-init\/","title":{"rendered":"LAMP Stack in 90 Sekunden mit Cloud-Init installieren"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit.jpg\" alt=\"\" class=\"wp-image-13964\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit.jpg 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit-600x315.jpg 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit-768x403.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Die Entwicklung von Software besteht heute aus vielen verschiedenen Technologien wie Programmiersprachen, Frameworks, Datenbanken und anderen Tools. All dies zusammen ist das, was man den &#8222;Tech-Stack&#8220; eines Unternehmens nennt. Ein beliebter Stack ist zum Beispiel der MERN-Stack, der f\u00fcr MongoDB, Express, React und Node steht. Aber heute wollen wir uns den LAMP-Stack ansehen, da er einer der einflussreichsten und beliebtesten ist.<\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Was ist LAMP Stack?<\/h2>\n\n\n\n<p>LAMP steht f\u00fcr Linux, Apache, MySQL und PHP und existiert seit 1998 als freie und Open-Source Alternative zu kommerzieller Software f\u00fcr die Erstellung von Websites. Seitdem haben viele Unternehmen und Tools diesen Technologie-Stack \u00fcbernommen und er ist bis heute weit verbreitet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ist LAMP nicht veraltet?<\/h2>\n\n\n\n<p>Es gibt viele andere Tech-Stacks, die immer mehr an Popularit\u00e4t gewinnen und die Webentwicklung ist nicht mehr so komplex wie vor 20 Jahren. Trotzdem ist LAMP immer noch weit verbreitet und Tools wie <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">WordPress<\/a>, das 43% des Webs betreibt, leisten einen gro\u00dfen Beitrag dazu, LAMP am Leben zu erhalten.<\/p>\n\n\n\n<p>Hier sind nur ein paar Beispiele f\u00fcr gro\u00dfe Unternehmen oder Tools, die den LAMP-Stack verwenden:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>WordPress<\/li><li>Wikipedia<\/li><li>Slack<\/li><li>Facebook<\/li><\/ul>\n\n\n\n<p>\u00dcbrigens l\u00e4uft auch dieser Blog auf WordPress und nutzt somit den LAMP Tech Stack!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">LAMP Stack einrichten<\/h2>\n\n\n\n<p>Jetzt wei\u00dft Du also, wovon wir sprechen. Machen wir uns an die Arbeit und richten eine Website mit dem LAMP Stack ein. Das Ziel ist es, einen Apache-Webserver mit PHP und MySQL kaufen zu lassen, und das k\u00f6nnen wir mit einer einfachen Installation mit <em>apt<\/em> (Advanced Packaging Tool) unter Linux erreichen. Aber neben dieser manuellen Installationsmethode gibt es auch noch andere M\u00f6glichkeiten, den LAMP Stack auf unserem Server zum Laufen zu bringen.<\/p>\n\n\n\n<p>Obwohl es bei Contabo m\u00f6glich ist, eine neue Instanz mit vorinstalliertem LAMP Stack auf einem <a href=\"https:\/\/contabo.com\/de\/vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">VPS<\/a> oder <a href=\"https:\/\/contabo.com\/de\/vds\">VDS <\/a>einzurichten, wenn man eine neue Instanz anlegt oder das Neuinstallations-Panel verwendet, ist es manchmal notwendig, einige Einstellung zu \u00e4ndern, sodass eine manuelle Installation vielleicht bessere Weg ist.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Manuelle Installation<\/h3>\n\n\n\n<p>Um loszulegen, brauchst Du nur einen Linux-Server und Root-Zugriff auf diesen, damit wir die erforderlichen Pakete installieren und konfigurieren k\u00f6nnen. In diesem Leitfaden verwenden wir Debian 11 auf einem <a href=\"https:\/\/contabo.com\/de\/vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">Contabo Cloud VPS<\/a>.<\/p>\n\n\n\n<p>Bevor Du neue Pakete installierst, solltest Du sicherstellen, dass Dein Server auf dem neusten Stand ist, indem Du die Pakete aktualisierst und upgradest:<\/p>\n\n\n\n<p><code>apt update &amp;&amp; apt upgrade -y<\/code><\/p>\n\n\n\n<p>Als n\u00e4chstes f\u00fcgen wir Apache2, sowie einige Pakete hinzu, die f\u00fcr die Installation ben\u00f6tigt werden:<\/p>\n\n\n\n<p><code>apt-get install software-properties-common wget curl apache2 -y<\/code><\/p>\n\n\n\n<p>Um die PHP-Pakete installieren zu k\u00f6nnen, m\u00fcssen wir zun\u00e4chst das PHP-Repository hinzuf\u00fcgen:<\/p>\n\n\n\n<p><code>curl -sSL https:\/\/packages.sury.org\/php\/README.txt | sudo bash -x<\/code><\/p>\n\n\n\n<p>Nun k\u00f6nnen wir die PHP-Pakete installieren:<\/p>\n\n\n\n<p><code>apt-get install php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-xsl php8.1-zip php8.1-bz2 libapache2-mod-php8.1 -y<\/code><\/p>\n\n\n\n<p>Wenn Du die oben genannten Erweiterungen nicht ben\u00f6tigst, kannst Du PHP auch ohne die zus\u00e4tzlichen Pakete installieren:<\/p>\n\n\n\n<p><code>apt-get install php8.1 php8.1-cli libapache2-mod-php8.1 -y<\/code><\/p>\n\n\n\n<p>Starte nun den Apache2 Webserver mit dem folgendem Befehl neu:<\/p>\n\n\n\n<p><code>service apache2 restart <\/code><\/p>\n\n\n\n<p>Wenn Du die IP-Adresse Deines Servers aufrufst, sollte die Apache2 Standardseite erscheinen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"772\" height=\"277\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/apache2_default_page.png\" alt=\"\" class=\"wp-image-13931\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/apache2_default_page.png 772w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/apache2_default_page-600x215.png 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/apache2_default_page-768x276.png 768w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><\/figure>\n\n\n\n<p>Um einen vollst\u00e4ndigen LAMP Stack zu installieren, muss nur noch MySQL installiert werden. Die geht mit diesem Befehl:<\/p>\n\n\n\n<p><code>apt install mariadb-server mariadb-client -y &amp;&amp; mysql-secure-installation<\/code><\/p>\n\n\n\n<p>Dadurch wird MariaDB (MySQL) installiert und das Installationsprogramm automatisch gestartet. W\u00e4hrend des Installationsprozesses wirst Du zudem aufgefordert, ein neues Root-Passwort festzulegen. Um auf Deine Datenbank zuzugreifen, kannst Du \u201eroot\u201c als Benutzername und das eben festgelegte Passwort verwenden.<\/p>\n\n\n\n<p><strong>Gl\u00fcckwunsch!<\/strong> Du hast LAMP Stack erfolgreich auf Deinem System installiert. Dieser Prozess kann aber deutlich effizienter gemacht werden, also lasst uns mit Cloud-Init automatisieren, was wir eben manuell gemacht haben!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Installation mit Cloud-Init<\/h3>\n\n\n\n<p><a href=\"https:\/\/contabo.com\/blog\/de\/was-ist-cloud-init\/\" target=\"_blank\" rel=\"noreferrer noopener\">In einem fr\u00fcheren Artikel<\/a> haben wir bereits die Vorteile von Cloud-Init erkl\u00e4rt. Im Allgemeinen ist Cloud-Init ein Tool zum Einrichten einer Cloud-Instanz unter Verwendung einer vordefinierten Konfigurationsdatei. Cloud-Init automatisiert nicht nur den Einrichtungsprozess, sondern hilft auch in Situationen wie der Disaster Recovery.<\/p>\n\n\n\n<p>Mit der manuellen Installationsanleitung im Hinterkopf k\u00f6nnen wir nun die Cloud-Init Konfigrationsdatei erstellen, um den Prozess zu automatisieren und auf mehreren Systemen zu replizieren.<\/p>\n\n\n\n<p>Um anzuzeigen, dass es sich um eine Cloud-Init Konfigurationsdatei handelt, sieht die erste Zeile wie folgt aus:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#cloud-config<\/code><\/pre>\n\n\n\n<p>Cloud-Init bietet <a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/modules.html#package-update-upgrade-install\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">zwei einfache Optionen<\/a>, um zu steuern, ob die Pakete zun\u00e4chst aktualisiert (update) und geupgraded (upgrade) werden sollen. Um sicherzustellen, dass wir mit den neusten Paketen arbeiten, setzen wir die folgenden Werte auf true:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>package_update: true\npackage_upgrade: true<\/code><\/pre>\n\n\n\n<p>Nun k\u00f6nnen der Apache2 Webserver und weitere ben\u00f6tigte Programme installiert werden. Au\u00dferdem k\u00f6nnen wir Cloud-Init anweisen, <a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/modules.html#package-update-upgrade-install\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Paketmodule<\/a> mit zu installieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>packages:\n  - software-properties-common\n  - wget\n  - curl\n  - apache2<\/code><\/pre>\n\n\n\n<p>Der Rest der Installation wird mit dem Modul <em>runcmd<\/em> durchgef\u00fchrt. Hiermit ist es m\u00f6glich, eine Liste von Befehlen, die in der <a href=\"https:\/\/cloudinit.readthedocs.io\/en\/latest\/topics\/boot.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Cloud-Init \u201econfig\u201c-Phase<\/a> ausgef\u00fchrt werden, auszuf\u00fchren.<\/p>\n\n\n\n<p>Um PHP zu installieren, k\u00f6nnen wir die gleichen Befehle wie bei der manuellen Installation verwenden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>runcmd:\n  - curl -sSL https:\/\/packages.sury.org\/php\/README.txt | sudo bash -x\n  - sudo apt-get install php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-xsl php8.1-zip php8.1-bz2 libapache2-mod-php8.1 -y\n  - service apache2 restart<\/code><\/pre>\n\n\n\n<p>Die Einrichtung von MySQL bzw. MariaDB ist ein wenig anders. Zuerst m\u00fcssen wir es installieren:<\/p>\n\n\n\n<p><code>apt install mariadb-server mariadb-client -y<\/code><\/p>\n\n\n\n<p>Da wir in diesem Fall nicht den mysql-secure-installation Installer verwenden k\u00f6nnen, m\u00fcssen wir das Passwort in der Cloud-Init Konfigrationsdatei festlegen. Wir wollen allerdings nicht, das ein Passwort in dieser Datei gespeichert wird, also erstellen wir einfach ein zuf\u00e4lliges und speichern dies in einer Datei auf dem Server (unter \/home\/mysql_access.txt), damit wir per SSH darauf zugreifen k\u00f6nnen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pw=$(openssl rand -base64 18); echo \u201emysql_password=$pw\u201d &gt;&gt; \/home\/mysql_access.txt<\/code><\/pre>\n\n\n\n<p>Um das Passwort tats\u00e4chlich zu \u00e4ndern, kannst Du den mysqladmin-Befehl verwenden.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pw=$(openssl rand -base64 18); mysqladmin -u root -h localhost password \u201c$pw\u201d echo \u201cmysql_password=$pw\u201d &gt;&gt; \/home\/mysql_access.txt<\/code><\/pre>\n\n\n\n<p>Lass tuns nun die Berechtigungstabelle neu laden, um sicherzustellen, dass die \u00c4nderungen wirksam sind:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqladmin reload<\/code><\/pre>\n\n\n\n<p>Wenn wir nun alle diese Konfigurationen in einer Datei kombinieren, erhalten wir eine vollst\u00e4ndige Cloud-Init Konfiguration, die zur Erstellung neuer Instanzen mit installiertem und konfigurierten LAMP Stack verwendet werden kann:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#cloud-config\npackage_update: true\npackage_upgrade: true\npackages:\n  - software-properties-common\n  - wget\n  - curl\n  - apache2\nruncmd:\n  - curl -sSL https:\/\/packages.sury.org\/php\/README.txt | sudo bash -x\n  - sudo apt-get install php8.1 php8.1-cli php8.1-common php8.1-curl php8.1-gd php8.1-intl php8.1-mbstring php8.1-mysql php8.1-opcache php8.1-readline php8.1-xml php8.1-xsl php8.1-zip php8.1-bz2 libapache2-mod-php8.1 -y\n  - service apache2 restart\n  - apt install mariadb-server mariadb-client -y\n  - pw=$(openssl rand -base64 18); mysqladmin -u root -h localhost password \"$pw\"; echo \"mysql_password=$pw\" &gt;&gt; \/home\/mysql_access.txt\n  - mysqladmin reload<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Die Vorteile von Cloud-Init<\/h2>\n\n\n\n<p>Mit dieser Konfigurationsdatei hast Du eine einzige Datei erstellt, die Du nun immer wieder und auf mehreren Instanzen verwenden kannst, um diese Einrichtung zu replizieren.<\/p>\n\n\n\n<p>Ben\u00f6tigst Du eine weitere Website, die auf LAMP basiert? Starte einfach einen neuen Server und schon kannst Du dein neues Projekt anfangen.<\/p>\n\n\n\n<p>Es ist etwas schlimmes passiert und eine Instanz ist ausgefallen? Kein Problem! Mit dieser Cloud-Init Konfiguration kannst Du schnell eine neue Instanz erstellen, auf die Deine gesamte Konfiguration bereits angewendet wurde.<\/p>\n\n\n\n<p>Es geht um Replikation und Notfallwiederherstellung: Du musst neue Instanzen nicht mehr manuell installieren, denn mit dieser Konfiguration hast Du eine Vorlage erstellt, die bei der Erstellung neuer Instanzen wiederverwendet werden kann \u2013 das bedeutet weniger Arbeit f\u00fcr Dich und einen viel effizienteren Workflow.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>LAMP-Stack (Linux, Apache, MySQL &#038; PHP) wird h\u00e4ufig f\u00fcr Webanwendungen verwendet. In diesem Artikel zeigen wir Dir, wie Du LAMP auf Deinem Server einrichten und ausf\u00fchren kannst. Dieser Prozess dauert nur 90 Sekunden &#8211; dank Cloud-Init.<\/p>\n","protected":false},"author":50,"featured_media":13964,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1399],"tags":[1469,1401,1470,1443,1458],"ppma_author":[1491],"class_list":["post-13943","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-cloud-init-2","tag-contabo-2","tag-lamp-stack-2","tag-linux-de","tag-vps-de"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit.jpg",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit-150x150.jpg",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit-600x315.jpg",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit-768x403.jpg",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit.jpg",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit.jpg",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2022\/06\/blog-head_1200x630_lamp-cloudinit.jpg",1200,630,false]},"uagb_author_info":{"display_name":"Tobias Mildenberger","author_link":"https:\/\/contabo.com\/blog\/de\/author\/tobias\/"},"uagb_comment_info":0,"uagb_excerpt":"LAMP-Stack (Linux, Apache, MySQL & PHP) wird h\u00e4ufig f\u00fcr Webanwendungen verwendet. In diesem Artikel zeigen wir Dir, wie Du LAMP auf Deinem Server einrichten und ausf\u00fchren kannst. Dieser Prozess dauert nur 90 Sekunden - dank Cloud-Init.","authors":[{"term_id":1491,"user_id":50,"is_guest":0,"slug":"tobias","display_name":"Tobias Mildenberger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/077178d5dce6c3d4c0c0396857a7e544bfdf8adf04145fff5160b33a22e28b1f?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/13943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=13943"}],"version-history":[{"count":0,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/13943\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media\/13964"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=13943"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=13943"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=13943"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/ppma_author?post=13943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}