Der Ventilsitzfräser für den Wasserhahn

Mein Wasserhahn am Waschbecken im Bad tropft.
Bald tropft er nicht mehr, ein kleines Rinnsal läuft aus ihm heraus.
Stärker zudrehen bringt auch nix mehr.
Dabei habe ich den Einsatz erst vor 6 Monaten gewechselt!

Die 6 Monate alte Syphonzange geholt und den Einsatz rausschrauben.
Der Dichtungsgummi zeigte eine kleine Wulst und der Finger fühlte im Hahn eine kleine Kerbe.

Irgendwo hatte ich dafür mal ein Werkzeug gesehen und meinte es hiesse Ventilsitzfräser.
Also in den Baumarkt, den Verkäufer beim Weglaufen festgehalten und gesagt: “Ich suche einen Ventilsitzfräser für einen 3/8 Wasserhahn.”
Komisch, jetzt wollte er gar nicht mehr weglaufen, er schmunzelte sogar. Nach dem dritten mal “HÄ?” und “Ventilsitzfräser” rief er jemand an, der das Wort auch nicht kannte …

Vollkommen verunsichert setze ich mich zu Hause an meinen PC und frage die allwissende Müllhalde Google nach einem Ventilsitzfräser.
Ok, mit dem Zusatz Wasserhahn sind es dann auch keine Fräser mehr für Verbrennungsmotorventile(die sehen so ähnlich aus), sondern genau das, was ich suchte.
Condrad Ventilsitzfräser
Für 11,95€!
Anmelden, kaufen, fertig!

Heute kam er dann.
Wasser abdrehen, Hahn raus schrauben, Fräser reinschrauben und unter Schmerzen das Sitz nachgefriemelt.
Kleiner Tip, Handtuch über den Griff, dann tuts auch nicht so in der Hand weh.

Wenn der Schmerz nachgelassen hat, schabe ich noch etwas weiter. Zumindest ist der Hahn wieder dicht, wenn man zudreht.

Ventilsitzfräser

ESX Fallstricke

Vor mir lag ein 19″ NoName Dualprozessor, 16GB Ram und 16x 1TB SATA Disks. Die richtige Machine um ESX 4 zu installieren.
Raidcontroller war ein Areca ARC-1160.
Also 2 Disks Raid 0 fürs System, 12 Disks Raid Level5 und 2 HotSpare.
CD Einlegen, ESX Setup starten und benutzerdefinierten Treiber laden.
Beim Auswählen des Datenträgers fürs VMFS auswählen … warum kann ich den 11 TB Datenträger nicht auswählen?
Schon nach wenigen Minuten die Antwort, ESX kann leider nur 2 TB Datenträger ansprechen … also nochmal die Raid’s neu einrichten.
5×3 Disks Raid 5 und 2 HotSpare, alle Disks ~1,9TB. Wieder die CD rein, Custom Treiber laden und erstmal alles auf das erste Raid installieren.
Installation macht und tut und … BUMS …
“Errno 1 Operation Not Permitted /mnt/sysimage/boot”
Also wieder Google befragt, dieses mal etwas länger bis ich http://communities.vmware.com/thread/272494 fand.
Nochmal den älteren Treiber herunterladen und wieder das Setup starten, custom Treiber laden …

Endlich läuft der ESX, also mal das VMFS Volume über die restlichen Raid’s erweitern. Mit 11 TB genug Platz um den Exchange mit allen Datenträgern zu schlucken.

Auf dem Exchange den VMWare Converter gestartet, Migration auf den ESX ausgewählt und … warum sieht der Converter den einen Datenträger mit 1,1 TB Grösse nicht?
Wieder Google befragen, aha, der Converter kann nur maximal 920GB große Disks lesen!
Datenträgerverwaltung aufgerufen und das Volume auf 820GB verkleinert, aber er wollte sie einfach nicht.
Na gut, man kann den Inhalt ja auch manuell im Nachhinein kopieren.

Irgendwann lief dann das Convert auch mit turboschnellen 30 MB pro Sekunde … bevor der Converter es ausgerechnet hat, hat die präzise Schätzung ergeben, das man schnell mal auf den Abbrechen Knopf drückt und das Projekt auf unbestimmte Zeit verschiebt …

6 Stunden Installationsorgie, Erkältung und Reuma im Ellenbogen von der Klimaanlage …

HTC Desire

so, ich war mal wieder drann mit einem neuen Telefon.
Android 2.1, Exchange Server Client(aka Zarafa tauglich), GPS, UMTS, Kamera, Webbrowser bla bli blupsi.
Alles was ein Telefon braucht.

nur die WordPress App stürtzt beim Blog schreiben ab.
irgendwie doof.

