Kategoriearchiv 'Apache'
Markus am 18.01.08 um 4:06 pm Uhr

Folks searching for the /forum

Apache

Recently I’ve found out, that almost every day there are folks searching for a link to www.gimme-th.at/forum. But - unfortunately - there’s no forum at all (yet). In order to bring them back on the right way, I created this RedirectMatch in the apache-config-file

RedirectMatch /forum$ /blog/

By now, they are leaded to the blog. I hope, they have more fun there, than being in the nirvana…

Markus am 12.07.07 um 1:40 pm Uhr

Endlich eine richtige Domain

Apache, Config

Nachdem ich bis jetzt “nur” einen kostenfreien dyndns-account hatte, um meine Serverfarm per domain erreichbar zu halten, habe ich mich jetzt entschlossen eine echte tld-Domain zu ordern. Ich bin also stolzer Besitzer der Domain www.gimme-th.at! Das ganze läuft immer noch mittels Updates von dynamischen IPs. Aber über den Provider selfhost.
Das hatte natürlich zur Folge, dass ich den Apachen umkonfigurieren mußte. Zum einen sollte die alte Domain natürlich nach wie vor verfügbar sein. Aber durch eine Umleitung auf die neue Domain. Der Apache bietet dazu eine ganz wunderbare Anweisung, um diese Umleitung durchzuführen:

Redirect permanent

Damit werden alle Anforderungen an die alte Domain auf die neue umgesetzt. Das ganze sieht jetzt folgendermaßen aus:

< VirtualHost * >
ServerAdmin mrre [at] gimme-th.at
ServerName lstr8.dynalias.com
Redirect permanent / http:// www.gimme-th.at/
< / Virtualhost>

PS: In dem obigen Ausschnitt befinden sich zusätzliche Leerzeichen, um eine Umformatierung durch Wordpress zu verhindern.

Keywords: Apache, Redirect, auf andere Domain umleiten

Markus am 04.03.07 um 11:18 pm Uhr

sudo, oder: soll’s doch ein anderer machen

Apache, Server

Nachdem ich ja das passende cgi-script geschrieben habe, um sämtliche Rechner in meiner Wohnung über das Internet starten zu können, sollte jetzt noch eins her, um die entsprechenden Rechner auch wieder runterfahren zu können. Das hat sich allerdings als deutlich schwerer dargestellt, als gedacht. Zum Runterfahren braucht es bekanntlich besondere Rechte. Also habe ich mir gedacht, ich mache es über ssh und public keys.

Dazu habe ich auf den Servern, die heruntergefahren werden sollen einen dummy-user angelegt:

adduser shutdownuser –disabled-password –disabled-login

Für diesen User wurde anschließend ein ssh-key erzeugt:

su shutdownuser
ssh-keygen -t rsa

Den private-key habe ich dann auf den Webserver kopiert, da von dort aus das cgi-script den shutdown-prozess anstoßen soll. Auf den herunterzufahrenden Rechnern war zuerst dem shutdownuser die Berechtigung für’s herunterfahren einzuräumen. Und zwar mußte in der /etc/sudoers folgender Eintrag hinzugefügt werden:

shutdownuser   ALL = NOPASSWD /sbin/shutdown

Damit darf der shutdownuser von allen Rechnern aus den shutdown-Befehl ohne Eingabe eines Passwortes ausführen.

Der Befehl im cgi-script sieht jetzt so aus:

ssh -i private_key_ID_file shutdownuser@Server_xy sudo shutdown -h now

Damit wird der shutdown-Befehl über ssh an den entsprechenden Rechner geschickt, und zwar unter der Kennung des shutdownusers. Das private ID-File des Shutdown-users muß mit der Option -i angegeben werden. Wichtig dabei: der Dienst des Webservers sollte der Owner des ID-Files sein, damit er es öffnen kann. Somit funktioniert auch das shutdown von Servern über den Webserver.

Markus am 21.02.07 um 11:50 pm Uhr

WakeOnLan und kein Schlaf in Sicht

Apache

Heute war eigentlich bloss ein wenig Bash-Scripting angesetzt. Ziel sollte es sein, die CGI-Scripte in das CSS der Wörterpresse einzubinden. Das hat aber - mangels HTML und CSS und überhaupt-Kenntnissen nicht geklappt. Naja, habe mich dann entschieden dort nicht weitere Zeit zu investieren. Das einzige öffentliche CGI-Script zeigt also schwarze Schrift auf weißem Grund ohne das zugehörige bunte Drumherum. :-(

Was aber eigentlich spannend war, das sind die Scripte, die passwort-geschützt sind.

Dort kann ich mir
1. das access-log der Wörterpresse
und
2. das error-log der Wörterpresse
anschauen.

Und 3. sämtliche Computer in meinem home-office über das Internet ( mittels Bash-Script via WOL) starten. Das dürfte sich über kurz oder lang bestimmt mal als hilfreich erweisen.

Hier nun kurz zur Vorgehensweise:

a) die (eher schlecht, als recht dokumentierten) Scripte zum Auslesen der Log-Files

#!/bin/bash
echo “Content-type: text/html”
echo -e “\n\n”
echo “< html>< body>”
echo “< b>Logfile des Apachen von” $(date +’%a %b %d’) “< /b>< /br>”
cat /var/log/apache2/access.log | grep “$(date ‘+%d/%b/%Y’)” | while read; do echo $REPLY “< /br>“; done
echo “< /body>< /html>“

