apache: Umlaute werden nicht richtig dargestellt

Wenn beim apache Webserver Text oder HTML Dateien mit falschen Umlauten angezeigt werden, liegt dies meist an den Zeichensatz Einstellungen.

Mittels der [http://httpd.apache.org/docs/2.2/mod/core.html#adddefaultcharset|AddDefaultCharset]-Direktive kann ein Zeichensatz angegeben werden, der für alle Dateien gilt; dieser verändert jedoch die Standard-Einstellung des Browsers und führt so manchmal zu verkorksten Umlauten. Deshalb sollte diese Einstellung Standardmässig auf "Off" sein.
Bei RHEL/CentOS ist diese in der Standardeinstellung jedoch auf UTF-8, wahrscheinlich um Kompatibilität mit alten Scripts wo der Zeichensatz nicht definiert ist zu wahren.
Ist dies so, sollte die Einstellung in der httpd.conf erstmal auf "Off" gestellt werden.

Werden die Umlaute immer noch nicht korrekt dargestellt, kann man auf Verzeichnisebene (über .htaccess files) mit der Direktive "AddDefaultCharset" experimentieren.
Ebenfalls kann man mit der [http://httpd.apache.org/docs/2.2/en/mod/mod_mime.html#addcharset|AddCharset]-Direktive dies für einzelne Dateitypen (z.B. .txt) Einstellen.

[stextbox id=“tip“ caption=“Tip: httpd.conf Einstellungen überschreiben“]In der Zentralen httpd.conf des apache Webservers sollte so wenig wie möglich verändert werden um spätere upgrades nicht kompliziert zu machen.

Deshalb legt man am besten eine weitere Datei mit dem Namen: httpd-override.conf an und bindet diese mit der Include-Direktive am Schluss der httpd.conf ein:

Include conf/httpd-override.conf

Darin kann man dann die Standard-Einstellungen jeweils „überschreiben“.[/stextbox]

Quellen:

putty: Zeichensatz auf UTF-8 ändern

Heutzutage sind viele Systeme auf den universellen Zeichensatz UTF-8 eingestellt, so auch Linux.
Wenn man sich nun aber über putty mit SSH verbindet, wird man feststellen, dass die Umlaute, z.B. nei vi/vim oder ls nicht richtig dargestellt werden.

Schuld ist hier eine Einstellung in putty, die noch auf ISO-8859-1 eingestellt ist.

Ändern kann man dies in den putty Einstellungen über change settings -> Translation, wo der Zeichensatz auf UTF-8 umgestellt werden sollte.
Am besten macht man dies gleich auch für den "Default Settings" Eintrag, so dass neue hinzugefügte hosts automatisch diese Einstellung benutzen.

Quellen

Boot-Laufwerk auf andere Festplatte verschieben

Die Partition der /boot Festplatte wird häufig relativ klein gemacht, häufig auch etwas "zu"-klein, denn neuere Linux Distributionen brauchen für die Kernel-History gerne mal über 200MB.

Doch was tun, wenn die /boot Partition zu klein wird? – Neue erstellen und das boot Laufwerk verschieben!

Hier wird beschrieben wies geht.

Wir gehen her davon aus, dass:
/dev/sda1 die alte und
/dev/sdb1 die neue Platte/Partition ist.
Die neue boot Partition sollte ausserdem bereits mit fdisk/cfdisk formatiert und mit dem "bootable" flag markiert sein.

Zur Sicherheit ändern wir erst nur das label der alten boot Platte (/boot wird in fstab meist nach label gemountet) und passen den fstab Eintrag ggf. an.
Erst wenn die neue Partition in Betrieb ist, kann die alte gelöscht werden:

tune2fs -L/oldboot /dev/sda1
# ggf. Eintrag in /etc/fstab anpassen

Nun erstellen wir das filesystem der neuen Partition:

mke2fs -j -L /boot /dev/sdb1

Als nächstes werden die beiden Partition gemountet und synchronisiert:

umount /boot
mkdir -pv /mnt/{sda1,sdb1}
mount /dev/sda1 /mnt/sda1
mount /dev/sdb1 /mnt/sdb1
rsync -ahv --numeric-ids --delete /mnt/sda1/ /mnt/sdb1/

Zum Schluss muss man noch mittels grub den boot Sektor auf die neue Disk schreiben:

grub
grub> device (hd1) /dev/sdb
device (hd1) /dev/sdb
grub> root (hd1,0)
root (hd1,0)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
setup (hd1)
 Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded
Done.
grub> quit

Nach einem Reboot sollte die neue boot Partition aktiv sein!

Ressourcen

LVM: Physical Volume vergössern

Physical Volumes haben sich als praktischen Standard für das Volume Management etabliert.
Doch irgendwann ist die zugrunde liegende Disk voll und muss vergrössert werden, was in virtuellen Umgebungen ganz einfach ist.

Für die nachfolgende Vergrösserung der Physical Volumes gibt es verschiedene Vorgehensweisen, welche hier beleuchtet werden.

Continue reading LVM: Physical Volume vergössern

Parameter im shell-script auswerten mit getopts

Es ist zwar durchaus möglich mit der "alt bewährten Methode" $1-$9 in shell scripts Kommandozeilen zu machen, allerdings ist das eher umständlich.

Mit der Funktion "getopts" hat jedoch zumindest die bash-shell ein sehr handliches Werzeug dafür eingebaut!

Dabei sieht die synatx so aus:

getopts Optionen Variable [Argumente]

Dabei werden alle Optionen die man Abfragen will mit einem ":" davor und dahinter hingeschrieben, z.B.:

getopts :a:

Möchte man schalter/flags verwenden, die keinen Wert haben, lässt man eingach den ":" hinter der Option weg:

getopts :a

Und ein praktisches Beispiel:

#!/bin/bash
# Demonstriert getopt
while getopts abc:D: opt
do
   case $opt in
       a) echo "Option a";;
       b) echo "Option b";;
       c) echo "Option c : ($OPTARG)";;
       D) echo "Option D : ($OPTARG)";;
   esac
