gruppen:ag_server:ag-treffen:protokoll_2013_08

Protokolle Herbst 2013

Agenda:

28.10.13

  • Praktikum RNKS 1 nach Praktikum GRN umbenannt und eine Ebene höher geschoben
  • inaktive LV ins Archiv verschoben
  • seltsame Benutzerkonten gelöscht
  • Daniel ist Verantwortlicher für AG-Treff-Einladungen, sowie -Erinnerungen

04.11.13

etckeeper

Für die Versionierung der Konfigurationsdateien unter /etc haben wir etckeeper auf parrot und parrot6 installiert. Dazu wurde mit dem Befehl # etckeeper init ein git-repo im /etc angelegt und mit # etckeeper commit "ini" ein erstes Kommit angelegt. Künftig kann man Dateien mit # git reset --hard $DATEI auf eine frühere Revision zurücksetzen. Es gibt auch eine Seite mit deutschen Erklärungen.

Neues Mitglied :)

Daniel wurde auf parrot und parrot6 ein Posix-Konto eingerichtet. Er darf jetzt auch mitadministrieren. Lektion des Tages: Vorher prüfen, welche Gruppe mit sudo Befehle ausführen darf.

Link-Checker

Daniel und Randolf haben nach einem unter CentOS 6.4 funktionierenden Link-Checker gesucht. Dazu haben sie CPAN das Modul w3c::LinkChecker installiert

Apache auf Parrot6 einrichten

Hannes hat sich um die Einrichtung des httpd unter parrot6 gekümmert. Problem: Struktur der Konfigurationsdateien auf parrot folgt dem Debian-Schema, auf parrot6 soll es dem CentOS-Schema folgen. Deshalb: Konfiguration aus parrot „extrahieren“ und nach parrot6 übertragen.

Mit $ sed '/^#/d;/^$/d' /etc/httpd/conf/httpd.conf | less kann man sich in mit Kommentaren übersäten Konf-Dateien schnell ein Überblick verschaffen.

Merke: Tee mit Tatratee schmeckt gut und erhöht die Produktivität.

11.11.13

Apache auf Parrot6 einrichten

Die Konfiguration von Apache ist folgendermaßen strukturiert:

  • conf/httpd.conf Grundlegene Einstellungen/Einkompilierte Module
  • conf.d/0module.conf Nachladen der nachladbaren Module und deren Std-Einstellungen
  • conf.d/1vhosts.conf Einstellungen der namensbasierten virtual hosts.

PHP auf Parrot6 einrichten

PHP ist eng mit Apache verzahnt. Die /etc/php.ini haben wir zunächst nicht verändert. PHP kann mit Apache auf drei verschiedene Arten betrieben werden:

  1. als nachladbares Apache-Module (mod_php)
  2. als Skriptsprache über die CGI-Schnittstelle (mod_cgi)
  3. als Skriptsprache das FastCGI-Modul (mod_fcgid).

