<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Edv38</id>
	<title>Hostsharing Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hostsharing.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Edv38"/>
	<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Spezial:Beitr%C3%A4ge/Edv38"/>
	<updated>2026-04-25T18:40:52Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Domains&amp;diff=6325</id>
		<title>Domains</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Domains&amp;diff=6325"/>
		<updated>2024-01-06T17:18:37Z</updated>

		<summary type="html">&lt;p&gt;Edv38: 404 Link auf Kerndoku gefixt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-DomainLinks}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Domains bei Hostsharing = &lt;br /&gt;
&lt;br /&gt;
Die Domainverwaltung bei Hostsharing ist in zwei unabhängige Bereiche aufgeteilt:&lt;br /&gt;
&lt;br /&gt;
*  Die &#039;&#039;&#039;Domaineinrichtung&#039;&#039;&#039; in den HS-Paketen, zur Erstellung des Domainverzeichnisses unter [[~/]]doms im Paket und [[Aufschaltung]] einer Domain auf HS [[DNS|Name]]-, Mail- und Webserver. Dies geschieht mit [[hsadmin]] im Webfrontend oder auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
*  Das &#039;&#039;&#039;[http://www.domain-bestellsystem.de Domainbestellsystem]&#039;&#039;&#039; des HS-Partnerunternehmens Partnergate zur [[Konnektierung]], also der eigentlichen Registrierung von Domains bei einem Registrar, und zur Vergabe weiterer Aufträgen an Registrierungstellen. Jedes Mitglied von Hostsharing erhielt für dieses Domainbestellsystem Zugangsdaten, bestehend aus einem Benutzernamen der Form hs-xyz und einem Passwort.&lt;br /&gt;
&lt;br /&gt;
Bei anderen Hostern ist eine Domainbestellung teilweise eine feste Kopplung der Registrierung einer Domain mit Konnektierung und gleichzeitiger Aufschaltung auf bestimmte Nameserver und Webpakete. HS ist hier wesentlich flexibler. Der über HS angebotene Zugang zum Domain-Bestellsystem erlaubt es, Domains zu registrieren und auf frei wählbare DNS-Server zu konnektieren. Auf den HS Nameservern und Paketen lassen sich gleichzeitig beliebige weltweit registrierbare Domains einrichten. Hostsharing unterstützt damit die Einrichtung und den Betrieb von Domains die von beliebigen (auch sehr exotischen) Registrierungsstellen verwaltet und abgerechnet werden können.&lt;br /&gt;
&lt;br /&gt;
= Aktionen = &lt;br /&gt;
&lt;br /&gt;
Typische Domainaktionen beinhalten also koordinierte Änderungen sowohl in der Domainregistrierung als auch der HS-Einrichtung, wie in folgenden Seiten aufgezeigt:&lt;br /&gt;
&lt;br /&gt;
* Eine Domain einrichten: [[Domainregistrierung]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Eine Domain kündigen: [[Domainkündigung]]&amp;lt;br&amp;gt;&lt;br /&gt;
* Verwalten von Domains, Subdomains, Eigentümer, Nameserver: [[Domainverwaltung]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Weiterführende Links =&lt;br /&gt;
{{Kerndoku|https://www.hostsharing.net/doc/managed-operations-platform/domain/}}&lt;br /&gt;
Was ist eine [[Domain]]&amp;lt;br&amp;gt;&lt;br /&gt;
Was ist ein [[Handles|Domainhandle]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[FAQ#Domains|Einträge zu Domains in der HS FAQ]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Domainregistrierung&amp;diff=6151</id>
		<title>Domainregistrierung</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Domainregistrierung&amp;diff=6151"/>
		<updated>2023-06-01T08:42:31Z</updated>

		<summary type="html">&lt;p&gt;Edv38: aktueller Registrar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-DomainLinks}}&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=== Erst eine neue Domain über HSAdmin einrichten, dann über das Domain-Bestellsystem registrieren oder von einem anderen Provider transferieren ===&lt;br /&gt;
&lt;br /&gt;
Wird eine neue Domain registriert oder von einem anderen Provider zu Hostsharing transferiert, sollte im Normalfall die Domain bei Hostsharing über HSAdmin eingerichtet werden, bevor die Registrierung letztlich eingeleitet bzw. aktualisiert wird. Sonst kann es zu Problemen beim Konnektieren der Domain kommen.&lt;br /&gt;
&lt;br /&gt;
= Einrichten der Domain auf den HS Servern =&lt;br /&gt;
&lt;br /&gt;
{{Kerndoku|https://doc.hostsharing.net/#kap-ref-domain}}&lt;br /&gt;
&lt;br /&gt;
Der Domainname muss im Punicode Format angelegt werden aus münster.de wird xn--mnster-3ya.de .&lt;br /&gt;
&lt;br /&gt;
Bei diesem Vorgang werden die Verzeichnisse für die Domain im eigenen Paket angelegt und die Domain wird auf die Mail, Web- und Nameserver von HS [[Aufschaltung|aufgeschaltet]]. Letzteres (das Nameserver-Update) ist Voraussetzung für den nächsten Schritt.&lt;br /&gt;
&lt;br /&gt;
= Domainregistrierung oder eingehender Transfer ([[KK]]) =&lt;br /&gt;
&lt;br /&gt;
== Bei fremdem Provider registrierte Domain zum Transfer freischalten ==&lt;br /&gt;
&lt;br /&gt;
Falls die Domain bisher bei einem anderen Provider gehostet ist, muss diesem die Transfer-Absicht mitgeteilt werden. Dafür gibt es bei den jeweiligen Providern etablierte Verfahren, die dort zu erfragen sind. Üblicherweise bekommt man dort einen AuthCode für die Domain mitgeteilt. Gibt es kein etabliertes Verfahren, so kann man wie folgt verfahren:&lt;br /&gt;
&lt;br /&gt;
* Formlos per Brief/Fax den Transfer ankündigen und um Zustimmung bitten, z.B.:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hiermit kündige ich als Owner/Admin-C den Transfer (KK) der &lt;br /&gt;
Domain example.com zur Hostsharing eG, vertreten durch den Registrar &lt;br /&gt;
RegistryGate GmbH, an. Ich bitte, dem folgenden Transferantrag zuzustimmen.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Nach Absendung der Transfer-Ankündigung 3-4 Tage warten, um dem alten Provider  Zeit zu geben auf den Transferantrag zu reagieren. &lt;br /&gt;
* Wenn dem Transfer nicht stattgegeben wird, den Registrar der Domain herausfinden (z.B. über die Nameserver oder zuständige Registry) und bitten den Transfer zuzulassen.&lt;br /&gt;
&lt;br /&gt;
== Neuregistrierung oder Transfer zu Hostsharing ([[KK]]) ==&lt;br /&gt;
&lt;br /&gt;
Die Vorgehensweise ist unter https://doc.hostsharing.net/einstieg/domain.html beschrieben. &lt;br /&gt;
&lt;br /&gt;
* Bei der allerersten Domainregistrierung im Domainbestellsystem müssen die Hostsharing Nameserver noch manuell eingegeben werden. Es sind dies:&lt;br /&gt;
&lt;br /&gt;
     dns1.hostsharing.net&lt;br /&gt;
     dns2.hostsharing.net&lt;br /&gt;
     dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
= E-Mail-Adressen der neu eingerichteten Domain =&lt;br /&gt;
&lt;br /&gt;
Ist die Domain bei Hostsharing aufgeschaltet, sind standardmäßig nur die E-Mail-Adressen webmaster@..., postmaster@... und abuse@... eingerichtet. Die Einrichtung weiterer E-Mail-Adressen ist unter https://doc.hostsharing.net/einstieg/email.html beschrieben.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Hsadmin]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Mastodon_bei_Hostsharing&amp;diff=5914</id>
		<title>Mastodon bei Hostsharing</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Mastodon_bei_Hostsharing&amp;diff=5914"/>
		<updated>2022-11-04T08:08:40Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Kurzbeschreibung des Dienstes, und Link auf Alternative Pleroma&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mastodon ist ein verteilter Microblogging Dienst, der das ActivityPub-Protokoll verwendet. &lt;br /&gt;
&lt;br /&gt;
Wenn man nur wenige Nutzer oder gar nur für sich selbst einen Einstiegspunkt ins &amp;quot;Fediverse&amp;quot; schaffen will, kann sich auch die Ressourcen-schonende Alternative [[Pleroma]] anbieten.&lt;br /&gt;
&lt;br /&gt;
Diese Anleitung beschreibt, wie man Mastodon auf der Managed Hosting Plattform von Hostsharing installieren kann. &lt;br /&gt;
&lt;br /&gt;
Hostsharing selbst nutzt die Hosting Plattform und betreibt zwei Mastodon Instanzen:&lt;br /&gt;
* https://geno.social&lt;br /&gt;
* https://hostsharing.coop&lt;br /&gt;
&lt;br /&gt;
Der Autor dieser Seite betreibt:&lt;br /&gt;
* https://krefeld.life&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gelb|Für Managed Server|Ein funktionierender Mastodon-Server erfordert mehrere laufende Server-Dienste. Für den Betrieb ist ein Managed Server sinnvoll.}}&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe von HSAdmin wird angelegt:&lt;br /&gt;
# Ein User als Service-User mit &#039;&#039;/bin/bash&#039;&#039; als Shell, zum Beispiel Beispiel: &#039;&#039;xyz00-mastodon&#039;&#039;&lt;br /&gt;
# Eine Domain mit &#039;&#039;xyz00-mastodon&#039;&#039; als Domain-Administrator, zum Beispiel &#039;&#039;beispiel.social&#039;&#039;&lt;br /&gt;
# Einen Postgresql-User &#039;&#039;xyz00_mastuser&#039;&#039; mit Passwort &#039;&#039;meinPasswort&#039;&#039;&lt;br /&gt;
# Eine Postgresql-Datenbank &#039;&#039;xyz00_mastdb&#039;&#039; mit Datenbank-Owner &#039;&#039;xyz00_mastuser&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Verwendete IP-Ports der Server-Dienste:&lt;br /&gt;
# Monit: localhost:32001&lt;br /&gt;
# Redis: localhost:32002&lt;br /&gt;
# Mastodon-Web: localhost:32003&lt;br /&gt;
# Mastodon-Streaming: localhost:32004&lt;br /&gt;
&lt;br /&gt;
== Konfiguration des Redis Server ==&lt;br /&gt;
&lt;br /&gt;
Anlegen einer Datei &#039;&#039;/home/pacs/xyz00/users/mastodon/redis/etc/redis.conf&#039;&#039; mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
    daemonize yes&lt;br /&gt;
    pidfile /home/pacs/xyz00/users/mastodon/redis/var/redis-server.pid&lt;br /&gt;
    requirepass &amp;lt;hierhin-gehoert-ein-redis-passwort&amp;gt;&lt;br /&gt;
    port 32002&lt;br /&gt;
    tcp-backlog 128&lt;br /&gt;
    bind 127.0.0.1&lt;br /&gt;
    timeout 300&lt;br /&gt;
    loglevel notice&lt;br /&gt;
    logfile /home/pacs/xyz00/users/mastodon/redis/var/redis.log&lt;br /&gt;
    databases 16&lt;br /&gt;
    save 900 1&lt;br /&gt;
    save 300 10&lt;br /&gt;
    save 60 10000&lt;br /&gt;
    slave-serve-stale-data yes&lt;br /&gt;
    appendonly no&lt;br /&gt;
    dbfilename dump.rdb&lt;br /&gt;
    dir /home/pacs/xyz00/users/mastodon/redis/var&lt;br /&gt;
&lt;br /&gt;
== Installation von NodeJS ==&lt;br /&gt;
&lt;br /&gt;
Als User &#039;xyz00-mastodon&#039;&#039;: Installation von &#039;&#039;nvm&#039;&#039; und &#039;&#039;nodejs&#039;&#039; (Version 12) nach der Anleitung [[NodeJS]]&lt;br /&gt;
&lt;br /&gt;
Installation von &#039;&#039;yarn&#039;&#039; mit:&lt;br /&gt;
&lt;br /&gt;
    npm install -g yarn&lt;br /&gt;
&lt;br /&gt;
== Installation von Ruby ==&lt;br /&gt;
&lt;br /&gt;
Als User &#039;&#039;xyz00-mastodon&#039;&#039;:  Installation von Ruby mit &#039;&#039;rbenv&#039;&#039; mit folgenden Befehlen:&lt;br /&gt;
&lt;br /&gt;
Zunächst &#039;&#039;rbenv&#039;&#039; and &#039;&#039;ruby-build&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
    git clone https://github.com/rbenv/rbenv.git ~/.rbenv&lt;br /&gt;
    cd ~/.rbenv &amp;amp;&amp;amp; src/configure &amp;amp;&amp;amp; make -C src&lt;br /&gt;
    echo &#039;export PATH=&amp;quot;$HOME/.rbenv/bin:$PATH&amp;quot;&#039; &amp;gt;&amp;gt; ~/.profile&lt;br /&gt;
    echo &#039;eval &amp;quot;$(rbenv init -)&amp;quot;&#039; &amp;gt;&amp;gt; ~/.profile&lt;br /&gt;
&lt;br /&gt;
starte neue Shell:&lt;br /&gt;
&lt;br /&gt;
    exec bash&lt;br /&gt;
&lt;br /&gt;
Überprüfe rbenv-Installation&lt;br /&gt;
&lt;br /&gt;
    type rbenv&lt;br /&gt;
&lt;br /&gt;
Installiere ruby-build als rbenv-Plugin&lt;br /&gt;
&lt;br /&gt;
    git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build&lt;br /&gt;
&lt;br /&gt;
Nun kann die benötigte Ruby-Version installiert werden:&lt;br /&gt;
&lt;br /&gt;
    rbenv install 2.7.2&lt;br /&gt;
&lt;br /&gt;
== Installation der Mastodon Software ==&lt;br /&gt;
&lt;br /&gt;
Weiterhin Als User &#039;&#039;xyz00-mastodon&#039;&#039;:  &lt;br /&gt;
&lt;br /&gt;
    cd ~&lt;br /&gt;
    git clone https://github.com/tootsuite/mastodon.git live&lt;br /&gt;
    cd ~/live&lt;br /&gt;
&lt;br /&gt;
Die stabile Version auschecken:&lt;br /&gt;
&lt;br /&gt;
    git checkout $(git tag -l | grep -v &#039;rc[0-9]*$&#039; | sort -V | tail -n 1)&lt;br /&gt;
&lt;br /&gt;
Ruby Pakete installieren:&lt;br /&gt;
&lt;br /&gt;
    gem install bundler&lt;br /&gt;
    bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test&lt;br /&gt;
&lt;br /&gt;
Node.js Pakete installieren:&lt;br /&gt;
&lt;br /&gt;
    yarn install --pure-lockfile&lt;br /&gt;
&lt;br /&gt;
== Konfiguration der Mastodon Software ==&lt;br /&gt;
&lt;br /&gt;
Anlegen einer Datei &#039;&#039;/home/pacs/xyz00/users/mastodon/live/.env.production&#039;&#039; mit dem folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
    REDIS_HOST=localhost&lt;br /&gt;
    REDIS_PORT=32002&lt;br /&gt;
    REDIS_PASSWORD=&amp;lt;hierhin-gehoert-ein-redis-passwort&amp;gt;&lt;br /&gt;
    DB_HOST=localhost&lt;br /&gt;
    DB_USER=xyz00_mastuser&lt;br /&gt;
    DB_NAME=xyz00_mastdb&lt;br /&gt;
    DB_PASS=meinPasswort&lt;br /&gt;
    DB_PORT=5432&lt;br /&gt;
    LOCAL_DOMAIN=beispiel.social&lt;br /&gt;
    SECRET_KEY_BASE=12ab..&lt;br /&gt;
    OTP_SECRET=34ef..&lt;br /&gt;
    VAPID_PRIVATE_KEY=ABCD..&lt;br /&gt;
    VAPID_PUBLIC_KEY=EFGH..&lt;br /&gt;
    DEFAULT_LOCALE=de&lt;br /&gt;
    SMTP_SERVER=localhost&lt;br /&gt;
    SMTP_PORT=25&lt;br /&gt;
    SMTP_FROM_ADDRESS=notifications@beispiel.social&lt;br /&gt;
    SMTP_AUTH_METHOD=none&lt;br /&gt;
    SMTP_OPENSSL_VERIFY_MODE=none&lt;br /&gt;
    STREAMING_CLUSTER_NUM=1&lt;br /&gt;
&lt;br /&gt;
Die Zufallswerte für die Variablen SECRET_KEY_BASE und OTP_SECRET erzeugt man durch zwei Aufrufe des Kommandos&lt;br /&gt;
&lt;br /&gt;
    RAILS_ENV=production bundle exec rake secret&lt;br /&gt;
&lt;br /&gt;
Die Werte für VAPID_PRIVATE_KEY und VAPID_PUBLIC_KEY erzeugt das Kommando&lt;br /&gt;
&lt;br /&gt;
    RAILS_ENV=production bundle exec rake mastodon:webpush:generate_vapid_key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Initialisieren der Datenbank:&lt;br /&gt;
&lt;br /&gt;
    export SAFETY_ASSURED=1&lt;br /&gt;
    RAILS_ENV=production bundle exec rails db:schema:load&lt;br /&gt;
    RAILS_ENV=production bundle exec rails db:seed&lt;br /&gt;
&lt;br /&gt;
Erzeugen der Web-Resourcen&lt;br /&gt;
&lt;br /&gt;
    RAILS_ENV=production bundle exec rails assets:precompile&lt;br /&gt;
&lt;br /&gt;
== Starten der Dienste  ==&lt;br /&gt;
&lt;br /&gt;
Zum Start aller notwendigen Dienste wird in dieser Anleitung &#039;&#039;monit&#039;&#039; benutzt. Hier ein Beispiel für eine Datei &#039;&#039;.monitrc&#039;&#039; (überlange Zeilen werden hier im Wiki umgebrochen)&lt;br /&gt;
&lt;br /&gt;
    set daemon 60&lt;br /&gt;
        with start delay 120&lt;br /&gt;
    set logfile /home/pacs/xyz00/users/mastodon/monit/var/monit.log&lt;br /&gt;
    set idfile /home/pacs/xyz00/users/mastodon/monit/var/monit.id&lt;br /&gt;
    set statefile /home/pacs/xyz00/users/mastodon/monit/var/monit.state&lt;br /&gt;
    set mailserver localhost&lt;br /&gt;
    set mail-format { from: monit@beispiel.social }&lt;br /&gt;
    set alert mastodon@beispiel.social&lt;br /&gt;
    set httpd port 32001 address xyz00.hostsharing.net &lt;br /&gt;
        allow mostodon:monitpassword&lt;br /&gt;
    check process redis with pidfile /home/pacs/xyz00/users/mastodon/redis/var/redis-server.pid&lt;br /&gt;
        start program &amp;quot;/usr/bin/redis-server /home/pacs/xyz00/users/mastodon/redis/etc/redis.conf&amp;quot;&lt;br /&gt;
        stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat /home/pacs/xyz00/users/mastodon/redis/var/redis-server.pid )&#039;&amp;quot;&lt;br /&gt;
    check process mstdn_web with pidfile /home/pacs/xyz00/users/mastodon/mastodon/var/puma.pid&lt;br /&gt;
        depends redis&lt;br /&gt;
        start program &amp;quot;/bin/bash -c &#039;export RAILS_ENV=production &amp;amp;&amp;amp; export HOME=/home/pacs/xyz00/users/mastodon &amp;amp;&amp;amp; cd $HOME/live &amp;amp;&amp;amp; ( $HOME/.rbenv/shims/bundle exec puma -C config/puma.rb -e production -b tcp://127.0.0.1:32003 &amp;gt;$HOME/mastodon/var/puma.log 2&amp;gt;&amp;amp;1 &amp;amp;  echo $! &amp;gt; $HOME/mastodon/var/puma.pid  )&#039;&amp;quot;&lt;br /&gt;
        stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat /home/pacs/xyz00/users/mastodon/mastodon/var/puma.pid )&#039;&amp;quot;&lt;br /&gt;
    check process mstdn_sidekiq with pidfile /home/pacs/xyz00/users/mastodon/mastodon/var/sidekiq.pid&lt;br /&gt;
        depends redis&lt;br /&gt;
        start program &amp;quot;/bin/bash -c &#039;export RAILS_ENV=production &amp;amp;&amp;amp; export DB_POOL=5 &amp;amp;&amp;amp; export HOME=/home/pacs/xyz00/users/mastodon &amp;amp;&amp;amp; cd $HOME/live &amp;amp;&amp;amp; ( $HOME/.rbenv/shims/bundle exec sidekiq -c 5 -q default -q mailers -q pull -q push -q scheduler &amp;gt;$HOME/mastodon/var/sidekiq.log 2&amp;gt;&amp;amp;1 &amp;amp;  echo $! &amp;gt; $HOME/mastodon/var/sidekiq.pid  )&#039;&amp;quot;&lt;br /&gt;
        stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat /home/pacs/xyz00/users/mastodon/mastodon/var/sidekiq.pid )&#039;&amp;quot;&lt;br /&gt;
    check process mstdn_streaming with pidfile /home/pacs/xyz00/users/mastodon/mastodon/var/streaming.pid&lt;br /&gt;
        depends redis&lt;br /&gt;
        start program &amp;quot;/bin/bash -c &#039;export HOME=/home/pacs/xyz00/users/mastodon &amp;amp;&amp;amp; export NVM_DIR=&amp;quot;$HOME/.nvm&amp;quot; &amp;amp;&amp;amp; export NVM_BIN=/home/pacs/xyz00/users/mastodon/.nvm/versions/node/v12.22.1/bin &amp;amp;&amp;amp; export NODE_ENV=production &amp;amp;&amp;amp; export PORT=32004 &amp;amp;&amp;amp; export BIND=127.0.0.1 &amp;amp;&amp;amp; cd $HOME/live &amp;amp;&amp;amp; ( $HOME/.nvm/versions/node/v12.22.1/bin/node streaming/index.js &amp;gt;$HOME/mastodon/var/streaming.log 2&amp;gt;&amp;amp;1 &amp;amp;  echo $! &amp;gt; $HOME/mastodon/var/streaming.pid  )&#039;&amp;quot;&lt;br /&gt;
        stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat /home/pacs/xyz00/users/mastodon/mastodon/var/streaming.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Einrichten des Apache VHost ==&lt;br /&gt;
&lt;br /&gt;
    cd ~/doms/beispiel.social&lt;br /&gt;
    rm -rf htdocs-ssl subs/www subs-ssl/www&lt;br /&gt;
    ln -s ~/live/public htdocs-ssl&lt;br /&gt;
    touch htdocs-ssl/.htaccess&lt;br /&gt;
&lt;br /&gt;
Dann die &#039;&#039;htdocs-ssl/.htaccess&#039;&#039; mit dem Editor der Wahl öffnen und &lt;br /&gt;
folgende Konfiguration einfügen:&lt;br /&gt;
&lt;br /&gt;
    DirectoryIndex disabled&lt;br /&gt;
    RewriteEngine On&lt;br /&gt;
    RewriteBase /&lt;br /&gt;
    RewriteCond %{REQUEST_URI}  ^/api/v1/streaming    [NC]&lt;br /&gt;
    RewriteRule .* ws://localhost:32004%{REQUEST_URI}  [proxy]&lt;br /&gt;
    RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
    RewriteCond %{REQUEST_FILENAME} !-f&lt;br /&gt;
    RewriteCond %{REQUEST_FILENAME} !-l&lt;br /&gt;
    RewriteRule .* http://localhost:32003%{REQUEST_URI} [proxy]&lt;br /&gt;
    RequestHeader set X-Forwarded-Proto &amp;quot;https&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Cronjobs ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Cron&#039;&#039; wird für zwei Aufgaben genutzt:&lt;br /&gt;
* Start von monit nach einem Server Reboot&lt;br /&gt;
* Aufräumen von alten Resourcen&lt;br /&gt;
&lt;br /&gt;
Einrichten der crontab mit &#039;&#039;cronttab -e&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
    HOME=/home/pacs/xyz00/users/mastodon&lt;br /&gt;
    MAILTO=mastodon@beispiel.social&lt;br /&gt;
    RAILS_ENV=production&lt;br /&gt;
    NUM_DAYS=31&lt;br /&gt;
    &lt;br /&gt;
    @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
    18 4 * * * cd $HOME/live &amp;amp;&amp;amp; $HOME/live/bin/tootctl media remove&lt;br /&gt;
&lt;br /&gt;
== Volltextsuche ==&lt;br /&gt;
&lt;br /&gt;
In der installierten Version gibt es noch keine Volltextsuche. Es kann lediglich nach Nutzerkennungen und Hastags gesucht werden. Für die Volltextsuche kann optional Elasticsearch installiert werden.&lt;br /&gt;
&lt;br /&gt;
* [[Elasticsearch]] bei Hostsharing&lt;br /&gt;
* https://docs.joinmastodon.org/admin/optional/elasticsearch/&lt;br /&gt;
&lt;br /&gt;
== Instanz einrichten ==&lt;br /&gt;
Nach der Installation kann man sich auf https://beispiel.social einen Benutzer einrichten.&lt;br /&gt;
&lt;br /&gt;
Auf der Kommandozeile:&lt;br /&gt;
&lt;br /&gt;
 RAILS_ENV=production bin/tootctl accounts create \&lt;br /&gt;
   alice \&lt;br /&gt;
   --email alice@example.com \&lt;br /&gt;
   --confirmed \&lt;br /&gt;
   --role admin&lt;br /&gt;
&lt;br /&gt;
Weitere Einrichtung sollte vorgenommen werden, z.B. eine Beschreibung der Instanz hinterlegen, siehe https://docs.joinmastodon.org/admin/setup/&lt;br /&gt;
&lt;br /&gt;
== Mastodon Updates ==&lt;br /&gt;
&lt;br /&gt;
siehe:&lt;br /&gt;
* https://github.com/tootsuite/mastodon/releases&lt;br /&gt;
&lt;br /&gt;
(hier für das Update auf die Mastodon Version v2.8.0 mit Ruby 2.6.1)&lt;br /&gt;
&lt;br /&gt;
=== Ruby ===&lt;br /&gt;
&lt;br /&gt;
    cd ~/.rbenv&lt;br /&gt;
    git pull&lt;br /&gt;
    cd ~/.rbenv/plugins/ruby-build&lt;br /&gt;
    git pull&lt;br /&gt;
    cd&lt;br /&gt;
    rbenv install -l&lt;br /&gt;
    rbenv install 2.6.1&lt;br /&gt;
    rbenv global 2.6.1&lt;br /&gt;
&lt;br /&gt;
=== Mastodon ===&lt;br /&gt;
&lt;br /&gt;
    cd ~/mastodon/live&lt;br /&gt;
    git fetch&lt;br /&gt;
    git checkout v2.8.0&lt;br /&gt;
    gem update --system&lt;br /&gt;
    bundle install&lt;br /&gt;
    yarn install&lt;br /&gt;
    RAILS_ENV=production bundle exec rails db:migrate&lt;br /&gt;
    RAILS_ENV=production bundle exec rails assets:precompile&lt;br /&gt;
&lt;br /&gt;
Restart Mastodon!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://joinmastodon.org/ Offizielle Webseite von Mastodon]&lt;br /&gt;
* im Archiv: https://github.com/mastodon/documentation/blob/archive/Running-Mastodon/Production-guide.md&lt;br /&gt;
* aktuell: https://docs.joinmastodon.org/admin/install/&lt;br /&gt;
* https://krinetzki.de/2017/04/installation-von-mastodon-auf-debian-8-jessie/&lt;br /&gt;
* [https://github.com/tpokorra/Hostsharing-Ansible-Mastodon Ansible Playbook für Hostsharing]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Ansible Playbook]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Pleroma&amp;diff=5913</id>
		<title>Pleroma</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Pleroma&amp;diff=5913"/>
		<updated>2022-11-04T07:43:23Z</updated>

		<summary type="html">&lt;p&gt;Edv38: mit Mastodon-Anleitung verlinkt und Absatz über Ressourcen hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pleroma =&lt;br /&gt;
&lt;br /&gt;
Pleroma ist eine Server-Software für einen &amp;quot;Microblogging&amp;quot; Server. Die Funktionalität ist vergleichbar mit Twitter. &lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu Twitter ist Pleroma aber kein abgeschlossener Dienst eines kommerziellen Anbieters sondern Pleroma nimmt an der &amp;quot;Federation&amp;quot;, der Föderation, teil. Nachrichten können mit Personen ausgetauscht werden, die Ihr Profil auf anderen Pleroma-, [[Mastodon bei Hostsharing|Mastodon]]- oder auch Pixelfed-Instanzen haben. &lt;br /&gt;
&lt;br /&gt;
Das Protokoll zum Nachrichtenaustausch ist ActivityPub.&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu einer [[Mastodon bei Hostsharing|Mastodon-Instanz]] brauchen Pleroma-Instanzen wenig Ressourcen. Pleroma bietet sich auch für einzelne Nutzer an, die am &amp;quot;Fediverse&amp;quot; teilnehmen und ihre Daten selber hosten und verwalten wollen, statt einer existierenden Instanz beizutreten und die Datenverwaltung abzugeben -- ähnlich wie einen eigenen E-Mail-Server zu betreiben, statt existierende E-Mail-Dienste in Anspruch zu nehmen, auch wenn man nur einen einzigen E-Mail Account für die eigene Domain hat.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
Folge der Installationsanleitung für OTP Releases:&lt;br /&gt;
&lt;br /&gt;
* https://docs-develop.pleroma.social/backend/installation/otp_en/&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* https://pleroma.social/&lt;br /&gt;
* https://blog.soykaf.com/post/what-is-pleroma/&lt;br /&gt;
* https://fediverse.network/&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Amazon_SES&amp;diff=5397</id>
		<title>Amazon SES</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Amazon_SES&amp;diff=5397"/>
		<updated>2021-02-24T07:53:24Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Amazon SES Beispiel mit zonefile angelegt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{HSDoku-Links}}&lt;br /&gt;
&lt;br /&gt;
Amazon SES steht für &amp;quot;&#039;&#039;&#039;Simple Email Service&#039;&#039;&#039;&amp;quot; und ist ein Teil der Amazon Cloud oder AWS (&amp;quot;Amazon Web Services&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vom Versenden von Newslettern und hochvolumigen Massen-E-Mails ist auf den Hostsharing Servern abzuraten. Amazon SES ist ein erschwinglicher Dienst, um [[E-Mail|E-Mails]] an tausende von Empfängern zu verschicken. Man kann mit selbst gehosteter Software zur Verwaltung von Newslettern wie z.B. [https://sendy.co/ Sendy] die Auslieferung via Amazon SES einrichten. Die Software kann dabei auf den Hostsharing Rechnern betrieben werden und der eigentliche Versand verfolgt dann über Amazons Cloud-Dienst.&lt;br /&gt;
&lt;br /&gt;
Damit Amazon SES die eigenen E-Mail-Adressen allerdings akzeptiert, muss man die Adresse erst verifizieren. Das läuft über TXT records. Wenn man in der [https://console.aws.amazon.com/ses/home SES Management Console] eine Domain einstellt, werden die Werte, die man dafür braucht, angezeigt.&lt;br /&gt;
&lt;br /&gt;
Den TXT record kann man in der Zonefile der Domain ergänzen. Wenn man noch kein Zonefile hat, kann man eins anlegen, das nur den Amazon SES Eintrag ergänzt, ohne den Rest der Einstellungen zu beeinträchtigen.&lt;br /&gt;
&lt;br /&gt;
=== Beispiel ===&lt;br /&gt;
&lt;br /&gt;
Für die Domain &#039;example.de&#039; ändere man dazu &amp;lt;code&amp;gt;~/doms/example.de/etc/pri.example.de&amp;lt;/code&amp;gt; so ab, dass die Werte von Amazon SES in einer eigenen Zeile nach einem Import der Standardeinstellungen stehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE}&lt;br /&gt;
_amazonses.example.de.  IN TXT  &amp;quot;123456789asdf123456789asdf123456789asdf12=&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Werte kopiert man nach Anlegen der Doaaus dem SES Wichtig ist dabei der Punkt (.) nach dem Schlüssel/der Domäne, und die Anführungsstriche um den Wert herum.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:E-Mail]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=User-Arten&amp;diff=5306</id>
		<title>User-Arten</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=User-Arten&amp;diff=5306"/>
		<updated>2020-11-11T18:01:24Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Kerndoku Link aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Kerndoku|Der Inhalt ist der Hostsharing Dokumentation unter&lt;br /&gt;
&lt;br /&gt;
https://doc.hostsharing.net/referenz/benutzer/index.html&lt;br /&gt;
&lt;br /&gt;
zu finden.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:User]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=5305</id>
		<title>Verwalten der Zonendaten</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Verwalten_der_Zonendaten&amp;diff=5305"/>
		<updated>2020-11-11T16:48:13Z</updated>

		<summary type="html">&lt;p&gt;Edv38: aktualisierte Links zur Doku&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Kerndoku|https://doc.hostsharing.net/referenz/zonefile/index.html}}&lt;br /&gt;
&lt;br /&gt;
Das Zonenfile für eine Domain enthält die Konfiguration des Domain Name Service ([[DNS]]), d.h. der [[Nameserver]] der Domain. Es wird hinterlegt, welche Hostnamen innerhalb der Domain existieren und auf welche IP-Adressen diese zeigen. Außerdem wird hierüber auch gesteuert, an welches System Mails für die Domain geliefert werden sollen. Für einfache und unkomplizierte Änderungen bitte in [[Simple Zonefile Howto]] schauen.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Achtung|Aufgrund der zentralen Bedeutung sollten Änderungen nur mit Vorsicht vorgenommen werden, da eine fehlerhafte Einstellung dazu führen kann, dass die Webseite nicht mehr im Internet abgerufen werden kann oder Mails verloren gehen!}}&lt;br /&gt;
&lt;br /&gt;
== Aktives Zonefile ==&lt;br /&gt;
&lt;br /&gt;
Die gerade aktive Konfiguration einer Domain example.com ist in /etc/bind/pri.example.com zu finden ([[Zonefile]]).&lt;br /&gt;
&lt;br /&gt;
Im Standardfall sieht es vollständig expandiert wie folgt aus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;example.com. IN SOA h00.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
                1303649373      ; serial secs since Jan 1 1970&lt;br /&gt;
                6H              ; refresh (&amp;gt;=10000)&lt;br /&gt;
                1H              ; retry (&amp;gt;=1800)&lt;br /&gt;
                1W              ; expire&lt;br /&gt;
                1H              ; minimum&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      NS      dns1.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns2.hostsharing.net.&lt;br /&gt;
example.com.    IN      NS      dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
example.com.    IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      A       83.223.95.160&lt;br /&gt;
example.com.    IN      AAAA    2a01:37:1000::53df:5fa0:0&lt;br /&gt;
&lt;br /&gt;
example.com.    IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      MX      30 mailin1.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin2.hostsharing.net.&lt;br /&gt;
*.example.com.  IN      MX      30 mailin3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      A       83.223.95.160&lt;br /&gt;
*.example.com.  IN      AAAA    2a01:37:1000::53df:5fa0:0&lt;br /&gt;
&lt;br /&gt;
*.example.com.  IN      TXT     &amp;quot;v=spf1 include:spf.hostsharing.net ?all&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logfile und Kontrolle==&lt;br /&gt;
&lt;br /&gt;
Die Logfiles des Nameservers sind im Verzeichnis /var/log/named einsehbar. Das aktuelle Log wird unter dem Namen named.log angelegt. Dieses wird beim Neustart des DNS-Servers immer neu angelegt und zeigt bei einer erfolgreichen Änderung etwa folgenden Inhalt:&lt;br /&gt;
&lt;br /&gt;
  Oct 11 18:32:21.400 info: zone example.org/IN: loaded serial 1065889567&lt;br /&gt;
  Oct 11 18:32:21.435 info: zone example.org/IN: sending notifies (serial 1065889567)&lt;br /&gt;
  Oct 11 18:32:21.755 info: client 213.133.116.2#57100: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
  Oct 11 18:32:22.264 info: client 62.75.149.27#45282: transfer of &#039;example.org/IN&#039;: &lt;br /&gt;
  AXFR-style IXFR started&lt;br /&gt;
&lt;br /&gt;
Die Zeilen bedeuten jeweils:&lt;br /&gt;
&lt;br /&gt;
* Das geänderte Zonefile wurde vom DNS-Server erfolgreich geladen&lt;br /&gt;
* Der lokale Server sendet eine Benachrichtigung an die Secondaries, damit diese die Änderung ebenfalls übernehmen können.&lt;br /&gt;
&lt;br /&gt;
Tippfehler oder falsche Angaben im Zonefile werden hier ebenfalls gemeldet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  -------- Original-Nachricht --------&lt;br /&gt;
  Betreff: [Global] DNS Zonenfile Änderungen&lt;br /&gt;
  Datum: Thu, 4 Mar 2010 08:30:34 +0100&lt;br /&gt;
  &lt;br /&gt;
  Moin Moin,&lt;br /&gt;
  &lt;br /&gt;
  aus gegebenem Anlass: Immer wieder kommt es vor, dass jemand sein&lt;br /&gt;
  Zonenfile ändert, und es (scheinbar) funktioniert. Tage oder Wochen&lt;br /&gt;
  später dann sind die Domains nicht mehr erreichbar und es heißt &amp;quot;in den&lt;br /&gt;
  letzten ... Tagen/Wochen habe ich aber gar nichts mehr geändert&amp;quot;. Das mag&lt;br /&gt;
  auch gut sein - ist mir auch selbst schon passiert, gerade wenn es um&lt;br /&gt;
  &amp;quot;mal eben schnell noch ... &amp;quot; ging.&lt;br /&gt;
  &lt;br /&gt;
  Nur ist der Fehler dann aber schon vor Tagen/Wochen passiert, und solange&lt;br /&gt;
  die Datensätze nicht abgelaufen (expired) sind, sind sie - die alten -&lt;br /&gt;
  noch im DNS System vorhanden. Die neuen aber, die aus der o.g. Änderung,&lt;br /&gt;
  sind bei einem Fehler im Zonenfile nie ins DNS System hinein gekommen!&lt;br /&gt;
  &lt;br /&gt;
  Was also tun? Zunächst kann man nach einer Änderung in einer&lt;br /&gt;
  Shell beobachten, ob es zu Fehlermeldungen kommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log &lt;br /&gt;
  &lt;br /&gt;
  oder ggf nur Zeilen, in denen die eigene Domain (z.B. example.com)&lt;br /&gt;
  vorkommt:&lt;br /&gt;
  &lt;br /&gt;
  tail -f /var/log/named/named.log | grep example.com&lt;br /&gt;
  &lt;br /&gt;
  Diese Log-Datei ist daher genau aus diese Grunde auch auf dem&lt;br /&gt;
  Server lesbar.&lt;br /&gt;
  &lt;br /&gt;
  Auch sollte die in den DNS-Servern befindliche Seriennummer mit der&lt;br /&gt;
  aktuellen in der Zonendatei verglichen werden:&lt;br /&gt;
  &lt;br /&gt;
  dig -t SOA @dns1 example.com | grep &#039;^example.com.*SOA&#039; | awk &#039;{ print $7 }&#039;&lt;br /&gt;
  &lt;br /&gt;
  grep serial /etc/bind/pri.example.com | awk &#039;{ print $1 }&#039;  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenes Zonenfile ==&lt;br /&gt;
&lt;br /&gt;
Wer ein eigenes Zonefile installieren möchte, um diverse Anwendungsfälle zu realisieren (Verweise auf extern gelagerte Subdomains, Anbindung externer Server, Verwendung eigener Mailserver), kann &#039;&#039;&#039;pro Domain&#039;&#039;&#039; ein eigenes Zonefile erstellen. Dieses befindet sich im Verzeichnis &#039;&#039;&#039;~/doms/example.com/etc&#039;&#039;&#039; mit den Namen &#039;&#039;&#039;pri.example.com&#039;&#039;&#039; (example.com steht hier als Beispiel für den wahren Domainnamen). Ein Neuanlegen oder eine Änderung dieser Datei führt zu einer baldigen Änderung der Nameservereinträge für die Domain.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|rot|Warnung!|Das nicht sachgemäße Erstellen eines eigenen Zonefiles kann zur Nichterreichbarkeit der eigenen Domain und zum Verlust von Mails führen!}}&lt;br /&gt;
&lt;br /&gt;
Eine Anleitung für die eher einfachen und oft gewünschten Änderungen findet sich in [[Simple Zonefile Howto]].&lt;br /&gt;
&lt;br /&gt;
Folgende Platzhalter können und sollten in eigenen Zonenfiles verwendet werden. Sie ermöglichen uns das Ändern der DNS-Konfiguration, ohne dass der Domain-Admin sein Zonefile anpassen muss.&lt;br /&gt;
&lt;br /&gt;
=== Komplexe Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{DEFAULT_ZONEFILE} :=&lt;br /&gt;
	{HEADER}&lt;br /&gt;
	{SOA_RR}&lt;br /&gt;
	{NS_RR}&lt;br /&gt;
	{MX_RR}	&lt;br /&gt;
	{A_RR}&lt;br /&gt;
	{WILDCARD_MX_RR}&lt;br /&gt;
	{WILDCARD_A_RR}&lt;br /&gt;
&lt;br /&gt;
{HEADER} :=&lt;br /&gt;
	$TTL {TTL}&lt;br /&gt;
&lt;br /&gt;
{SOA_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
		{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
		{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
		{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
		{EXPIRE}	; expire&lt;br /&gt;
		{MINIMUM}	; minimum&lt;br /&gt;
		)&lt;br /&gt;
&lt;br /&gt;
{NS_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{MX_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{A_RR} :=&lt;br /&gt;
	{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_MX_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{WILDCARD_A_RR} :=&lt;br /&gt;
	*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Atomare Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{TTL} :=		6H&lt;br /&gt;
{SOA_HOSTNAME} :=	&amp;lt;HIVE&amp;gt;.hostsharing.net&lt;br /&gt;
{SOA_EMAIL}:=		hostmaster.hostsharing.net&lt;br /&gt;
{SIO} :=		&amp;lt;SEKUNDEN&amp;gt;&lt;br /&gt;
{REFRESH} :=		6H&lt;br /&gt;
{RETRY} :=		1H&lt;br /&gt;
{EXPIRE} :=		1W&lt;br /&gt;
{MINIMUM} :=		1H&lt;br /&gt;
&lt;br /&gt;
{DNS1_HOSTNAME} :=	dns1.hostsharing.net&lt;br /&gt;
{DNS2_HOSTNAME} :=	dns2.hostsharing.net&lt;br /&gt;
{DNS3_HOSTNAME} :=	dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{MX1_HOSTNAME} :=	mailin1.hostsharing.net&lt;br /&gt;
{MX2_HOSTNAME} :=	mailin2.hostsharing.net&lt;br /&gt;
{MX3_HOSTNAME} :=	mailin3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME} :=	&amp;lt;FQDN&amp;gt;&lt;br /&gt;
{DOM_IPNUMBER} := 	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei stehen&lt;br /&gt;
* &amp;lt;Sekunden&amp;gt; für die Anzahl der Sekunden, welche seit dem 01.01.1970 vergangen sind&lt;br /&gt;
* &amp;lt;FQDN&amp;gt; für den vollständigen, qualifizierten Domainnamen der Domain&lt;br /&gt;
* &amp;lt;IP&amp;gt; für die der Domain zugewiesene IP-Adresse&lt;br /&gt;
&lt;br /&gt;
Diese Werte werden von Hostsharing verwaltet.&lt;br /&gt;
&lt;br /&gt;
=== Expansion der Platzhalter ===&lt;br /&gt;
&lt;br /&gt;
Der Platzhalter für das Gesamtzonefile {DEFAULT_ZONFILE} wird folgermaßen expandiert.&lt;br /&gt;
&lt;br /&gt;
Zunächst werden die komplexen Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL {TTL}&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (&lt;br /&gt;
	{SIO}		; serial secs since Jan 1 1970&lt;br /&gt;
	{REFRESH}	; refresh (&amp;gt;=10000)&lt;br /&gt;
	{RETRY}		; retry (&amp;gt;=1800)&lt;br /&gt;
	{EXPIRE}	; expire&lt;br /&gt;
	{MINIMUM}	; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	NS	{DNS3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
{DOM_HOSTNAME}.		IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
{DOM_HOSTNAME}.		IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX1_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX2_HOSTNAME}.&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	MX	30 {MX3_HOSTNAME}.&lt;br /&gt;
&lt;br /&gt;
*.{DOM_HOSTNAME}.	IN	A	{DOM_IPNUMBER}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden die atomaren Platzhalter ersetzt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$TTL 6H&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;. IN SOA &amp;lt;HIVE&amp;gt;.hostsharing.net. hostmaster.hostsharing.net. (&lt;br /&gt;
	&amp;lt;SEKUNDEN&amp;gt;	; serial secs since Jan 1 1970&lt;br /&gt;
	6H		; refresh (&amp;gt;=10000)&lt;br /&gt;
	1H		; retry (&amp;gt;=1800)&lt;br /&gt;
	1W		; expire&lt;br /&gt;
	1H		; minimum&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	NS	dns3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;FQDN&amp;gt;.		IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail1.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail2.hostsharing.net.&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	MX	30 mail3.hostsharing.net.&lt;br /&gt;
&lt;br /&gt;
*.&amp;lt;FQDN&amp;gt;.	IN	A	&amp;lt;IP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Das Zonefile deaktivieren/zurücksetzen ==&lt;br /&gt;
&lt;br /&gt;
In ~/doms/example.com/etc das vorhandene Zonefile (pri.example.com) komplett leeren (ist dann 0 Bytes groß). Dann kommt der Robot vorbei, löscht pri.example.com und setzt alles auf Standardwerte zurück.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5304</id>
		<title>Nameserver</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nameserver&amp;diff=5304"/>
		<updated>2020-11-11T16:46:54Z</updated>

		<summary type="html">&lt;p&gt;Edv38: aktualisierte Links zur Doku&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Für Domains, die bei Hostsharing registriert sind, gibt es drei redundante Nameserver, die auf Anfrage die Zuordnung Domainname (z.B. www.example.com) -&amp;gt; IP-Adresse (z.B. 1.2.3.4) vornehmen. Diese Nameserver stehen aus Gründen der Zuverlässigkeit und Ausfallsicherheit in drei verschiedenen [https://de.wikipedia.org/wiki/Autonomes_System autonomen Systemen] an verschiedenen Standorten. Die Namen dieser Nameserver lauten:&lt;br /&gt;
&lt;br /&gt;
* dns1.hostsharing.net&lt;br /&gt;
* dns2.hostsharing.net&lt;br /&gt;
* dns3.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
Jede Nutzung eines Dienstes (z.B. E-Mail, WWW, FTP, SSH und viele andere) im Internet, die über den Domainnamen des zugehörigen Rechners erfolgt, benötigt einen Nameserver, der die Frage nach der IP-Adresse des Rechners beantwortet.&lt;br /&gt;
&lt;br /&gt;
Ohne Nameserver kann der Dienst natürlich auch erreicht werden, und zwar direkt über seine IP-Adresse. Aber nur die Existenz des Nameservers erlaubt es, den Dienst über seinen Domainnamen aufzurufen.&lt;br /&gt;
&lt;br /&gt;
===Häufige Frage===&lt;br /&gt;
Manchmal werden im Domainbestellsystem Einträge für secondary Domainserver nicht  angenommen. Das könnte daran liegen, dass die nötigen Schritte nicht in der nötigen Reihenfolge abgearbeitet wurden. &lt;br /&gt;
&lt;br /&gt;
Anleitung: [https://doc.hostsharing.net/einstieg/domain.html Domain bestellen]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[Verwalten der Zonendaten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Zonefile]]&lt;br /&gt;
[[Kategorie:DNS]]&lt;br /&gt;
[[Kategorie:Domains]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=5264</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=5264"/>
		<updated>2020-07-05T10:01:27Z</updated>

		<summary type="html">&lt;p&gt;Edv38: eigenen Abschnitt zu allgemeinen Infos vorgeschaltet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nextcloud =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.com/ Nextcloud] ist eine PHP-basierte Open Source Lösung für gängige Cloud-Anwendungen, u.a.:&lt;br /&gt;
&lt;br /&gt;
* File sharing unter Nutzern derselben Nextcloud, und mit der Öffentlichkeit&lt;br /&gt;
* Single-Sign-On Authentifizierung (SSO)&lt;br /&gt;
* Videokonferenzen (WebRTC)&lt;br /&gt;
* Online-Office Anwendung [https://www.collaboraoffice.com/ Collabora Online]&lt;br /&gt;
&lt;br /&gt;
Beispiel-Funktionalität, die über Plugins, sogenannte [https://apps.nextcloud.com/ &amp;quot;Apps&amp;quot;], bereit gestellt werden kann:&lt;br /&gt;
&lt;br /&gt;
* Kalender, Aufgabenverwaltung, Adressbudd&lt;br /&gt;
* Datei-Kollaboration (Kommentare zu Dateien, Verschlagwortung)&lt;br /&gt;
* Feedreader&lt;br /&gt;
* E-Mail-Programm&lt;br /&gt;
* Fotogalerie&lt;br /&gt;
* Musik- und Videowiedergabe&lt;br /&gt;
&lt;br /&gt;
= Nextcloud installieren =&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039;, zum Beispiel mit &#039;&#039;hsscript&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hsadmin&#039;&#039;-Shell starten mit:&lt;br /&gt;
&lt;br /&gt;
  hsscript -u xyz00 -i&lt;br /&gt;
  Password: ********&lt;br /&gt;
&lt;br /&gt;
Dann nacheinander anlegen:&lt;br /&gt;
&lt;br /&gt;
* Linux User als Domain-Administrator&lt;br /&gt;
* Subdomain &#039;&#039;cloud.example.org&#039;&#039;&lt;br /&gt;
* PostgreSQL-User &lt;br /&gt;
* PostgreSQL Datenbank&lt;br /&gt;
&lt;br /&gt;
  xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-cloud&#039;,password:&#039;geheim&#039;,shell:&#039;/bin/bash&#039;,comment:&#039;Nextcloud&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;cloud.example.org&#039;,user:&#039;xyz00-cloud&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; postgresqluser.add({set:{name:&#039;xyz00_nextclusr&#039;,password:&#039;geheim&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; postgresqldb.add({set:{name:&#039;xyz00_nextcloud&#039;,owner:&#039;xyz00_nextclusr&#039;}})&lt;br /&gt;
&lt;br /&gt;
== Nextcloud installieren ==&lt;br /&gt;
&lt;br /&gt;
Anmelden als Linux-User &#039;&#039;xyz00-cloud&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
  ssh -l xyz00-cloud xyz00.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;htdocs&#039;&#039; Verzeichnis vorbereiten&lt;br /&gt;
&lt;br /&gt;
  cd&lt;br /&gt;
  mkdir nextcloud&lt;br /&gt;
  cd doms/cloud.example.org&lt;br /&gt;
  rm -rf subs/www subs-ssl/www htdocs-ssl&lt;br /&gt;
  ln -s $HOME/nextcloud htdocs-ssl&lt;br /&gt;
&lt;br /&gt;
Nextcloud herunterladen und entpacken.&lt;br /&gt;
&lt;br /&gt;
  cd &lt;br /&gt;
  wget https://download.nextcloud.com/server/releases/nextcloud-16.0.4.zip &lt;br /&gt;
  unzip nextcloud-16.0.4.zip &lt;br /&gt;
  rm nextcloud-16.0.4.zip&lt;br /&gt;
  mkdir data tmp&lt;br /&gt;
  chmod 700 data tmp&lt;br /&gt;
&lt;br /&gt;
== Nextcloud konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Zur Zeit muss für Nextcloud PHP in der Version 7.3 manuell aktiviert werden. Eine Anleitung dazu findet sich auf der Seite [[PHP#Vorinstallierte_PHP_Version_wechseln]]&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis &amp;quot;$HOME/doms/cloud.example.org/fastcgi-ssl/&amp;quot; eine Datei &amp;quot;php.ini&amp;quot; anlegen mit folgendem Inhalt: &lt;br /&gt;
&lt;br /&gt;
  memory_limit=512M&lt;br /&gt;
  session.save_path=/home/pacs/xyz00/users/cloud/tmp&lt;br /&gt;
  opcache.enable=1&lt;br /&gt;
  opcache.enable_cli=1&lt;br /&gt;
  opcache.interned_strings_buffer=8&lt;br /&gt;
  opcache.max_accelerated_files=10000&lt;br /&gt;
  opcache.memory_consumption=128&lt;br /&gt;
  opcache.save_comments=1&lt;br /&gt;
  opcache.revalidate_freq=1&lt;br /&gt;
&lt;br /&gt;
Dann mit einem Editor diese Datei bearbeiten: In der erste Zeile den korrekten Pfad des vorher angelegten tmp-Verzeichnisses eintragen.&lt;br /&gt;
&lt;br /&gt;
Im Browser auf die Seite &lt;br /&gt;
http://cloud.example.org gehen und den Anweisungen folgen.&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite sind anzugeben:&lt;br /&gt;
&lt;br /&gt;
* Login und Passwort für den Administrator definieren&lt;br /&gt;
* PostgreSQL als Datenbanksystem&lt;br /&gt;
* PostgreSQL-User und Passwort aus dem ersten Schritt oben&lt;br /&gt;
* Name der PostgreSQL-Datenbank aus dem ersten Schritt&lt;br /&gt;
* &amp;quot;localhost&amp;quot; als Datenbankserver&lt;br /&gt;
* Das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/data/&amp;quot; als Daten-Verzeichnis&lt;br /&gt;
&lt;br /&gt;
== Nextcloud beschleunigen ==&lt;br /&gt;
&lt;br /&gt;
Dieser Teil ist optional.&lt;br /&gt;
&lt;br /&gt;
Wenn regelmäßig &#039;&#039;&#039;im Browser&#039;&#039;&#039; mit Nextcloud gearbeitet werden soll, ist Nextcloud im Browser oft sehr langsam. Um dies zu verbessern unterstützt Nextcloud die Anwendung von unterschiedlichen Cache-Verfahren (zum Beispiel Memcache, Redis).&lt;br /&gt;
&lt;br /&gt;
Redis ist auf den Hostsharing-Servern vorinstalliert und wird von den Nextcloud-Entwicklern empfohlen. &#039;&#039;&#039;In Verbindung mit einem Managed Webspace&#039;&#039;&#039; muss Redis als eigener Server &#039;&#039;&#039;Daemon&#039;&#039;&#039; angemeldet werden und ist &#039;&#039;&#039;kostenpflichtig&#039;&#039;&#039;. Siehe zu Kosten im Webspace Konfigurator unter: https://www.hostsharing.net/angebote/managed-webspace/ – &#039;&#039;&#039;1 individueller Serverdienst&#039;&#039;&#039; (Daemons).&lt;br /&gt;
&lt;br /&gt;
Mit dem Hostsharing-Service wird ein IP-Port für die Nutzung von Redis vereinbart.&lt;br /&gt;
&lt;br /&gt;
Für den Redis-Dienst lege ich folgende Struktur an:&lt;br /&gt;
&lt;br /&gt;
  cd ~&lt;br /&gt;
  mkdir -p ~/redis/etc&lt;br /&gt;
  mkdir -p ~/redis/var&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;~/redis/etc&#039;&#039; lege ich eine Konfigurationsdatei &#039;&#039;redis.conf&#039;&#039; für den Redis-Dienst ab:&lt;br /&gt;
&lt;br /&gt;
  daemonize yes&lt;br /&gt;
  pidfile /home/pacs/xyz00/users/cloud/redis/var/redis-server.pid&lt;br /&gt;
  requirepass mein-redis-passwort                    &lt;br /&gt;
  port 32123&lt;br /&gt;
  tcp-backlog 128&lt;br /&gt;
  bind 127.0.0.1&lt;br /&gt;
  timeout 300    &lt;br /&gt;
  loglevel notice&lt;br /&gt;
  logfile /home/pacs/xyz00/users/cloud/redis/var/redis.log&lt;br /&gt;
  databases 16&lt;br /&gt;
  save 900 1 &lt;br /&gt;
  save 300 10  &lt;br /&gt;
  save 60 10000&lt;br /&gt;
  slave-serve-stale-data yes&lt;br /&gt;
  appendonly no&lt;br /&gt;
  dbfilename dump.rdb&lt;br /&gt;
  dir /home/pacs/xyz00/users/cloud/redis/var&lt;br /&gt;
&lt;br /&gt;
Den Start und das Monitoring des Redis-Dienstes übernimmet &#039;&#039;monit&#039;&#039;. Hier eine geeignete Datei &#039;&#039;~/.monitrc&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
  set daemon 60&lt;br /&gt;
      with start delay 120&lt;br /&gt;
  set logfile /home/pacs/xyz00/users/cloud/monit/var/monit.log&lt;br /&gt;
  set idfile /home/pacs/xyz00/users/cloud/monit/var/monit.id&lt;br /&gt;
  set statefile /home/pacs/xyz00/users/cloud/monit/var/monit.state&lt;br /&gt;
  set mailserver localhost&lt;br /&gt;
  set mail-format { from: monit@cloud.example.com }&lt;br /&gt;
  set alert webmaster@example.com&lt;br /&gt;
  set httpd port 32123 address xyz00.hostsharing.net &lt;br /&gt;
      allow nextcloud:mein-monit-passwort&lt;br /&gt;
  check process redis with pidfile /home/pacs/xyz00/users/cloud/redis/var/redis-server.pid&lt;br /&gt;
      start program &amp;quot;/usr/bin/redis-server /home/pacs/xyz00/users/cloud/redis/etc/redis.conf&amp;quot;&lt;br /&gt;
      stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat /home/pacs/xyz00/users/cloud/redis/var/redis-server.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zugriffsrechte für die Datei &#039;&#039;~/.monitrc&#039;&#039; setzen:&lt;br /&gt;
&lt;br /&gt;
  cd ~&lt;br /&gt;
  chmod 600 .monitrc&lt;br /&gt;
&lt;br /&gt;
Verzeichnis für &#039;&#039;monit&#039;&#039; anlgegen:&lt;br /&gt;
&lt;br /&gt;
  cd ~&lt;br /&gt;
  mkdir -p monit/var&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) wird der Redis-Cache wie folgt konfiguriert:&lt;br /&gt;
&lt;br /&gt;
  &#039;memcache.local&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
  &#039;memcache.distributed&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
  &#039;memcache.locking&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
  &#039;redis&#039; =&amp;gt; &lt;br /&gt;
    array (&lt;br /&gt;
      &#039;host&#039; =&amp;gt; &#039;127.0.0.1&#039;,&lt;br /&gt;
      &#039;port&#039; =&amp;gt; 32123,&lt;br /&gt;
      &#039;password&#039; =&amp;gt; &#039;mein-redis-passwort&#039;,&lt;br /&gt;
      &#039;timeout&#039; =&amp;gt; 1.5,&lt;br /&gt;
    ),&lt;br /&gt;
&lt;br /&gt;
Um es perfekt zu machen nutze ich &#039;&#039;logrotate&#039;&#039; um die Logdateien zu organisieren. Dazu die Konfiguration in &#039;&#039;~/.logrotate&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  compress&lt;br /&gt;
  /home/pacs/xyz00/users/cloud/redis/var/redis.log {&lt;br /&gt;
    rotate 5&lt;br /&gt;
    daily&lt;br /&gt;
    missingok&lt;br /&gt;
  }&lt;br /&gt;
  /home/pacs/xyz00/users/cloud/monit/var/monit.log {&lt;br /&gt;
    rotate 2&lt;br /&gt;
    weekly&lt;br /&gt;
    missingok&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Eine Crontab sorgt für den Start von Monit und das tägliche Rotieren der Logdateien:&lt;br /&gt;
&lt;br /&gt;
  # m h  dom mon dow   command&lt;br /&gt;
  HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
  PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
  MAILTO=webmaster@example.com&lt;br /&gt;
  @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
  1 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate&lt;br /&gt;
  1,16,31,46 * * * * /usr/bin/php7.3 $HOME/nextcloud/cron.php&lt;br /&gt;
&lt;br /&gt;
Die letzte Zeile der &#039;&#039;crontab&#039;&#039; enthält den Cronjob für die regelmäßigen Hintergrundprozesse der Nextcloud. Durch die Erledigung dieser Aufgaben mit Cron lässt sich die Nextcloud ebenfalls etwas beschleunigen.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Online Office ==&lt;br /&gt;
&lt;br /&gt;
In Nextcloud können Office-Dokumente (Textverarbeitung, Tabellen und Präsentationen) im Browser bearbeitet werden. Dazu steht bei Hostsharing die Collabora Developer Version zur Verfügung. Bestellung und Konfiguration sind hier im Wiki auf der Seite [[Collabora_Online]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Nextcloud Talk ==&lt;br /&gt;
&lt;br /&gt;
Über die Nextcloud-App &amp;quot;Talk&amp;quot; können Videokonfererenzen mit Screensharing durchgeführt werden. Für die regelmäßige Nutzung kann es sinnvoll sein einen eigenen TURN Server zu betreiben. Siehe dazu [[Coturn_Installieren]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=5263</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Nextcloud&amp;diff=5263"/>
		<updated>2020-07-05T10:00:07Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Nextcloud kurz zusammengefasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nextcloud installieren =&lt;br /&gt;
&lt;br /&gt;
[https://nextcloud.com/ Nextcloud] ist eine PHP-basierte Open Source Lösung für gängige Cloud-Anwendungen, u.a.:&lt;br /&gt;
&lt;br /&gt;
- File sharing unter Nutzern derselben Nextcloud, und mit der Öffentlichkeit&lt;br /&gt;
- Single-Sign-On Authentifizierung (SSO)&lt;br /&gt;
- Videokonferenzen (WebRTC)&lt;br /&gt;
- Online-Office Anwendung [https://www.collaboraoffice.com/ Collabora Online]&lt;br /&gt;
&lt;br /&gt;
Beispiel-Funktionalität, die über Plugins, sogenannte [https://apps.nextcloud.com/ &amp;quot;Apps&amp;quot;], bereit gestellt werden kann:&lt;br /&gt;
&lt;br /&gt;
- Kalender, Aufgabenverwaltung, Adressbudd&lt;br /&gt;
- Datei-Kollaboration (Kommentare zu Dateien, Verschlagwortung)&lt;br /&gt;
- Feedreader&lt;br /&gt;
- E-Mail-Programm&lt;br /&gt;
- Fotogalerie&lt;br /&gt;
- Musik- und Videowiedergabe&lt;br /&gt;
&lt;br /&gt;
== Vorbereitungen ==&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;hsadmin&#039;&#039;, zum Beispiel mit &#039;&#039;hsscript&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hsadmin&#039;&#039;-Shell starten mit:&lt;br /&gt;
&lt;br /&gt;
  hsscript -u xyz00 -i&lt;br /&gt;
  Password: ********&lt;br /&gt;
&lt;br /&gt;
Dann nacheinander anlegen:&lt;br /&gt;
&lt;br /&gt;
* Linux User als Domain-Administrator&lt;br /&gt;
* Subdomain &#039;&#039;cloud.example.org&#039;&#039;&lt;br /&gt;
* PostgreSQL-User &lt;br /&gt;
* PostgreSQL Datenbank&lt;br /&gt;
&lt;br /&gt;
  xyz00@hsadmin&amp;gt; user.add({set:{name:&#039;xyz00-cloud&#039;,password:&#039;geheim&#039;,shell:&#039;/bin/bash&#039;,comment:&#039;Nextcloud&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; domain.add({set:{name:&#039;cloud.example.org&#039;,user:&#039;xyz00-cloud&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; postgresqluser.add({set:{name:&#039;xyz00_nextclusr&#039;,password:&#039;geheim&#039;}})&lt;br /&gt;
  xyz00@hsadmin&amp;gt; postgresqldb.add({set:{name:&#039;xyz00_nextcloud&#039;,owner:&#039;xyz00_nextclusr&#039;}})&lt;br /&gt;
&lt;br /&gt;
== Nextcloud installieren ==&lt;br /&gt;
&lt;br /&gt;
Anmelden als Linux-User &#039;&#039;xyz00-cloud&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
  ssh -l xyz00-cloud xyz00.hostsharing.net&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;htdocs&#039;&#039; Verzeichnis vorbereiten&lt;br /&gt;
&lt;br /&gt;
  cd&lt;br /&gt;
  mkdir nextcloud&lt;br /&gt;
  cd doms/cloud.example.org&lt;br /&gt;
  rm -rf subs/www subs-ssl/www htdocs-ssl&lt;br /&gt;
  ln -s $HOME/nextcloud htdocs-ssl&lt;br /&gt;
&lt;br /&gt;
Nextcloud herunterladen und entpacken.&lt;br /&gt;
&lt;br /&gt;
  cd &lt;br /&gt;
  wget https://download.nextcloud.com/server/releases/nextcloud-16.0.4.zip &lt;br /&gt;
  unzip nextcloud-16.0.4.zip &lt;br /&gt;
  rm nextcloud-16.0.4.zip&lt;br /&gt;
  mkdir data tmp&lt;br /&gt;
  chmod 700 data tmp&lt;br /&gt;
&lt;br /&gt;
== Nextcloud konfigurieren ==&lt;br /&gt;
&lt;br /&gt;
Zur Zeit muss für Nextcloud PHP in der Version 7.3 manuell aktiviert werden. Eine Anleitung dazu findet sich auf der Seite [[PHP#Vorinstallierte_PHP_Version_wechseln]]&lt;br /&gt;
&lt;br /&gt;
Im Verzeichnis &amp;quot;$HOME/doms/cloud.example.org/fastcgi-ssl/&amp;quot; eine Datei &amp;quot;php.ini&amp;quot; anlegen mit folgendem Inhalt: &lt;br /&gt;
&lt;br /&gt;
  memory_limit=512M&lt;br /&gt;
  session.save_path=/home/pacs/xyz00/users/cloud/tmp&lt;br /&gt;
  opcache.enable=1&lt;br /&gt;
  opcache.enable_cli=1&lt;br /&gt;
  opcache.interned_strings_buffer=8&lt;br /&gt;
  opcache.max_accelerated_files=10000&lt;br /&gt;
  opcache.memory_consumption=128&lt;br /&gt;
  opcache.save_comments=1&lt;br /&gt;
  opcache.revalidate_freq=1&lt;br /&gt;
&lt;br /&gt;
Dann mit einem Editor diese Datei bearbeiten: In der erste Zeile den korrekten Pfad des vorher angelegten tmp-Verzeichnisses eintragen.&lt;br /&gt;
&lt;br /&gt;
Im Browser auf die Seite &lt;br /&gt;
http://cloud.example.org gehen und den Anweisungen folgen.&lt;br /&gt;
&lt;br /&gt;
Auf der ersten Seite sind anzugeben:&lt;br /&gt;
&lt;br /&gt;
* Login und Passwort für den Administrator definieren&lt;br /&gt;
* PostgreSQL als Datenbanksystem&lt;br /&gt;
* PostgreSQL-User und Passwort aus dem ersten Schritt oben&lt;br /&gt;
* Name der PostgreSQL-Datenbank aus dem ersten Schritt&lt;br /&gt;
* &amp;quot;localhost&amp;quot; als Datenbankserver&lt;br /&gt;
* Das Verzeichnis &amp;quot;/home/pacs/xyz00/users/cloud/data/&amp;quot; als Daten-Verzeichnis&lt;br /&gt;
&lt;br /&gt;
== Nextcloud beschleunigen ==&lt;br /&gt;
&lt;br /&gt;
Dieser Teil ist optional.&lt;br /&gt;
&lt;br /&gt;
Wenn regelmäßig &#039;&#039;&#039;im Browser&#039;&#039;&#039; mit Nextcloud gearbeitet werden soll, ist Nextcloud im Browser oft sehr langsam. Um dies zu verbessern unterstützt Nextcloud die Anwendung von unterschiedlichen Cache-Verfahren (zum Beispiel Memcache, Redis).&lt;br /&gt;
&lt;br /&gt;
Redis ist auf den Hostsharing-Servern vorinstalliert und wird von den Nextcloud-Entwicklern empfohlen. &#039;&#039;&#039;In Verbindung mit einem Managed Webspace&#039;&#039;&#039; muss Redis als eigener Server &#039;&#039;&#039;Daemon&#039;&#039;&#039; angemeldet werden und ist &#039;&#039;&#039;kostenpflichtig&#039;&#039;&#039;. Siehe zu Kosten im Webspace Konfigurator unter: https://www.hostsharing.net/angebote/managed-webspace/ – &#039;&#039;&#039;1 individueller Serverdienst&#039;&#039;&#039; (Daemons).&lt;br /&gt;
&lt;br /&gt;
Mit dem Hostsharing-Service wird ein IP-Port für die Nutzung von Redis vereinbart.&lt;br /&gt;
&lt;br /&gt;
Für den Redis-Dienst lege ich folgende Struktur an:&lt;br /&gt;
&lt;br /&gt;
  cd ~&lt;br /&gt;
  mkdir -p ~/redis/etc&lt;br /&gt;
  mkdir -p ~/redis/var&lt;br /&gt;
&lt;br /&gt;
In &#039;&#039;~/redis/etc&#039;&#039; lege ich eine Konfigurationsdatei &#039;&#039;redis.conf&#039;&#039; für den Redis-Dienst ab:&lt;br /&gt;
&lt;br /&gt;
  daemonize yes&lt;br /&gt;
  pidfile /home/pacs/xyz00/users/cloud/redis/var/redis-server.pid&lt;br /&gt;
  requirepass mein-redis-passwort                    &lt;br /&gt;
  port 32123&lt;br /&gt;
  tcp-backlog 128&lt;br /&gt;
  bind 127.0.0.1&lt;br /&gt;
  timeout 300    &lt;br /&gt;
  loglevel notice&lt;br /&gt;
  logfile /home/pacs/xyz00/users/cloud/redis/var/redis.log&lt;br /&gt;
  databases 16&lt;br /&gt;
  save 900 1 &lt;br /&gt;
  save 300 10  &lt;br /&gt;
  save 60 10000&lt;br /&gt;
  slave-serve-stale-data yes&lt;br /&gt;
  appendonly no&lt;br /&gt;
  dbfilename dump.rdb&lt;br /&gt;
  dir /home/pacs/xyz00/users/cloud/redis/var&lt;br /&gt;
&lt;br /&gt;
Den Start und das Monitoring des Redis-Dienstes übernimmet &#039;&#039;monit&#039;&#039;. Hier eine geeignete Datei &#039;&#039;~/.monitrc&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
  set daemon 60&lt;br /&gt;
      with start delay 120&lt;br /&gt;
  set logfile /home/pacs/xyz00/users/cloud/monit/var/monit.log&lt;br /&gt;
  set idfile /home/pacs/xyz00/users/cloud/monit/var/monit.id&lt;br /&gt;
  set statefile /home/pacs/xyz00/users/cloud/monit/var/monit.state&lt;br /&gt;
  set mailserver localhost&lt;br /&gt;
  set mail-format { from: monit@cloud.example.com }&lt;br /&gt;
  set alert webmaster@example.com&lt;br /&gt;
  set httpd port 32123 address xyz00.hostsharing.net &lt;br /&gt;
      allow nextcloud:mein-monit-passwort&lt;br /&gt;
  check process redis with pidfile /home/pacs/xyz00/users/cloud/redis/var/redis-server.pid&lt;br /&gt;
      start program &amp;quot;/usr/bin/redis-server /home/pacs/xyz00/users/cloud/redis/etc/redis.conf&amp;quot;&lt;br /&gt;
      stop program &amp;quot;/bin/bash -c &#039;/bin/kill $( cat /home/pacs/xyz00/users/cloud/redis/var/redis-server.pid )&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Zugriffsrechte für die Datei &#039;&#039;~/.monitrc&#039;&#039; setzen:&lt;br /&gt;
&lt;br /&gt;
  cd ~&lt;br /&gt;
  chmod 600 .monitrc&lt;br /&gt;
&lt;br /&gt;
Verzeichnis für &#039;&#039;monit&#039;&#039; anlgegen:&lt;br /&gt;
&lt;br /&gt;
  cd ~&lt;br /&gt;
  mkdir -p monit/var&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration der Nextcloud (in &#039;&#039;~/nextcloud/config/config.php&#039;&#039;) wird der Redis-Cache wie folgt konfiguriert:&lt;br /&gt;
&lt;br /&gt;
  &#039;memcache.local&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
  &#039;memcache.distributed&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
  &#039;memcache.locking&#039; =&amp;gt; &#039;\\OC\\Memcache\\Redis&#039;,&lt;br /&gt;
  &#039;redis&#039; =&amp;gt; &lt;br /&gt;
    array (&lt;br /&gt;
      &#039;host&#039; =&amp;gt; &#039;127.0.0.1&#039;,&lt;br /&gt;
      &#039;port&#039; =&amp;gt; 32123,&lt;br /&gt;
      &#039;password&#039; =&amp;gt; &#039;mein-redis-passwort&#039;,&lt;br /&gt;
      &#039;timeout&#039; =&amp;gt; 1.5,&lt;br /&gt;
    ),&lt;br /&gt;
&lt;br /&gt;
Um es perfekt zu machen nutze ich &#039;&#039;logrotate&#039;&#039; um die Logdateien zu organisieren. Dazu die Konfiguration in &#039;&#039;~/.logrotate&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  compress&lt;br /&gt;
  /home/pacs/xyz00/users/cloud/redis/var/redis.log {&lt;br /&gt;
    rotate 5&lt;br /&gt;
    daily&lt;br /&gt;
    missingok&lt;br /&gt;
  }&lt;br /&gt;
  /home/pacs/xyz00/users/cloud/monit/var/monit.log {&lt;br /&gt;
    rotate 2&lt;br /&gt;
    weekly&lt;br /&gt;
    missingok&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
Eine Crontab sorgt für den Start von Monit und das tägliche Rotieren der Logdateien:&lt;br /&gt;
&lt;br /&gt;
  # m h  dom mon dow   command&lt;br /&gt;
  HOME=/home/pacs/xyz00/users/cloud&lt;br /&gt;
  PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
  MAILTO=webmaster@example.com&lt;br /&gt;
  @reboot /usr/bin/monit -c $HOME/.monitrc&lt;br /&gt;
  1 1 * * * /usr/sbin/logrotate -s $HOME/.logrotate.state $HOME/.logrotate&lt;br /&gt;
  1,16,31,46 * * * * /usr/bin/php7.3 $HOME/nextcloud/cron.php&lt;br /&gt;
&lt;br /&gt;
Die letzte Zeile der &#039;&#039;crontab&#039;&#039; enthält den Cronjob für die regelmäßigen Hintergrundprozesse der Nextcloud. Durch die Erledigung dieser Aufgaben mit Cron lässt sich die Nextcloud ebenfalls etwas beschleunigen.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Online Office ==&lt;br /&gt;
&lt;br /&gt;
In Nextcloud können Office-Dokumente (Textverarbeitung, Tabellen und Präsentationen) im Browser bearbeitet werden. Dazu steht bei Hostsharing die Collabora Developer Version zur Verfügung. Bestellung und Konfiguration sind hier im Wiki auf der Seite [[Collabora_Online]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
== Nextcloud mit Nextcloud Talk ==&lt;br /&gt;
&lt;br /&gt;
Über die Nextcloud-App &amp;quot;Talk&amp;quot; können Videokonfererenzen mit Screensharing durchgeführt werden. Für die regelmäßige Nutzung kann es sinnvoll sein einen eigenen TURN Server zu betreiben. Siehe dazu [[Coturn_Installieren]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:CalDAV]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=Speicherbelegung&amp;diff=5205</id>
		<title>Speicherbelegung</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=Speicherbelegung&amp;diff=5205"/>
		<updated>2020-05-02T08:48:56Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Ausführung wie man soft quota/hard quota abliest&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Paketspeicher ==&lt;br /&gt;
&lt;br /&gt;
Der im gesamten Paket zur Verfügung stehende Speicher kann wie folgt abgefragt werden: &lt;br /&gt;
&lt;br /&gt;
Einloggen als Paketadmin und &#039;&#039;&#039;quota -g&#039;&#039;&#039; eingeben (wir nutzen Gruppenquota). Die Felder bedeuten:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 0em 0em 0em 2em; font-size:1em;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:orange;&amp;quot;&lt;br /&gt;
!Feld !! Bedeutung&lt;br /&gt;
|- style=&amp;quot;background-color:#CAE1FF;&amp;quot;&lt;br /&gt;
|blocks	|| KB belegt&lt;br /&gt;
|- style=&amp;quot;background-color:#B9D3EE;&amp;quot;&lt;br /&gt;
|quota || normales (gebuchtes) Limit in KB; &amp;quot;soft quota&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#CAE1FF;&amp;quot;&lt;br /&gt;
|limit || maximales (temporär toleriertes) Limit in KB; &amp;quot;hard quota&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:#B9D3EE;&amp;quot;&lt;br /&gt;
|grace || Anzahl der Tage, die man noch über &amp;quot;quota&amp;quot; bleiben darf (ist nur gesetzt, wenn blocks&amp;gt;quota)&lt;br /&gt;
|- style=&amp;quot;background-color:#CAE1FF;&amp;quot;&lt;br /&gt;
|files ||Anzahl der INodes (entspricht nicht immer, aber fast einem File. Lediglich Hardlinks verbrauchen nur einen INode pro &amp;quot;realer&amp;quot; Datei)&lt;br /&gt;
|- style=&amp;quot;background-color:#B9D3EE;&amp;quot;&lt;br /&gt;
|quota ||normales Limit der INode-Anzahl&lt;br /&gt;
|- style=&amp;quot;background-color:#CAE1FF;&amp;quot;&lt;br /&gt;
|limit ||maximales Limit der INode-Anzahl&lt;br /&gt;
|- style=&amp;quot;background-color:#B9D3EE;&amp;quot;&lt;br /&gt;
|grace || Anzahl der Tage, die man noch über &amp;quot;INode-quota&amp;quot; bleiben darf (ist nur gesetzt, wenn quota überschritten ist)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Um zu prüfen, ob ein Paket die Quota bald erreicht oder schon überschritten hat, muss man &#039;&#039;&#039;blocks&#039;&#039;&#039; mit  &#039;&#039;&#039;quota&#039;&#039;&#039; in Verhältnis setzen. Wenn &#039;&#039;&#039;blocks &amp;gt; quota&#039;&#039;&#039;, beginnt die &#039;&#039;grace period&#039;&#039;, während der ein weiterer Anstieg des Speicherverbrauchs noch toleriert wird. In jedem Fall gilt &#039;&#039;&#039;blocks &amp;lt; limit&#039;&#039;&#039;: die &amp;quot;hard quota&amp;quot; kann nicht überschritten werden und liegt z.B. bei 150% der &amp;quot;soft quota&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Der genutzte Speicher für den Paketadmin selbst kann mit &#039;&#039;&#039;du&#039;&#039;&#039; abgefragt werden: Einloggen als Paket-Admin und &#039;&#039;&#039;du -h&#039;&#039;&#039; eingeben. Der Befehl listet die aktuellen Größen der einzelnen Verzeichnisse auf und am Ende den gesamt belegten Plattenplatz in MB.&lt;br /&gt;
&lt;br /&gt;
{{Textkasten|gruen||&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Die Auflistung (mit &#039;&#039;&#039;du&#039;&#039;&#039;) erfolgt ohne den Speicherplatz der User, für deren Verzeichnisse der Paketadmin kein Zugriffsrecht hat, ohne Dateien in /tmp/ und ohne Datenbanken!}}&lt;br /&gt;
&lt;br /&gt;
Will man eine Übersicht über die Speicherbelegung aller User im Paket, verwendet man den Hostsharing-eigenen Befehl &#039;&#039;&#039;du-pac&#039;&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
Von unserem Mitglied Andreas Loesch gibt es dazu außerdem das hervorragende Skript pac-du-quota, das die Plattennutzung oder die Gruppenquota aller User eines Hostsharing-Paketes auflistet: http://hs.andreasloesch.de/pac-du-quota&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:Pakete bei HS]]&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=PHP&amp;diff=4863</id>
		<title>PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=PHP&amp;diff=4863"/>
		<updated>2019-04-15T14:25:45Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Anleitung Wechsel auf PHP 7.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;PHP wird heute bei HS standardmäßig per FastCGI vorkonfiguriert. Dafür wird in jedem Domainverzeichnis unter fastcgi/ eine phpstub Datei angelegt und der Apache Webserver ist konfiguriert .php Dateien über diesen &amp;quot;Stub&amp;quot; mit den Rechten des Users auszuführen.&lt;br /&gt;
&lt;br /&gt;
Zur Wiederherstellung des originalen phpstub ist dieser zentral abgelegt als&lt;br /&gt;
&lt;br /&gt;
  /usr/local/src/phpstub&lt;br /&gt;
&lt;br /&gt;
Anwender, die lediglich PHP-Dateien hochgeladen haben, brauchen ausdrücklich keine eigene php.ini.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Anpassung der PHP Grundkonfiguration === &lt;br /&gt;
&lt;br /&gt;
Um die PHP Konfiguration an eigene Bedürfnisse anzupassen, legt man eine Konfigurationsdatei Namens php.ini im fastcgi Verzeichnis der Domain an (Für https:// entsprechend im -ssl Verzeichnis). In dieser Datei müssen nicht alle Konfigurationsoptionen von PHP definiert sein, sondern nur die, die sich gegenüber der Standard php.ini ändern sollen. Diese liegt in /etc/php/VERSION/cgi und kann dort eingesehen werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Kommentare nicht mit # einleiten (kann zu unerwarteten Fehlkonfigurationen führen), Kommentarzeichen ist das Semikolon &amp;quot;;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Häufig anzupassen sind z.B.:&lt;br /&gt;
&lt;br /&gt;
* die Content-Type charset= Vorgabe für den HTTP Header.&lt;br /&gt;
&lt;br /&gt;
* der maximal verwendbare Hauptspeicher (memory_limit).&lt;br /&gt;
&lt;br /&gt;
* die maximale Größe hochgeladener Dateien (post_max_size).&lt;br /&gt;
&lt;br /&gt;
* die aktiven Extensions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel einer php.ini: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ------8&amp;lt; SCHNIPP &amp;gt;8------&lt;br /&gt;
 [..]&lt;br /&gt;
 memory_limit = 128M (default)&lt;br /&gt;
 post_max_size = 8M (default)&lt;br /&gt;
 upload_max_filesize = 2M (default)&lt;br /&gt;
&lt;br /&gt;
 [..]&lt;br /&gt;
 default_charset = &amp;quot;UTF-8&amp;quot;&lt;br /&gt;
 ; (ist sonst iso-8859-1)&lt;br /&gt;
 ; Der charset kann aber wiederum durch einen Funktionsaufruf&lt;br /&gt;
 ; header(&amp;quot;Content-Type: text/html; charset=iso-8859-1&amp;quot;)&lt;br /&gt;
 ; im PHP-Skript überschrieben werden (sofern output_buffering = On).&lt;br /&gt;
 ------8&amp;lt; SCHNIPP &amp;gt;8------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beachte:&#039;&#039;&#039; Eine geänderte php.ini Konfiguration wird mit FastCGI erst übernommen, wenn die PHP Prozesse des Users (die über längere Zeit laufen bleiben) neu gestartet werden.&lt;br /&gt;
&lt;br /&gt;
Die Brechstange, mit der das Neustarten der PHP Prozesse erzwungen werden kann, ist diese zu killen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
killall php -u $USER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
$USER = ist der aktuell angemeldeten Benutzer und muss nicht durch den Benutzernamen (xyz00 oder xyz00-user) ersetzt werden. Nur die Prozesse der $USER werden gelöscht.&lt;br /&gt;
&lt;br /&gt;
=== PHP Sicherheit ===&lt;br /&gt;
&lt;br /&gt;
==== open_basedir ====&lt;br /&gt;
&lt;br /&gt;
Sofern der PHP Parameter open_basdir nicht gesetzt ist (Vorgabe) können (kompromittierte) php Skripte an alle Dateien kommen des Users kommen, ohne einen extra Shellzugang installieren zu müssen und dadurch entdeckt zu werden.&lt;br /&gt;
&lt;br /&gt;
Die Passwortabfrage von Hsadmin bringt eine Abhilfe für die zentralen Dienste. (Sofern Du dein Passwort nicht in eine Datei schreibst und die Abfrage so wieder ausschaltest, wovon besser abzusehen ist.) Doch alle Daten auf die Du als Benutzer zugreifen kannst sind prinzipiell den PHP-Skripten ausgeliefert.&lt;br /&gt;
&lt;br /&gt;
Mit open_basedir wird festgelegt in welchen Verzeichnissen PHP Skripte lesen und schreiben dürfen. Geprüft wird dabei ob der zu öffnende Pfad mit dem angegebene Pfad beginnt. Es ist daher wichtig ob sich am Ende ein &amp;quot;/&amp;quot; befindet oder nicht. Ein open_basedir von /home/doms/example.org/subs/www (ohne /) erlaubt somit z.B. auch Zugriffe auf die Subdomain www2 etc.&lt;br /&gt;
&lt;br /&gt;
Beispielzeile für die php.ini:&lt;br /&gt;
 open_basedir = /home/doms/example.org/subs/&lt;br /&gt;
&lt;br /&gt;
Wenn man mehrere Subdomains hat und diese isolieren möchte, ist dies durch Aufschaltung von lokalen Subdomains auf verschiedene User möglich. (Siehe https://doc.hostsharing.net/users/administration/domain/index.html )&lt;br /&gt;
&lt;br /&gt;
==== safe_mode ==== &lt;br /&gt;
{{Textkasten|rot|Veraltete Option|Die Verwendung des Safe Mode wird explizit &#039;&#039;&#039;nicht&#039;&#039;&#039; empfohlen. Mit PHP 5.3.0 ist der Safe Mode veraltet, in PHP 6 gibt es diese Option nicht mehr.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dank (Fast)CGI laufen PHP Skripte zwar &amp;quot;nur&amp;quot; mit Userrechten, dennoch ist es ratsam, den PHP safe_mode zu aktivieren, sofern dies mit den eingesetzten PHP Skripten möglich ist. Der safe_mode kann auch die Daten des Users vor (kompromittierten) PHP Skripten schützen. In der php.ini ist dafür die Option&lt;br /&gt;
&lt;br /&gt;
  safe_mode = On&lt;br /&gt;
&lt;br /&gt;
zu setzten, und die weiteren Optionen sind zu prüfen.&lt;br /&gt;
&lt;br /&gt;
Falls Systembefehle oder Shellskripte ausgeführt werden müssen, sollten diese über ein extra safe_mode_exec_dir außerhalb des open_basedir bereitgestellt werden (z.B. ~/priv/bin).&lt;br /&gt;
&lt;br /&gt;
==== Sicherheitskritische Funktionen ====&lt;br /&gt;
&lt;br /&gt;
Weitere Dinge die deaktiviert werden sollten, wenn sie nicht benötigt werden, was im allgemeinen der Fall ist, sind: Das öffnen von URLs als Dateien,&lt;br /&gt;
&lt;br /&gt;
 allow_url_fopen = Off&lt;br /&gt;
&lt;br /&gt;
und die Ausführung von Systembefehlen.&lt;br /&gt;
&lt;br /&gt;
 disable_functions = show_source, system, passthru, shell_exec, exec, phpinfo, popen, proc_open&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  eigene PHP Konfigurationen und verschiedene nebeneinander verwenden ===&lt;br /&gt;
&lt;br /&gt;
Um verschiedene PHP Konfigurationen nebeneinander zu verwenden, kopierst Du den phpstub in ein Unterzeichnis von (fast)cgi(-ssl) und mappst (Einträge in der .htaccess) nach Belieben deine PHP Dateien darauf. &lt;br /&gt;
So können beliebig viele Konfigurationen bei einer Domain nebeneinander genutzt werden.&lt;br /&gt;
&lt;br /&gt;
==== Beispiel muster.example.com ==== &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir ~/doms/example.com/fastcgi/muster&lt;br /&gt;
cp ~/doms/example.com/fastcgi/phpstub ~/doms/example.com/fastcgi/muster/phpstub&lt;br /&gt;
&lt;br /&gt;
und wenn benötigt:&lt;br /&gt;
vi ~/doms/example.com/fastcgi/muster/php.ini&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend muss der Apache Webserver noch angewiesen werden auch diese bestimmte Konfiguration von PHP zu verwenden. Dazu werden der [[.htaccess]] Datei im DocumentRoot der Sub-Domain zwei Zeilen hinzugefügt bzw. eine .htaccess mit den zwei Zeilen angelegt. &lt;br /&gt;
Im Beispiel handelt es sich um die Domain muster.example.com, also:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd ~/doms/example.com/subs/muster&lt;br /&gt;
 vi .htaccess&lt;br /&gt;
&lt;br /&gt;
 AddType application/x-httpd-phpfastcgi .php&lt;br /&gt;
 Action application/x-httpd-phpfastcgi /fastcgi-bin/muster/phpstub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vorinstallierte PHP Version wechseln ==&lt;br /&gt;
Hostsharing bietet neben der aktuellen (2019-04-15) Standardversion 7.0.x auch PHP 7.1, 7.2, und 7.3 an.&lt;br /&gt;
&lt;br /&gt;
Um die Version zu wechseln, genügt es, den jeweiligen phpstub auszutauschen. Version 7.3 liegt unter &amp;lt;code&amp;gt;/usr/local/src/phpstub/phpstub73&amp;lt;/code&amp;gt;; das Versionformat ist entsprechend &amp;lt;code&amp;gt;/usr/local/src/phpstub/phpstubXX&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===phpstub für PHP 7.3 kopieren===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cp /usr/local/src/phpstub/phpstub73 ~/doms/example.com/fastcgi/&lt;br /&gt;
$ cp /usr/local/src/phpstub/phpstub73 ~/doms/example.com/fastcgi-ssl/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===phpstub für PHP 7.3 aktivieren===&lt;br /&gt;
&lt;br /&gt;
In der jeweiligen &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; eines Ordners genügt, die PHP Dateizuordnung zu überschreiben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AddType application/x-httpd-php73 .php&lt;br /&gt;
Action application/x-httpd-php73 /fastcgi-bin/phpstub73&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Damit wird für den aktuellen Ordner und alle Unterordner PHP 7.3 verwendet.&lt;br /&gt;
&lt;br /&gt;
== Eigene PHP Version ==&lt;br /&gt;
Es kann auch eine eigene PHP Version im Paket installiert werden.&lt;br /&gt;
Eine kurz Anleitung ist unter [[Eigene_PHP_Version]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;br /&gt;
[[Kategorie:WWW]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=RubyOnRails&amp;diff=3608</id>
		<title>RubyOnRails</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=RubyOnRails&amp;diff=3608"/>
		<updated>2013-07-08T14:42:56Z</updated>

		<summary type="html">&lt;p&gt;Edv38: Änderung 3607 von Edv38 (Diskussion) rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bestes Ruby on Rails Hosting bei Hostsharing ==&lt;br /&gt;
&lt;br /&gt;
Rubyanwendungen laufen (wie alle Anwendungen bei Hostsharing) als Prozesse des jeweiligen Benutzersaccounts. Probleme mit Dateirechten und Sicherheitsrisiken, wie sie sonst bei der Ausführung durch den Webserver auftreten, sind so von vorne herein ausgeschlossen.&lt;br /&gt;
&lt;br /&gt;
Standardmäßig erfolgt der Aufruf von Ruby Anwendungen durch den Apache Webserver über die FastCGI Schnittstelle. Dabei wird die Ruby Application Server Instanz des Users nach einem Aufruf noch für einige Zeit bereit gehalten, um sofort zur Bearbeitung von weiteren noch nicht gecacheten, oder gar nicht cachebaren, Anfragen zur Verfügung zu stehen.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb von noch anspruchsvolleren Anwendungen haben wir auch Tools wie haproxy, varnish, nginx etc. installiert. Auf Anfrage können wir auch mod_passenger oder mongrel installieren. Anwender, die damit auf unserer leistungsfähigen Infrastruktur (managed Plattform) z.B. einen Webserver Cluster mit load-balancing realisieren möchten, brauchen bei uns dafür nur eigene Daemons zu buchen, können dies aber auch (für größere Projekte) mit einer beliebigen Anzahl ganzer Server realisieren.&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ohne zusätzliche Daemons (ein Application Server) ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitungen ===&lt;br /&gt;
&lt;br /&gt;
Einige Einstellungen für den Paketuser.&lt;br /&gt;
&lt;br /&gt;
~/.gemrc&lt;br /&gt;
 install: --no-rdoc --no-ri&lt;br /&gt;
 update:  --no-rdoc --no-ri&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
~/.bashrc&lt;br /&gt;
 alias gem=&amp;quot;nice -n19 gem&amp;quot;&lt;br /&gt;
&lt;br /&gt;
~/.profile&lt;br /&gt;
 source &amp;quot;$HOME/.bashrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Ruby ===&lt;br /&gt;
&lt;br /&gt;
==== Vorinstalliert ====&lt;br /&gt;
&lt;br /&gt;
Soll nur die zentral installierte Ruby Version 1.8 verwendet werden, ergänzt man man in ~/.profile:&lt;br /&gt;
 # enable user&#039;s own ruby installations, keeping all stuff below $HOME/.gem&lt;br /&gt;
 export PATH=&amp;quot;$HOME/bin:$HOME/.gem/ruby/1.8/bin:$PATH&amp;quot;&lt;br /&gt;
 export GEM_PATH=&amp;quot;$HOME/.gem/ruby/1.8:$( gem env gempath )&amp;quot;&lt;br /&gt;
 export GEM_HOME=&amp;quot;$HOME/.gem/ruby/1.8&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Disabled for now, because using system libs caused undefined method error.&lt;br /&gt;
 #export RUBYLIB=&amp;quot;$HOME/.gem/ruby/1.8/lib:/usr/local/lib/site_ruby/1.8:/usr/lib/ruby/1.8&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # avoid to forget that extra parameter: ruby -rubygems prog_that_uses_gems&lt;br /&gt;
 export RUBYOPT=rubygems&lt;br /&gt;
 &lt;br /&gt;
 export RAILS_ENV=production&lt;br /&gt;
&lt;br /&gt;
==== Eigene Installation ====&lt;br /&gt;
&lt;br /&gt;
Um eine andere als die vorinstallierte Ruby Version zu verwenden, installiert man zunächst den Ruby Versions Manager (rvm),&lt;br /&gt;
 curl -L https://get.rvm.io | bash -s stable&lt;br /&gt;
 source ~/.rvm/scripts/rvm&lt;br /&gt;
 rvm notes&lt;br /&gt;
 rvm requirements&lt;br /&gt;
 rvm pkg install openssl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
und lässt dann die gewünschte Ruby Version installieren.&lt;br /&gt;
 rvm install x.y.z&lt;br /&gt;
&lt;br /&gt;
RVM passt die Umgebungsvariablen automatisch an die ausgewählt Version an. Die Version wählt man global per&lt;br /&gt;
 rvm use x.y.z --default&lt;br /&gt;
oder nur für ein spezielles Verzeichnis:&lt;br /&gt;
 cd ~/verzeichnis/mit/ruby-x.y.z-Anwendung&lt;br /&gt;
 rvm use x.y.z-p??? --rvmrc&lt;br /&gt;
&lt;br /&gt;
Zur Verwaltung von gems installiert man noch rubygems.&lt;br /&gt;
 rvm rubygems current&lt;br /&gt;
&lt;br /&gt;
=== Rails ===&lt;br /&gt;
&lt;br /&gt;
Falls man die Ruby-Umgebung gerade erst eingerichtet hat, ohne sich zwischenzeitlich abzumelden, muß man zunächst die Umgebung manuell laden.&lt;br /&gt;
 source ~/.profile&lt;br /&gt;
&lt;br /&gt;
Nun kann Rails per &amp;quot;gem install rails&amp;quot; installiert werden (inklusive Abhängigkeiten).&lt;br /&gt;
Um spezielle versionen zu installieren kann man den gem Befehl mit &amp;quot;-v=x.y.z&amp;quot; ergänzen.&lt;br /&gt;
&lt;br /&gt;
Zum Testen hier ein Beispiel das eine Content und Daten Management Anwendung installiert (http://zenadmin.org) und mit einer sqlite Datenbankdatei eingerichtet:&lt;br /&gt;
 gem install rails -v=2.3.11&lt;br /&gt;
 gem install i18n sexp_processor rmagick sqlite3 zena&lt;br /&gt;
 zena new ~/doms/www.example.org/rails      # Zena Rails-Anwendung anlegen.&lt;br /&gt;
 cd ~/doms/www.example.org/rails&lt;br /&gt;
 rake db:create        # Datenbank anlegen.&lt;br /&gt;
 zena migrate          # Datenbank Tabellen einrichten.&lt;br /&gt;
 zena mksite HOST_LANG=de RAILS_ENV=production PASSWORD=geheim HOST=www.example.org # Webseite anlegen.&lt;br /&gt;
&lt;br /&gt;
=== Rails-Anwendung ===&lt;br /&gt;
&lt;br /&gt;
Seine eigene Rails-Anwendung kopiert man z.B. nach ~/doms/www.example.org/rails, oder erstellt dort eine Neue (rails ~/doms/www.example.org/rails, ...).&lt;br /&gt;
&lt;br /&gt;
=== Datenbank ===&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;hsadmin&#039;&#039; beispielsweise einen Postgres-User (z.B. &#039;xyz00_rails&#039;, Passwort sei &#039;geheim&#039;) sowie eine Datenbank anlegen (z.B. &#039;xyz00_rails&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Datenbank in der Anwendung konfigurieren,&lt;br /&gt;
&lt;br /&gt;
 cd ~/doms/www.example.org/rails/config/&lt;br /&gt;
 nano database.yml&lt;br /&gt;
&lt;br /&gt;
mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 production:&lt;br /&gt;
    adapter: postgresql&lt;br /&gt;
    database: xyz00_rails&lt;br /&gt;
    host: localhost&lt;br /&gt;
    username: xyz00_rails&lt;br /&gt;
    password: geheim&lt;br /&gt;
&lt;br /&gt;
=== E-Mail, Dateiablage ===&lt;br /&gt;
&lt;br /&gt;
Beispielhafte Konfiguration:&lt;br /&gt;
&lt;br /&gt;
 default:&lt;br /&gt;
    email_delivery:&lt;br /&gt;
      delivery_method: :smtp&lt;br /&gt;
      smtp_settings:&lt;br /&gt;
        address: localhost&lt;br /&gt;
        port: 25&lt;br /&gt;
        domain: www.example.org&lt;br /&gt;
    attachments_storage_path: /home/doms/www.example.org/rails/attach&lt;br /&gt;
&lt;br /&gt;
=== Datenbankschema ===&lt;br /&gt;
&lt;br /&gt;
Initialisieren und migrieren der Datenbank (je nach Rails-Anwendung).&lt;br /&gt;
&lt;br /&gt;
 cd ~/doms/www.example.org/rails&lt;br /&gt;
 ...&lt;br /&gt;
 rake ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von FastCGI ===&lt;br /&gt;
&lt;br /&gt;
~/doms/www.example.org/htdocs/.htaccess&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule ^$ index.html [QSA]&lt;br /&gt;
 RewriteRule ^([^.]+)$ $1.html [QSA]&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f [OR]&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$&lt;br /&gt;
 RewriteRule ^(.*)$ /fastcgi-bin/dispatch.fcgi [QSA,L]&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Rails, die noch nicht auf der &amp;quot;rack&amp;quot; Middleware aufbauen (wie obiges zena Beispiel), laufen mit folgender ~/doms/www.example.org/fastcgi/dispatch.fcgi&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env ruby&lt;br /&gt;
 require &amp;quot;/home/doms/www.example.org/rails/config/environment&amp;quot; &lt;br /&gt;
 require &#039;fcgi_handler&#039;&lt;br /&gt;
 RailsFCGIHandler.process!&lt;br /&gt;
&lt;br /&gt;
Für aktuelle Versionen von Rails, die auf &amp;quot;rack&amp;quot; aufbauen, siehe https://github.com/dre3k/rails3_fcgi, ~/doms/www.example.org/fastcgi/dispatch.fcgi&lt;br /&gt;
  #!/usr/bin/env ruby&lt;br /&gt;
 &lt;br /&gt;
 require_relative &#039;../config/environment&#039;&lt;br /&gt;
 &lt;br /&gt;
 class Rack::PathInfoRewriter&lt;br /&gt;
   def initialize(app)&lt;br /&gt;
     @app = app&lt;br /&gt;
   end&lt;br /&gt;
 &lt;br /&gt;
   def call(env)&lt;br /&gt;
     env.delete(&#039;SCRIPT_NAME&#039;)&lt;br /&gt;
     parts = env[&#039;REQUEST_URI&#039;].split(&#039;?&#039;)&lt;br /&gt;
     env[&#039;PATH_INFO&#039;] = parts[0]&lt;br /&gt;
     env[&#039;QUERY_STRING&#039;] = parts[1].to_s&lt;br /&gt;
     @app.call(env)&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Rack::Handler::FastCGI.run  Rack::PathInfoRewriter.new(HIER_APPLIKATIONSNAME_AUS_config/application.rb_EINTRAGEN::Application)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FastCGI-Skript ausführbar machen:&lt;br /&gt;
&lt;br /&gt;
 chmod 755 ~/doms/www.example.org/fastcgi/dispatch.fcgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Am Anfang von ~/doms/www.example.org/rails/config/environment.rb einfügen:&lt;br /&gt;
&lt;br /&gt;
 ENV[&#039;RAILS_ENV&#039;] ||= &#039;production&#039;&lt;br /&gt;
 ENV[&#039;GEM_PATH&#039;] ||= &#039;/home/pacs/xyz00/users/meinuser/.gem/ruby/1.8:/var/lib/gems/1.8&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Applikation ins Webroot einbinden:&lt;br /&gt;
&lt;br /&gt;
 cd ~/doms/www.example.org&lt;br /&gt;
 # ggf. vorhandene Dateien sichern (oder nach ~/doms/www.example.org/rails/public kopieren),&lt;br /&gt;
 mv htdocs htdocs.old&lt;br /&gt;
 # und das entsprechende public/ Verzeichnis der Rails-Anwendung im Webroot verlinken.&lt;br /&gt;
 # Standardmäsig /home/doms/www.example.org/rails/public,&lt;br /&gt;
 # bei multi-site Anwendungen wie zena aber z.B. /home/doms/www.example.org/rails/site/www.example.org/public&lt;br /&gt;
 ln -s /home/doms/www.example.org/rails/public htdocs&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von SSL ===&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisse ~/doms/www.example.org/fastcgi-ssl/ und ~/doms/www.example.org/htdocs-ssl/ werden analog zu bzw. anstelle von fastcgi und htdocs gefüllt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
	<entry>
		<id>https://wiki.hostsharing.net/index.php?title=RubyOnRails&amp;diff=3607</id>
		<title>RubyOnRails</title>
		<link rel="alternate" type="text/html" href="https://wiki.hostsharing.net/index.php?title=RubyOnRails&amp;diff=3607"/>
		<updated>2013-07-08T12:08:45Z</updated>

		<summary type="html">&lt;p&gt;Edv38: fastcgi-Pfad in .htaccess Beispiel aktualisiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bestes Ruby on Rails Hosting bei Hostsharing ==&lt;br /&gt;
&lt;br /&gt;
Rubyanwendungen laufen (wie alle Anwendungen bei Hostsharing) als Prozesse des jeweiligen Benutzersaccounts. Probleme mit Dateirechten und Sicherheitsrisiken, wie sie sonst bei der Ausführung durch den Webserver auftreten, sind so von vorne herein ausgeschlossen.&lt;br /&gt;
&lt;br /&gt;
Standardmäßig erfolgt der Aufruf von Ruby Anwendungen durch den Apache Webserver über die FastCGI Schnittstelle. Dabei wird die Ruby Application Server Instanz des Users nach einem Aufruf noch für einige Zeit bereit gehalten, um sofort zur Bearbeitung von weiteren noch nicht gecacheten, oder gar nicht cachebaren, Anfragen zur Verfügung zu stehen.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb von noch anspruchsvolleren Anwendungen haben wir auch Tools wie haproxy, varnish, nginx etc. installiert. Auf Anfrage können wir auch mod_passenger oder mongrel installieren. Anwender, die damit auf unserer leistungsfähigen Infrastruktur (managed Plattform) z.B. einen Webserver Cluster mit load-balancing realisieren möchten, brauchen bei uns dafür nur eigene Daemons zu buchen, können dies aber auch (für größere Projekte) mit einer beliebigen Anzahl ganzer Server realisieren.&lt;br /&gt;
&lt;br /&gt;
== Einrichtung ohne zusätzliche Daemons (ein Application Server) ==&lt;br /&gt;
&lt;br /&gt;
=== Vorbereitungen ===&lt;br /&gt;
&lt;br /&gt;
Einige Einstellungen für den Paketuser.&lt;br /&gt;
&lt;br /&gt;
~/.gemrc&lt;br /&gt;
 install: --no-rdoc --no-ri&lt;br /&gt;
 update:  --no-rdoc --no-ri&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
~/.bashrc&lt;br /&gt;
 alias gem=&amp;quot;nice -n19 gem&amp;quot;&lt;br /&gt;
&lt;br /&gt;
~/.profile&lt;br /&gt;
 source &amp;quot;$HOME/.bashrc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Ruby ===&lt;br /&gt;
&lt;br /&gt;
==== Vorinstalliert ====&lt;br /&gt;
&lt;br /&gt;
Soll nur die zentral installierte Ruby Version 1.8 verwendet werden, ergänzt man man in ~/.profile:&lt;br /&gt;
 # enable user&#039;s own ruby installations, keeping all stuff below $HOME/.gem&lt;br /&gt;
 export PATH=&amp;quot;$HOME/bin:$HOME/.gem/ruby/1.8/bin:$PATH&amp;quot;&lt;br /&gt;
 export GEM_PATH=&amp;quot;$HOME/.gem/ruby/1.8:$( gem env gempath )&amp;quot;&lt;br /&gt;
 export GEM_HOME=&amp;quot;$HOME/.gem/ruby/1.8&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Disabled for now, because using system libs caused undefined method error.&lt;br /&gt;
 #export RUBYLIB=&amp;quot;$HOME/.gem/ruby/1.8/lib:/usr/local/lib/site_ruby/1.8:/usr/lib/ruby/1.8&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # avoid to forget that extra parameter: ruby -rubygems prog_that_uses_gems&lt;br /&gt;
 export RUBYOPT=rubygems&lt;br /&gt;
 &lt;br /&gt;
 export RAILS_ENV=production&lt;br /&gt;
&lt;br /&gt;
==== Eigene Installation ====&lt;br /&gt;
&lt;br /&gt;
Um eine andere als die vorinstallierte Ruby Version zu verwenden, installiert man zunächst den Ruby Versions Manager (rvm),&lt;br /&gt;
 curl -L https://get.rvm.io | bash -s stable&lt;br /&gt;
 source ~/.rvm/scripts/rvm&lt;br /&gt;
 rvm notes&lt;br /&gt;
 rvm requirements&lt;br /&gt;
 rvm pkg install openssl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
und lässt dann die gewünschte Ruby Version installieren.&lt;br /&gt;
 rvm install x.y.z&lt;br /&gt;
&lt;br /&gt;
RVM passt die Umgebungsvariablen automatisch an die ausgewählt Version an. Die Version wählt man global per&lt;br /&gt;
 rvm use x.y.z --default&lt;br /&gt;
oder nur für ein spezielles Verzeichnis:&lt;br /&gt;
 cd ~/verzeichnis/mit/ruby-x.y.z-Anwendung&lt;br /&gt;
 rvm use x.y.z-p??? --rvmrc&lt;br /&gt;
&lt;br /&gt;
Zur Verwaltung von gems installiert man noch rubygems.&lt;br /&gt;
 rvm rubygems current&lt;br /&gt;
&lt;br /&gt;
=== Rails ===&lt;br /&gt;
&lt;br /&gt;
Falls man die Ruby-Umgebung gerade erst eingerichtet hat, ohne sich zwischenzeitlich abzumelden, muß man zunächst die Umgebung manuell laden.&lt;br /&gt;
 source ~/.profile&lt;br /&gt;
&lt;br /&gt;
Nun kann Rails per &amp;quot;gem install rails&amp;quot; installiert werden (inklusive Abhängigkeiten).&lt;br /&gt;
Um spezielle versionen zu installieren kann man den gem Befehl mit &amp;quot;-v=x.y.z&amp;quot; ergänzen.&lt;br /&gt;
&lt;br /&gt;
Zum Testen hier ein Beispiel das eine Content und Daten Management Anwendung installiert (http://zenadmin.org) und mit einer sqlite Datenbankdatei eingerichtet:&lt;br /&gt;
 gem install rails -v=2.3.11&lt;br /&gt;
 gem install i18n sexp_processor rmagick sqlite3 zena&lt;br /&gt;
 zena new ~/doms/www.example.org/rails      # Zena Rails-Anwendung anlegen.&lt;br /&gt;
 cd ~/doms/www.example.org/rails&lt;br /&gt;
 rake db:create        # Datenbank anlegen.&lt;br /&gt;
 zena migrate          # Datenbank Tabellen einrichten.&lt;br /&gt;
 zena mksite HOST_LANG=de RAILS_ENV=production PASSWORD=geheim HOST=www.example.org # Webseite anlegen.&lt;br /&gt;
&lt;br /&gt;
=== Rails-Anwendung ===&lt;br /&gt;
&lt;br /&gt;
Seine eigene Rails-Anwendung kopiert man z.B. nach ~/doms/www.example.org/rails, oder erstellt dort eine Neue (rails ~/doms/www.example.org/rails, ...).&lt;br /&gt;
&lt;br /&gt;
=== Datenbank ===&lt;br /&gt;
&lt;br /&gt;
Mit &#039;&#039;hsadmin&#039;&#039; beispielsweise einen Postgres-User (z.B. &#039;xyz00_rails&#039;, Passwort sei &#039;geheim&#039;) sowie eine Datenbank anlegen (z.B. &#039;xyz00_rails&#039;.&lt;br /&gt;
&lt;br /&gt;
Die Datenbank in der Anwendung konfigurieren,&lt;br /&gt;
&lt;br /&gt;
 cd ~/doms/www.example.org/rails/config/&lt;br /&gt;
 nano database.yml&lt;br /&gt;
&lt;br /&gt;
mit folgendem Inhalt:&lt;br /&gt;
&lt;br /&gt;
 production:&lt;br /&gt;
    adapter: postgresql&lt;br /&gt;
    database: xyz00_rails&lt;br /&gt;
    host: localhost&lt;br /&gt;
    username: xyz00_rails&lt;br /&gt;
    password: geheim&lt;br /&gt;
&lt;br /&gt;
=== E-Mail, Dateiablage ===&lt;br /&gt;
&lt;br /&gt;
Beispielhafte Konfiguration:&lt;br /&gt;
&lt;br /&gt;
 default:&lt;br /&gt;
    email_delivery:&lt;br /&gt;
      delivery_method: :smtp&lt;br /&gt;
      smtp_settings:&lt;br /&gt;
        address: localhost&lt;br /&gt;
        port: 25&lt;br /&gt;
        domain: www.example.org&lt;br /&gt;
    attachments_storage_path: /home/doms/www.example.org/rails/attach&lt;br /&gt;
&lt;br /&gt;
=== Datenbankschema ===&lt;br /&gt;
&lt;br /&gt;
Initialisieren und migrieren der Datenbank (je nach Rails-Anwendung).&lt;br /&gt;
&lt;br /&gt;
 cd ~/doms/www.example.org/rails&lt;br /&gt;
 ...&lt;br /&gt;
 rake ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von FastCGI ===&lt;br /&gt;
&lt;br /&gt;
~/doms/www.example.org/htdocs/.htaccess&lt;br /&gt;
&lt;br /&gt;
 RewriteEngine On&lt;br /&gt;
 RewriteRule ^$ index.html [QSA]&lt;br /&gt;
 RewriteRule ^([^.]+)$ $1.html [QSA]&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} !-f [OR]&lt;br /&gt;
 RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$&lt;br /&gt;
 RewriteRule ^(.*)$ /fastcgi/dispatch.fcgi [QSA,L]&lt;br /&gt;
&lt;br /&gt;
Ältere Versionen von Rails, die noch nicht auf der &amp;quot;rack&amp;quot; Middleware aufbauen (wie obiges zena Beispiel), laufen mit folgender ~/doms/www.example.org/fastcgi/dispatch.fcgi&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env ruby&lt;br /&gt;
 require &amp;quot;/home/doms/www.example.org/rails/config/environment&amp;quot; &lt;br /&gt;
 require &#039;fcgi_handler&#039;&lt;br /&gt;
 RailsFCGIHandler.process!&lt;br /&gt;
&lt;br /&gt;
Für aktuelle Versionen von Rails, die auf &amp;quot;rack&amp;quot; aufbauen, siehe https://github.com/dre3k/rails3_fcgi, ~/doms/www.example.org/fastcgi/dispatch.fcgi&lt;br /&gt;
  #!/usr/bin/env ruby&lt;br /&gt;
 &lt;br /&gt;
 require_relative &#039;../config/environment&#039;&lt;br /&gt;
 &lt;br /&gt;
 class Rack::PathInfoRewriter&lt;br /&gt;
   def initialize(app)&lt;br /&gt;
     @app = app&lt;br /&gt;
   end&lt;br /&gt;
 &lt;br /&gt;
   def call(env)&lt;br /&gt;
     env.delete(&#039;SCRIPT_NAME&#039;)&lt;br /&gt;
     parts = env[&#039;REQUEST_URI&#039;].split(&#039;?&#039;)&lt;br /&gt;
     env[&#039;PATH_INFO&#039;] = parts[0]&lt;br /&gt;
     env[&#039;QUERY_STRING&#039;] = parts[1].to_s&lt;br /&gt;
     @app.call(env)&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
 &lt;br /&gt;
 Rack::Handler::FastCGI.run  Rack::PathInfoRewriter.new(HIER_APPLIKATIONSNAME_AUS_config/application.rb_EINTRAGEN::Application)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FastCGI-Skript ausführbar machen:&lt;br /&gt;
&lt;br /&gt;
 chmod 755 ~/doms/www.example.org/fastcgi/dispatch.fcgi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Am Anfang von ~/doms/www.example.org/rails/config/environment.rb einfügen:&lt;br /&gt;
&lt;br /&gt;
 ENV[&#039;RAILS_ENV&#039;] ||= &#039;production&#039;&lt;br /&gt;
 ENV[&#039;GEM_PATH&#039;] ||= &#039;/home/pacs/xyz00/users/meinuser/.gem/ruby/1.8:/var/lib/gems/1.8&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Applikation ins Webroot einbinden:&lt;br /&gt;
&lt;br /&gt;
 cd ~/doms/www.example.org&lt;br /&gt;
 # ggf. vorhandene Dateien sichern (oder nach ~/doms/www.example.org/rails/public kopieren),&lt;br /&gt;
 mv htdocs htdocs.old&lt;br /&gt;
 # und das entsprechende public/ Verzeichnis der Rails-Anwendung im Webroot verlinken.&lt;br /&gt;
 # Standardmäsig /home/doms/www.example.org/rails/public,&lt;br /&gt;
 # bei multi-site Anwendungen wie zena aber z.B. /home/doms/www.example.org/rails/site/www.example.org/public&lt;br /&gt;
 ln -s /home/doms/www.example.org/rails/public htdocs&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von SSL ===&lt;br /&gt;
&lt;br /&gt;
Die Verzeichnisse ~/doms/www.example.org/fastcgi-ssl/ und ~/doms/www.example.org/htdocs-ssl/ werden analog zu bzw. anstelle von fastcgi und htdocs gefüllt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HSDoku]]&lt;br /&gt;
[[Kategorie:Installationsanleitungen]]&lt;br /&gt;
[[Kategorie:Software]]&lt;br /&gt;
[[Kategorie:Glossar]]&lt;/div&gt;</summary>
		<author><name>Edv38</name></author>
	</entry>
</feed>