Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:webhosting:container_administration [2016/08/17 19:35] – [E-Mail-versand ermöglichen] jankow@datenkollektiv.net | public:webhosting:container_administration [2019/11/28 17:25] (aktuell) – [Zugangsdaten] rasch | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Container basiertes Webhosting - unser Container-Hafen ====== | ====== Container basiertes Webhosting - unser Container-Hafen ====== | ||
- | Mit dem " | + | * [[container_admin_alt|Ältere Dokumentation |
- | | + | Mit dem " |
+ | |||
+ | Gleichzeitig sorgen wir im Hintergrund für die nötigen Betriebssystem-Updates. Sie müssen sich als Nutzer_in also nur um Ihre Web-Applikationen kümmern - sofern Sie nicht auch dort z.B. das vorinstallierte Wordpress nutzen. Auch dort kümmern wir uns um die Updates. | ||
+ | |||
+ | Dies ist sozusagen ein **Mittelweg** zwischen **" | ||
+ | | ||
* Bei hoher Sicherheit haben die einzelnen User große individuelle Konfigurationsmöglichkeiten | * Bei hoher Sicherheit haben die einzelnen User große individuelle Konfigurationsmöglichkeiten | ||
+ | * Wir kümmern uns um Sicherheitsupdates | ||
+ | * Ein tägliches Backup der Daten erfolgt automatisch | ||
Wenn Sie sich für Container-basiertes Webhosting interessieren, | Wenn Sie sich für Container-basiertes Webhosting interessieren, | ||
Zeile 10: | Zeile 17: | ||
Als Zugangsdaten sind notwendig: | Als Zugangsdaten sind notwendig: | ||
- | | + | * ein Username für den Container (in der Regel "webcXXX") |
- | | + | * ein Passwort, |
- | * ein Username für den " | + | * URL, unter der der Container verwaltet wird - üblicherweise |
- | * ein Username für die Mysql-Datenbanken (in der Regel der Domain-Name, in dem " | + | * der Username und ein Passwort |
- | * ein Passwort | + | |
- | + | ||
- | Für einige Zwecke (sFTP, direkter SSH-Zugriff ist ein privater Schlüssel notwendig. Der zugehörige öffentliche Schlüssel muss auf den Servern entsprechend konfiguriert werden. Zum Einrichten bitte an den [[support@datenkollektiv.net|Support]] wenden. | + | |
===== Zugang zum Container ===== | ===== Zugang zum Container ===== | ||
- | Es gibt mehrere Möglichkeiten des Zugangs zum Container. Datei-Up- und Download lässt sich am einfachsten über Webdav | + | Es gibt mehrere Möglichkeiten des Zugangs zum Container. Datei-Up- und Download lässt sich am einfachsten über sftp vornehmen. |
- | ==== ssh - Secure-Shell ==== | + | Alle wichtigen Informationen dazu gibt es in der initialen E-Mail nach der Erstellung eines neuen Containers. |
- | Der Container selbst ist nicht direkt von außen zu erreichen, sondern nur über einen weiteren Server - unseren Containerhafen. Damit das klappt, benötigen wir einen " | + | ===== sftp ===== |
- | <WRAP center round important 60%> | + | Der SFTP-Zugang ist: |
- | Damit das Login klappt, muss "ssh Agent Forwarding" | + | |
- | < | + | |
- | host * | + | |
- | ForwardAgent yes | + | |
- | </ | + | |
- | </ | + | |
+ | USERNAME@USERNAME.hosting.dknuser.de | ||
- | **Direkter Zugriff auf den Container** | + | ==== Dateirechte ==== |
- | Falls entsprechend konfiguriert, kann der Container direkt mit | + | Standardmäßig haben alle Dateien, die per sftp hochgeladen werden folgende Rechte: |
+ | * Benutzer: | ||
+ | * Gruppe: www-data | ||
+ | Wenn der Webserver selbst auch in die Verzeichnisse schreiben können soll oder Dateien ändern soll (z.B. nötig, wenn ein CMS wie wordpress Dateien von einem Upload speichern soll, Plugins installieren können soll oder ein Update aus der Weboberfläche heraus passieren soll, müssen die Verzeichnisse und Dateien auch für die Gruppe '' | ||
- | ssh -A username@container.datenkollektiv.net | + | Das lässt sich mit einem |
+ | chmod 664 (für Dateien) | ||
+ | chmod 775 (für Verzeichnisse) | ||
+ | mit einem sftp-client erledigen. | ||
- | erreicht werden. | + | Wenn es damit Schwierigkeiten gibt, bitte an den Support wenden. |
- | <WRAP center round important 60%> | + | ===== Datenbanken konfigurieren ===== |
- | Bitte beachten: Über diesen Weg ist nur ssh möglich. Kopieren ist weder über sFTP noch über scp oder sshfs möglich. Dies liegt an der Konfiguration auf unseren Servern, durch die der Zugang nur über einen " | + | |
- | </ | + | |
- | **Zugriff über einen SSH-Tunnel** | + | Die Datenbanken sind unter folgender URL zu erreichen: |
- | Um auch scp oder sFTP zu ermöglichen, | + | * https:// |
- | ssh -L 2222:test-001:22 username@container.datenkollektiv.net | + | Das Login ist zweistufig. Aus Sicherheitsgründen ist ein ht-Passwort vorgeschaltet, |
- | Der Server ist dann unter '' | + | Login mit Datenbank-Username und Passwort. Dort können beliebige Datenbanken erstellt werden, deren Namen mit dem Usernamen gefolgt von einem " |
+ | USERNAME_wordpress | ||
- | scp -P 2222 file user@localhost: | + | Als Datenbank-Server muss in den eigenen Instanzen dann folgendes eingetragen werden: |
- | ==== Webdav ==== | + | sql0.datenkollektiv.net |
- | Ausgewählte Verzeichnisse des Containers sind über Webdav zu erreichen. Die Webdav-Adresse lautet dabei in der Regel: | + | ===== Wordpress ===== |
- | https:// | + | In den Containern ist evtl. eine Wordpress-Instanz vorinstalliert. Diese Wordpress-Instanz kommt aus den Debian-Repositories. Es ist immer etwas älter als das aktuelle Release. Dafür ist es gut ins System integriert - und bekommt über Debian Sicherheitsupdates - allerdings nicht immer sofort. |
- | Der Zugriff erfolgt dabei auf das Verzeichnis | + | Das Daten-Verzeichnis für diese Installation, |
- | <WRAP center round tip 60%> | + | ===== Eigenes Wordpress installieren ===== |
- | Achtung: Bei Webdav kann es Probleme mit Leerzeichen und Sonderzeichen in Dateinamen geben. Diese gilt es in jedem Fall zu vermeiden. Insbesondere Dateien mit Leerzeichen können nicht angelegt werden. Leider ist das bei einigen Dateimanagern die Standard-Einstellung ("Neue Datei" | + | |
- | </ | + | |
+ | Alternativ lässt sich aber auch leicht ein eigenes Worpress im Webroot installieren. Das SFTP-Verzeichnis ist dann ''/ | ||
- | Andere Verzeichnisse können über Symlinks erreicht werden. Per SSH-Zugriff können auf diese Weise beliebige Verzeichnisse per Webdav verfügbar gemacht werden. | + | Für diese Wordpress-Instanz ist dann entsprechend dieses Verzeichnis zuständig - und nicht das der systemweiten Installation (siehe oben), z.B.: |
+ | / | ||
- | ===== Dateien hochladen ===== | + | Bei einer selbst installierten Wordpress-Instanz im Webroot muss ggf. die Webserver-Konfigurtion angepasst werden, die sich unter |
+ | / | ||
+ | befindet. | ||
- | Am einfachsten funktioniert das per Webdav. Für alle Plattformen gibt es dazu Webdav-kompatible Dateibrowser. Unter Linux-Desktops funktionert das z.B. mit der Funktion "Mit Server verbinden" | + | Siehe auch unten: [[# |
- | Auf diese Weise können Dateien kopiert oder bearbeitete | + | Die Zeile |
+ | server_name webc08.hosting.dknuser.de; | ||
+ | muss an den tatsächlichen Seitennamen angepasst | ||
+ | server_name example.org; | ||
- | ===== Datenbanken konfigurieren ===== | + | Da der Webserver im Container hinter einem Webproxy liegt, muss ggf. in der Wordpress-Config |
+ | wp-config.php | ||
- | Die Datenbanken sind unter folgender URL zu erreichen: | + | folgendes vor der Zeile |
+ | require_once(ABSPATH . ' | ||
+ | hinzugefügt werden: | ||
- | https:// | + | < |
- | Login mit Datenbank-Username und Passwort. Dort können beliebige Datenbanken erstellt werden, deren Namen mit dem Usernamen gefolgt von einem " | + | /** |
- | example_org_wordpress | + | |
+ | **/ | ||
+ | if ($_SERVER[' | ||
+ | $_SERVER[' | ||
+ | |||
+ | if (isset($_SERVER[' | ||
+ | $_SERVER[' | ||
+ | } | ||
+ | </ | ||
+ | * vgl. auch: https://www.variantweb.net/ | ||
- | ===== Wordpress | + | Sinnvoll ist es auch Wordpress |
- | In den Containern ist eine Wordpress-Instanz vorinstalliert. Sollte diese noch nicht initialisiert sein, so kann das über einen SSH-Zugang erfolgen. Im Home-Verzeichnis findet sich eine README Datei, in denen die Befehle stehen, die ausgeführt werden müssen, um Datenbank und Wordpress Instanz zu konfigurieren. | + | define(' |
===== Eigene html-Seiten / Php-Skripte ===== | ===== Eigene html-Seiten / Php-Skripte ===== | ||
- | Der Webroot liegt unter '' | + | Der Webroot liegt unter ''/ |
- | ===== E-Mail-versand ermöglichen | + | ===== Webserver konfigurieren |
- | Wir erlauben per Default keinen unauthentifizierten E-Mail-Versand aus den Containern mit dem normalen Unix-Mail-Kommando. Erstens würde das bedeuten, dass falsch Konfigurierte Server schnell zu Spam-Schleudern würden | + | Fortgeschrittene User_innen können auch die Webserver-Konfiguration selbst verändern. Dazu sind Kenntnisse in der Konfiguration des Nginx-Webservers nötig. Außerdem muss beachtet werden, dass der Webserver hinter einem Webproxy liegt - und z.B. nicht auf alle Header-Variablen direkt zugegriffen |
- | Dafür | + | Der Basis-Webroot-Pfad für das Verzeichnis '' |
- | Zur Konfiguration von ssmtp siehe auch z.B.: https://wiki.archlinux.org/index.php/ | + | |
- | **Beispielkonfiguration:** | + | Um Änderungen am Webserver wirksam zu machen, muss dieser neu gestartet werden. Dazu bitte in der Datei |
+ | / | ||
+ | Die Werte entsprechend setzen: | ||
+ | reload=0 | ||
+ | restart=1 | ||
- | Account an den alle System E-Mails gehen sollen: youraccount@notraces.net | + | Nach einer Minute wird der Webserver automatisch neu gestartet (die Werte in der ngnix_reload.txt sind dann wieder zurück auf '' |
- | Account über den die E-Mails verschickt werden: youroutgoingmail@notraces.net (username/ | + | |
- | Mailserver, auf dem der Account existiert, über den die E-Mails verschickt werden: mail.datenkollektiv.net | + | |
- | Per Webdav die Datei ''/ | + | Beispiele: |
- | <code> | + | ==== Eigene Wordpress-Installation ==== |
- | # | + | <file text wordpress.conf> |
- | # Config file for sSMTP sendmail | + | ## http:// |
- | # | + | server { |
- | # The person who gets all mail for userids < 1000 | + | |
- | # Make this empty to disable rewriting. | + | |
- | root=youraccount@notraces.net | + | |
- | # The place where the mail goes. The actual machine name is required no | + | server_name example.org; |
- | # MX records are consulted. Commonly mailhosts are named mail.domain.com | + | |
- | mailhub=mail.datenkollektiv.net:587 | + | |
- | # Where will the mail seem to come from? | + | location |
- | # rewriteDomain=example.org | + | log_not_found |
+ | access_log | ||
+ | } | ||
- | # The full hostname (the container-default-hostname) | + | location |
- | hostname=www.example.org | + | allow all; |
+ | log_not_found | ||
+ | access_log | ||
+ | } | ||
- | # Use SSL/TLS before starting negotiation | + | location |
- | UseTLS=Yes | + | # This is cool because no php is touched for static content. |
- | UseSTARTTLS=Yes | + | # include the "? |
+ | try_files | ||
+ | } | ||
- | # Username/ | + | location ~ \.php$ { |
- | AuthUser=USERNAME | + | |
- | AuthPass=VERY-SECRET_PASSWORD | + | |
- | + | | |
- | # Are users allowed to set their own From: address? | + | |
- | # YES - Allow the user to specify their own From: address | + | |
- | # NO - Use the system generated From: address | + | |
- | FromLineOverride=NO | + | |
- | </code> | + | |
- | + | ||
- | Jetzt muss noch die Datei '' | + | |
- | + | ||
- | < | + | |
- | # sSMTP aliases | + | |
- | # | + | |
- | # Format: | + | |
- | # | + | |
- | # Example: root: | + | |
- | # where [:port] is an optional port number that defaults to 25. | + | |
- | + | ||
- | root: | + | |
- | www-data: | + | |
- | </ | + | |
- | + | ||
- | ===== Webserver konfigurieren ===== | + | |
- | Fortgeschrittene User_innen können über einen SSH-Zugriff auch die Webserver-Konfiguration selbst verändern. Dazu sind Kenntnisse in der Konfiguration des Nginx-Webservers nötig. Außerdem muss beachtet werden, dass der Webserver hinter einem Webproxy liegt - und z.B. nicht auf alle Header-Variablen direkt zugegriffen werden kann. Außerdem geschieht die Verbindung zum Webproxy grundsätzlich über Port 80 und http. Sämtliche Konfiguration von Zertifikaten geschieht auf dem Proxy-Server durch die Administratoren des datenkollektiv. | + | } |
- | Der Default-User hat die Rechte, die Dateien unter /etc/ | + | location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { |
+ | expires | ||
+ | log_not_found | ||
+ | } | ||
+ | } | ||
+ | </file> | ||
- | sudo service nginx restart | + | ==== Statische Seite unter /www/html/ ==== |
- | oder | + | |
- | sudo service nginx reload | + | |
- | den Webserver neu zu starten. |