Zur Beschreibung:
1. die zuständige bash deklarieren
2. das Logfile ausgeben und greppen, anschließend zeilenweise mit einem html-Zeilenumbruch versehen
Dieser grep-Befehl macht folgendes: Er sucht nach dem aktuellen Datum in der Form: dd/Mon/YYYY. Das Format muss dazu in >’< eingeschlossen werden (Übergabe der Parameter). Der Befehl date in $(), damit er bearbeitet wird. Und das gesamte Konstrukt in >“<, damit ein String draus wird.
b) die Schritte bis zum funktionierenden WOL

  1. Im Bios WOL aktivieren
  2. mit apt-get install ethtool wakeonlan die notwendigen Programme installieren
  3. Als shutdown-Script die Wakeonlan-Funktionalität jedes mal neu sicherstellen

#! /bin/sh
test -f /usr/sbin/ethtool || exit 0

. / lib/ lsb/ init-functions

log_begin_msg “Aktiviere Wake-On-LAN auf eth0…”
ethtool -s eth0 wol g
log_end_msg $?

Dieses shutdown-script in /etc/init.d unterbringen und in das Runlevel 2 /etc/rc2.d soft-verlinken
Dort als shutdown-script markieren: K02aktiviere_wol
Das K heißt, dass das script beim shutdown als zweites ausgeführt wird.
Anschließend ein cgi-script erstellen und verlinken

#!/bin/bash
echo “Content-type: text/html”
echo -e “\n\n”
echo “< html>”
echo “< body>“wakeonlan 00:13:…

echo “< /br> Maschine Belenus will be started. Have some patience…< /br>”
echo “< /body>”
echo “< /html>“

Und: es geht sogar! Einziger Nachteil. Ein mehrfaches Klicken auf den Link führt dazu, dass der Computer nach dem shutdown sofort wieder hochfährt. Scheinbar irren die Magic-Packets noch einige Zeit im LAN rum…

Markus am 19.02.07 um 5:18 pm Uhr

Virtual hosts

Apache

Der Apache ist ja ein sehr fähiger Indianer. Er kann mehrere Domains bedienen. Nur, wie bringt man ihm das bei?
Dafür gibt es das Config-File, in welchem man die Virtual Hosts definieren kann. Bei mir liegt das hier:

/etc/apache2/sites-available/default

Standardmäßig gehen sämtliche Anfragen auf diesen blog. Bei einem passenden Vorsatz wird auf ein alternatives Root-Verzeichnis umgelenkt. Dazu habe ich einfach den einen Eintrag in der default-Datei kopiert und nur zwei Zeilen geändert:

DocumentRoot /var/www/Directory/
Servername www.Directory.lstr8.dynalias.com

Und das war’s dann auch schon.
Das endgültige RootDirectory für den blog konnte ich nicht so einfach ändern, da Wordpress scheinbar schon recht genau weiß, dass alles in dem Verzeichnis /var/www/blog zu finden ist. Also hängt es/sie immer den /blog/ dazwischen, und dann findet sich der Apache nicht mehr zurecht. Nagut. Für’s erste geht es ja auch mit der Umleitung auf http://…/blog, oder?

Markus am 18.02.07 um 11:29 pm Uhr

Neue Platte neues Glück

Apache, Config, Server

Also, jetzt habe ich mich nun doch durchgerungen und eine neue Platte in den Server eingebaut. Das ganze hat gleich zwei Vorteile:

  1. Die defekte Platte liegt jetzt in der Schublade
  2. VIEL mehr Speicherplatz.

Soweit sogut. Aber, es mußte ja noch eine Neuinstallation des Systems her. Diesmal über eine reine Netinstall-CD. Das geht besser, als gedacht. Ab sofort ist das die Methode der Wahl. Bei der ganzen Installation habe ich auch gleich noch festgestellt, dass ich sehr vergesslich bin. Viele von den Arbeitsschritten, die kürzlich zu einem funktionierenden System führten waren bereits wieder in /dev/null verschwunden. In Zukunft wird also dieser Blog etwas mehr als ein Dokumentationssystem für meine ersten Linux-Schritte Verwendung finden. Dann ist es einfacher, das alles wiederzufinden.

Der erste Punkt ist, dass ich für den Server eine feste IP in seinem Privatnetz haben wollte. Aber die Maschine hat sich die IP immer vom DHCP-Server geholt und wollte sich davon auch nicht abbringen lassen. Zum Glück gibt es ja die zuständige Config-Datei:

/etc/network/interfaces

Diese kann man dann mit den erforderlichen Zeilen füllen:

iface eth1 inet static
address 192.168.178.10
netmask 255.255.255.0
network 192.168.178.0
broadcast 192.168.178.255
gateway 192.168.178.1

Dann noch auf dem DHCP-Server eingestellt, dass der Adressbereich von 1…100 nicht vergeben werden soll. Und schon hat der kleine (s)eine feste IP-Adresse.

Außerdem wurde von dem Standard-Web-Verzeichnis /var/www/apache2-default zu /var/www/blog gewechselt. Das kann im File:

/etc/apache2/sites-available/default

eingestellt werden. Und zwar indem dort eine Zeile modifiziert wird:

RedirectMatch ^/$ /blog/

Die Frage die für morgen offen bleibt ist: Virtual Hosts?? Wie geht denn das?