Gentoo installieren mit 3 cmd’s

ach… hört doch auf. um gentoo zu installieren braucht man nur 3 cmd’s.

1
cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6

das is nummer eins.

Quelle
von einem guten Freund irgendwo aus dem Netz

Spruch des Tages

Der frühe Vogel is mir schnuppe,
den Speck bekommt eh die zweite Maus!

Nginx, PHP-FPM und WordPress auf Debian Lenny

Nachdem unser Nginx nun statischen Content ausliefern kann, kommen wir heute zum Thema PHP.
Realisiert wird das ganze über FastCGI mit PHP-FPM

also runterladen und patchen:

1
2
3
4
5
6
cd /usr/local/src
wget http://de.php.net/get/php-5.2.13.tar.gz/from/this/mirror
tar xvfz php-5.2.13.tar.gz
wget http://php-fpm.org/downloads/php-5.2.13-fpm-0.5.13.diff.gz
gzip -d php-5.2.13-fpm-0.5.13.diff.gz
patch -p1 -d php-5.2.13 < php-5.2.13-fpm-0.5.13.diff

So. Jetzt nur noch php compilieren *g*

1
2
3
4
cd php-5.2.13
./configure  --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --with-xsl --with-pcre-regex --with-mysqli --with-mysql --enable-exif --with-gd --with-ldap --with-pdo-mysql --with-bz2 --with-ttf --with-t1lib --with-jpeg-dir=/usr --with-png-dir=/usr --with-gettext
make
make install

Wenn Configure mit fehlenden Librarrys abbricht, die entsprechenden “-dev” Pakete suchen und installieren.
z.B.

1
2
apt-cache search libjpeg
apt-get install libjpeg62-dev

Unsere php.ini liegt dann unter “/usr/local/lib/php.ini” Hier müssen wir die üblichen Anpassungen vornehmen, besonders das “extension_dir” anpassen!

In der Datei “/usr/local/etc/php-fpm.conf” ist dann an 4 Stellen als User/Gruppe “www-data” einzutragen.

Dann lässt sich der FCGI Prozessmanager starten:

1
/usr/local/sbin/php-fpm start

Jetzt müssen wir unserem Nginx sagen, was er mit .php Datein machen soll und fertig sind wir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        location ~ (.*)\.php$ {
                fastcgi_pass   localhost:9000;  # port where FastCGI processes were spawned
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME    /var/www$fastcgi_script_name;  # same path as above

                fastcgi_param  QUERY_STRING       $query_string;
                fastcgi_param  REQUEST_METHOD     $request_method;
                fastcgi_param  CONTENT_TYPE       $content_type;
                fastcgi_param  CONTENT_LENGTH     $content_length;

                fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
                fastcgi_param  REQUEST_URI        $request_uri;
                fastcgi_param  DOCUMENT_URI       $document_uri;
                fastcgi_param  DOCUMENT_ROOT      $document_root;
                fastcgi_param  SERVER_PROTOCOL    $server_protocol;

                fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
                fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

                fastcgi_param  REMOTE_ADDR        $remote_addr;
                fastcgi_param  REMOTE_PORT        $remote_port;
                fastcgi_param  SERVER_ADDR        $server_addr;
                fastcgi_param  SERVER_PORT        $server_port;
                fastcgi_param  SERVER_NAME        $server_name;

                # required if PHP was built with --enable-force-cgi-redirect
                fastcgi_param  REDIRECT_STATUS    200;
        }

Nginx neu starten und schon sollten Php-Scripte ausgeführt werden. Am besten probiert man das mit einer kleinen phpinfo.php

1
<?php phpinfo(); ?>

Wer das WordPress als root des Nginx angelegt hat, braucht nur das Rewrite für die “/” Location anpassen:

1
2
3
        if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php?q=$1 last;
        }

Dumm nur, wenn man das WordPress in einem Unterverzeichniss hat z.B. “/blog/”, aber auch das kann man einfach lösen:

1
2
3
4
5
6
7
8
9
10
11
12
        location /blog {
                root   /var/www;
                index  index.php;

                if (-f $request_filename) {
                        break;
                }

                if (!-e $request_filename) {
                        rewrite ^(.+)$ /blog/index.php?$1 last;
                }
        }

Quellen:
http://n3m0.net/blog/2010/04/03/php-fpm-auf-debian-5-0-lenny/
http://elasticdog.com/2008/02/howto-install-wordpress-on-nginx/

Spruch des Tages

Um eine fachliche Diskussion zu führen, sollte man auch Ahnung vom Fach haben …

Nginx auf Debian installieren / compilieren