Auf parrot wurde die Variante mit FastCGI benutzt. Dies soll für parrot6 übernommen werden. Dazu installiert man das FastCGI-Modul (# yum install mod_fcgid). Unter /etc/httpd/conf.d erscheint eine neue Konfigurationsdatei von FastCGI für Apache. Diese kann gelöscht werden. Der Inhalt sollte dafür wie folgt aussehen:

LoadModule fcgid_module modules/mod_fcgid.so
        AddHandler fcgid-script fcg fcgi fpl php
        FCGIWrapper /var/www/cgi-bin/php .php
        FcgidIPCDir /var/run/mod_fcgid
        FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm

Die /var/www/cgi-bin/php muss dafür angelegt werden. Diese setzt einige Umgebungsveränderliche (dokumentiert auf http://www.fastcgi.com) und ruft exec php-cgi auf.

SuExec auf Parrot6 einrichten

SuExec sorgt dafür, dass Dateien nicht mit den Rechten des Webservers, sondern eines beliebig gewählten Benutzers ausgeführt werden. SuExec führt daneben einige weitere Sicherheitstests durch, wobei auch einer prüft, ob die ausführbaren Dateien unter /var/www liegen. Deshalb kann SuExec im Original nicht für in den Benutzerverzeichnissen liegende Dokumente (HTTP-Anfragen nach dem Muster http://server/~benutzer) nicht benutzt werden. Weitere Informationen unter Apache mit suexec auf HomeDir Basis

18.11.13

  • Daniel und Randolf haben den link-checker auf parrot6 installiert

Einrichten der DW-Farm

Informationen zu DW-Farmen, s. https://www.dokuwiki.org/farms

Dabei ergeben sich jedoch zwei Probleme:

  1. Farmtiere können nur als virtual hosts oder Unterverzeichnisse nach einem festen Schema angelegt werden –> Lösung: mod_rewrite
  2. DW-Farmen sind nicht für die Arbeit mit SuExec gedacht. –> Lösung: mod_rewrite mit Wrapper-Skript s.u

mod_rewrite mit Wrapper-Skript

Eine Rewrite-Regel soll jede Datei, die nicht lokal in den Farmtieren existiert auf das Wrapper-Skript umleiten. Dies WS setzt Umgebungsvariablen und benutzt die globalen PHP-Skripte mittels include.

25.11.13

RPM ohne Abhängigkeiten installieren

yum hat lynx unsinnigerweise immer mit dem Paket centos-indexhtml.x86_64 installiert. Um dem ein Ende zu bereiten, kann man das Paket auch mit yumdownloader lynx herunterladen und dann mit rpm --nodeps -i lynx-2.8.6-27.el6.x86_64.rpm installieren.

Probeweises Kopieren mit rsync

Franz und Hannes haben sich die Schalter von rsync(1) angesehen und probeweise den Inhalt von Franz' Benutzerverzeichnis von parrot auf parrot6 kopiert. Rsync soll für die Projektwiki-Migration benutzt werden.

Webinterface für den Linkchecker

Daniel und Randolf haben das Webinterface für den Linkchecker aufgesetzt. Hierzu wurden die Dateien für das Webinterface aus dem Ordner mit den Linkcheckersourcen in ein entsprechendes Webverzeichnis kopiert. Momentan ist der Linkchekcer über http://parrot6.informatik.tu-cottbus.de/~noackdan/lc/ erreichbar. Das Webinterface nutzt normalerweise ein CGI Skript, welches WSGI benötigt. WSGI hat sich nicht mit dem schon genutzten FCGI vertragen. Da beide im Grunde nur Python nutzen, haben wir einen Wraper gefunden, welcher WSGI-Skripte mit FCGI ausführen lässt. Dieser Wraper nennt sich flup. Wir haben die installation von flup als Python-Egg als am einfachsten empfunden, jedoch haben die nötigen Setuptools (mit easy_setup, etc.) für Python2.7 noch gefehlt. Die Setuptools ließen sich dann mithilfe einer ez_setup.py (unter anderem auch im flup-paket enthalten, aber auch im Internet auffindbar) installieren. Schließlich konnte flup installiert werden und mit einem kleinen Zusatz im ehemaligem WSGI-Skript (umbenannt zu .fcgi) ist das Webinterface jetzt auch ausführbar. Aufpassen muss man mit den rechten in public_html da Gruppenschreibrecht die Ausführung von Skripten verhindert. Einige Seiten lassen sich noch nich checken (BTU-Forum und Dokuwikies). Das liegt daran, das der Checker zuerst eine HEAD-Anfrage macht (oftmals in Standardkonfigurationen gesperrt) und danach auf GET zurückfällt (was eigentlich dann funktionieren sollt, aber ebenfalls mit einem 403 fehler quittiert wird).

02.12.13

Benutzerverzeichnisse von parrot nach parrot6 rsync(1)en

  • parrot6: /etc/ssh/sshd_config: PermitRootLogin auf yes gesetzt
  • parrot: scp /root/.ssh/id_???.pub nichtroot@parrot6:/tmp
  • parrot6: # cat /tmp/id_???.pub >> /root/.ssh/authorized_keys
  • parrot: # rsync -vau --progress /home/* parrot6:/home/

Umzug planen

  • Dokuwikis, die umziehen müssen:
    • projektwiki
    • clustering
    • rotta
    • fseb
    • fsimt
    • fskut
    • fsi
    • stura
  • conf['baseurl'] = 'http://parrot6.informatik.tu-cottbus.de';
  • mensa-Skript muss umziehen (crontab)
  • Trac muss umziehen (s. /home/manager)
  • .htaccess in den Ordnern überprüfen (z.B. wegen mod_rewrite)
  • /root umziehen (insbes. backup)
  • /etc/cron.* muss umziehen

09.12.13

  • BTU-Forum muss auch umziehen
  • parrot:
    # sed -ie'1aRewriteRule ^/autonomiX /projektwiki/projekte:projekte:start [R=permanent,L]' /etc/httpd/conf.d/rewrites.d/001-static.conf
  • Überlegungen zu DNS: studiy.tu-cottbus.de soll künftig auf parrot6 zeigen. Dementsprechend soll der VirtualHost auf parrot6 auch nach studiy zeigen. Getestet werden kann diese Konfiguration durch händisches Eintragen der Zeile 141.43.3.23 studiy.tu-cottbus.de in die eigene /etc/hosts.

16.12.13

Umziehen der Dokuwikis

Hannes und Franz bereiten den Umzug der Dokuwiki vor. Es muss sichergestellt werden, dass Apache als name based virtual-host auf die Adresse studiy.tu-cottbus.de hört. Dies geschieht mit den Zeilen

NameVirtualHost 141.43.3.23:80
<VirtualHost studiy.tu-cottbus.de:80>
	...
</VirtualHost>

Außerdem wurde eine 2redir.conf im Apache-Konfigurationsverzeichnis angelegt, in dem die gesamten Umleitungen hineingehören.

Weitere Hinweise zum Umzug im Artikel Server Update auf CentOS 6

gruppen/ag_server/ag-treffen/protokoll_2013_08.txt · Zuletzt geändert: 16.12.2013 19:41 von btu_wenzehan