done

Und so wird das dann aufgerufen:

user@host > ./test.sh -a
Option a
 
user@host > ./test.sh -b
Option b
 
user@host > ./test.sh -c
./agetopter: option requires an argument -- c
 
user@host > ./test.sh -c Hallo
Option c : (Hallo)

Quellen

getopt manpage
getopts – Kommandozeilenoptionen auswerten

LVM: Physical Volume entfernen

Manchmal merkt man, dass man eine Disk „zu viel“ in der VG hat und diese anderweitig verwenden möchte.

Mittels pvmove kann man die Daten von einer Disk (physical volume) auf andere in der gleichen volume group (VG) verschieben, danach kann man mittels vgreduce die Disk aus der VG entfernen und schliesslich mit pvremove das physical volume komplett entfernen.

Das ganze sieht so aus:

pvmove /dev/sdX
vgreduce <volume_group> /dev/sdX
pvremove /dev/sdX

Achtung: Möchte man danach die Festplatte im laufenden Betrieb „physisch“ aus dem System entfernen, muss man vorher ebenfalls die System-Referenzen entfernen!

Gewaltsamer Reset

In gewissen Situation muss man ein system mit einem hängenden Prozess neu starten, weiss aber, dass es mit dem normalen "reboot" Kommando beim herunterfahren hängen bleiben wird. Dies passiert z.B. besonders häufig bei Filesystem-Prozessen, die vom Kernel ausgeführt werden und sich somit nicht "killen" lassen, wie copy, rsync, nfs, usw.

Somit hilft dann nur noch der "Hard Reset", bei dem man jedoch physischen Zugang zum Server haben muss.

Hat man diesen gerade nicht gibt es noch eine andere Möglichkeit, das System sofort neu zu starten, ohne durch den Prozess des "herunterfahrens" zu gehen: Über das in den Linux-Kernel integrierte sysrq-Interface.

Dies schaltet man zuerst mittels:

echo s > /proc/sysrq-trigger

an und löst dann den "brutalen" reset über:

echo b > /proc/sysrq-trigger

aus.

Quellen:

c’t: [http://www.heise.de/ct/hotline/Gewaltsamer-Reset-unter-Linux-321064.html|Gewaltsamer Reset unter Linux]

ESX: Keine Netzwerkverbindung bei einem ESX Server innerhalb einer VM

In einem VMware ESX System kann man auch ein ESX innerhalb einer VM ertsellen, was zum testen sehr gut sein kann. 😉

Man wird aber merken, dass die VMs in der "nested VM", keine Netzwerk-Verbindung haben.
Dieses kommt daher, weil beim ESX Standardmässig der sog. "Promiscuous Mode" beim vSwitch nicht aktiviert ist.

Am besten legt man deshalb ein neues Netzwerk (Portgruppe oder vSwitch) an aktiviert dort den Promiscuous Mode und Verbindet das Netzwerk mit der "ESX VM".

Weitere Informationen dazu in der vcritical.com: [http://www.vcritical.com/2011/07/vmware-vsphere-can-virtualize-itself/|VMware vSphere can virtualize itself + 64-bit nested guests]

DVDFab startet nicht

Bei Windows XP SP3 kann es vorkommen, dass die Software "DVDFab" nicht mehr startet und stattdessen einfach im Hintergrund des Tankmanagers bleibt.

Der Grund liegt am Treiber gewisser Grafikkarten. Reparieren lässt sich dies mit dem folgenden Registry-Fix:

[HKEY_LOCAL_MACHINESOFTWAREDVDFab]
"FabPlayDll"=dword:00000001

Ressourcen

DVDFab Forum: [http://forum.dvdfab.com/showthread.php?t=13199&page=3|DVDFab won’t open on XP SP3]