Ich habe auch mal mit Nginx experiementiert und versuche greade meinen Server vom Apache umzustellen.

Für die Bequemen – Nginx unter Debian installieren:

1
apt-get install nginx

und für alle die gern die aktuelle Version haben geht es dann weiter:

1
2
apt-get remove nginx
echo "nginx hold" | dpkg --set-selections

so haben wir schon mal das Initscript und diverse Verzeichnisse und Debian versucht nicht mehr das Paket zu aktualisieren/installieren.

1
2
3
4
5
6
7
8
cd /usr/src
wget http://nginx.org/download/nginx-0.7.65.tar.gz
tar xvfz nginx-0.7.65.tar.gz
cd nginx-0.7.65

./configure --prefix=/usr --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin --user=www-data --group=www-data --http-log-path=/var/log/nginx/access.log --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module

make && make install

dazu noch im Verzeichniss /etc/nginx/ die Datei nginx.conf anpassen (vorher die alte Datei umbenennen und neu anlegen!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
user  www-data;
worker_processes  4;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
 
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    sendfile        on;
    keepalive_timeout  10 10;
 
    gzip  on;
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 
server {
        listen *:80;
        server_name     www.sturbi.de;
        root /var/www;
 
        location / {
                root   /var/www;
                index index.php;
         }
}
    server {
        listen   443;
 
        ssl    on;
        ssl_certificate    /etc/ssl/certs/www.sturbi.de.pem;
        ssl_certificate_key    /etc/ssl/private/www.sturbi.de.key;
 
        server_name www.sturbi.de;

        location / {
                root   /var/www;
                index index.html;
 
        }
}
}
1
/etc/init.d/nginx start

und nginx sollte unseren Statischen Content wieder ausliefern.
und morgen basteln wir uns ein PHP-FPM und richten WordPress ein.

Servicewüste Deutschland …

Mittagspause.
Es geht zum Italiener um die Ecke, gutes Essen, preiswert, nett.
Spaghetti mit irgend einem Fleisch für 5 €.
Brot gibts auch noch mit dazu.
Die Spaghetthi kann man auch noch kräftig mit der Pfeffermühle nachwürzen.
Getränk braucht man nicht, ist eh viel zu teuer.
Bezahlt wird natürlich zeitgemäß mit EC Karte. Passend. Wie sonst.

mit den Worten von Bodo H. Hauser:
“Noch Fragen, Kienzle?”

Subversion + Apache + LDAP

Irgend wann stand ich vor der Aufgabe, das vorhandene CVS durch SVN zu ersetzen(ok, die größere Aufgabe war die Entwickler von dem Schritt zu überzeugen)
Da ich alle meine Benutzer schön im LDAP habe, sollte die Authentifizierung auch darüber erfolgen. Die Schwierigkeit war nur, eine stimmige Doku und ein passendes HowTo, oder einfach nur eine funktionierende Konfiguration zu finden.

Da ich für jedes Projekt ein neues Repository anlege, habe ich das SVN im Apache über ein Parent Repository eingebunden.
Die Rewrite Regeln sind notwendig um das Parent Verzeichniss browsen zu können.
Require LDAP-Group gibt eine Gruppe im LDAP an, in der der Benutzername als memberUid enthalten sein muss.
Auszug virtual-server.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ReWriteEngine on
RedirectMatch ^(/repos)$ $1/
DAV svn

SVNParentPath /var/repos/
SVNListParentPath On
SVNAutoversioning On
SVNReposName "Subversion Repository"

AuthType Basic
AuthName "Subversion Repository"
Require valid-user

AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL ldap://ldapserver/ou=Users,dc=company,dc=local?uid?sub
AuthLDAPGroupAttribute memberuid
AuthLDAPGroupAttributeIsDN off
Require ldap-group cn=svnuser,ou=Groups,dc=company,dc=local

AuthzSVNAccessFile /etc/apache2/dav_svn.authz

SVNListParentPath on

In der Datei dav_svn.authz werden Gruppe definiert, welchen dann in den Abschnitten der einzelnen Repositorys die Rechte zugewiesen werden. Wichtig, nicht den Namen des Repositorys vergessen!
Die Benutzer entsprechen den Usernamen aus dem LDAP, die Gruppennamen sind frei zu vergeben. (In der Transaktion kennt SVN nur den Benutzernamen)
Root hat übrigens nichts im SVN verlohren …
/etc/apache2/dav_svn.authz

1
2
3
4
5
6
7
8
9
10
11
[groups]
checkoutgroup=checkout
admins = rapunzel
entwicklung = max,moritz

[/]
*=r

[Project1:/]
@entwicklung = rw
@checkoutgroup = r
Share