Besonders wenn ein Webserver unter Last steht, werden Perl-Programme als CGI-Scripte zum Bottleneck , verbrauchen Unmengen Speicher und werden überaus langsam. Mod_Perl verspricht Abhilfe, weil damit nur noch ein Perl-Interpreter im Hauptspeicher verbleibt.{jcomments on}
apt-get install libapache2-mod_perl2
Um einfach alle Perl-Scripts per mod_perl ausführen zu lassen, kann man folgenden Eintrag in die Apache2-Konfiguration: (/etc/apache2/sites-enabled/000-default) einfügen:
PerlModule ModPerl::Registry <Files *.pl> AddHandler perl-script .pl PerlSendHeader On PerlResponseHandler ModPerl::Registry Options +ExecCGI </Files>
Sinnvoller ist es aber, ein spezielles Verzeichnis für die Perlchen anzulegen. Dieses liegt außerhalb des Apache-Verzeichnisbaums und kann somit NUR über mod_perl angesprochen werden.
Alias /perl_bin/ /srv/perl_bin/ <Location /perl_bin/> AddHandler perl-script .pl PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders Options +ExecCGI </Location>
überall die dämlichen .htaccess Dateien zu verteilen war mir lästig. Viel hübscher ist es, die Authentisierung mit einer eleganten mySQL Tabelle zu machen.
apt-get install libapache2-mod-auth-mysql cd /etc/apache2/mods-enabled/ ln -s /etc/apache2/mods-available/auth_mysql.load .
mysql -uroot -p mysql> grant all on apache2.* to auth_user@localhost identified by ‘<password>’; mysql> flush privileges; mysql> create database apache2; mysql> use apache2; CREATE TABLE clients ( username varchar(25) NOT NULL default ”, passwd varchar(25) NOT NULL default ”, groups varchar(25) NOT NULL default ”, PRIMARY KEY (username), KEY groups (groups) ); INSERT INTO clients VALUES (‘meinBuntzer’, ‘besondersGeheim’, ‘meineGruppe’);
Auth_MySQL_Info localhost <auth_user> <password>
<Directory “<web directory>”> Options +Indexes FollowSymLinks MultiViews AllowOverride AuthConfig Options FileInfo Limit Order allow,deny Allow from all </Directory> <location /> AuthMYSQL on AuthMySQL_Authoritative on AuthMySQL_DB apache2 AuthMySQL_Password_Table clients AuthMySQL_Group_Table clients AuthMySQL_Empty_Passwords off AuthMySQL_Encryption_Types Plaintext Crypt_DES AuthName “Mein Hausserver” AuthType Basic AuthBasicAuthoritative Off AuthUserFile /dev/null require group <meineGruppe> </location>
Manchmal hat man die Situation, dass man hinter einem HTTP-Prox sitzt und mit ssh nicht rauskommt. Dann hilft es, ssh auf einem alternativen port zu legen.
apt-get install ssh apt-get install connect-proxy
in diesem Fall nehmen wir an, dass der Proxy auf Port 8080 lauscht und port 443 benutzt werden soll.
host <hostname> ProxyCommand connect-proxy -H <proxy>:8080 %h 443 host <ip-adress> ProxyCommand connect-proxy -H< proxy>:8080 %h 443
Der alte Funkempfänger für Novell Netware war mir mal zugelaufen und flog schon ewig hier rum. Im Internet fand ich dann folgendes Howto:
Zuerst muss man einen Link auf das korrekte serielle Device setzen. Der RAWDCF Treiber sucht nach der Uhr unter /dev/refclock-n wobei n den Empfänger (0-3) bezeichnet. Um also den Empfänger an ttyS0 hängt heisst der Link: /dev/refclock-0 → /dev/ttyS0. In meinem Falle hat meine Zotac Zbox keine seriellen schnittstellen, mit dem USB-Adapter muss der Link also /dev/refclock-0 → /dev/ttyUSB0 sein
ln -s /dev/ttyS0 /dev/refclock-0
Am elegantesten macht man das, indem man die Datei /etc/udev/rules.d/05-persistent-dcf.rules editiert bzw. anlegt und hineinschreibt:
KERNEL=="ttyUSB0", SYMLINK+="refclock-0"
Folgendes sind die nötigen ntp.conf settings. Unter Debian muss man das ntp-refclock package installieren. Im normalen ntp-server oder ntp-simple lässt sich der Empfänger nicht ansprechen. ntp-refclock ist inzwischen in Debian ntp Package enthalten.
logconfig all #(logging einschalten, kann danach wieder entfernt werden) server 127.127.8.n mode 16 #(wobei n den Empfänger bezeichnet, also 0)
Mode 16 ist die Art wie der Empfänger initialisiert werden soll und über welche Leitung sie Strom kriegt.
Es dauert mindestens eine Minute bis ein volles Zeittelegram empfangen wurden. Dazwischen motzt der Treiber, dass es zuwenig Bits waren:
Apr 20 11:03:46 go ntpd[14950]: PARSE receiver #0: reference clock "RAW DCF77 CODE (DTR CLR/RTS SET)" (device /dev/refclock-0) added Apr 20 11:03:46 go ntpd[14950]: PARSE receiver #0: Stratum 0, no PPS support, trust time 00:00:00, precision -18 Apr 20 11:03:46 go ntpd[14950]: PARSE receiver #0: rootdelay 0.000000 s, phaseadjust 0.258000 s, normal IO handling Apr 20 11:03:46 go ntpd[14950]: PARSE receiver #0: Format recognition: RAW DCF77 Timecode
Wurde schon mal korrekt als DCF77-Empfänger erkannt
Apr 20 11:04:00 go ntpd[14950]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 13 bits Apr 20 11:04:00 go ntpd[14950]: PARSE receiver #0: conversion status "CONVERSION FAILED; DATE ILLEGAL" Apr 20 11:04:00 go ntpd[14950]: PARSE receiver #0: interval for following error message class is at least 00:01:00 Apr 20 11:04:00 go ntpd[14950]: PARSE receiver #0: FAILED TIMECODE: "#--#-#------" (check receiver configuration / cableling)
Noch nicht genug Bits empfangen.
Apr 20 11:05:00 go ntpd[14950]: PARSE receiver #0: packet format "RAW DCF77 Timecode" Apr 20 11:05:00 go ntpd[14950]: PARSE receiver #0: STATE CHANGE: -> DST; TIME CODE; (LEAP INDICATION; ANTENNA) Apr 20 11:05:00 go ntpd[14950]: PARSE receiver #0: SYNCHRONIZED
Volles Telegramm empfangen - Zeit synchronisiert!
Die schon etwas älteren Laserdrucker von HP, der LJ 4/4M/4plus sind praktisch unverwüstlich, leiden aber nach einigen Jahren Betriebszeit bisweilen an der Papierstau-Krankheit.
Wie jeder Seitendrucker bewegt der HP 4 die Blätter mit Hilfe von Gummiwalzen durch die Engine. Diese Walzen setzen sich mit Papierstaub zu und nutzen sich ab – Folge: Sie verlieren ihre Traktion und leiten das Papier nicht mehr richtig weiter.
Eine Variante der Krankheit befällt beim HP 4 die kleinen Walzen, die sich auf einer Achse im Ausgabefach-Schlitz befinden. Sie haben die Aufgabe, die Vorderkante des hinter der Heckklappe nach oben geschobenen Papiers zu erfassen und umzulenken. Sind sie nicht mehr griffig, bleibt der Papierbogen vor ihnen stehen und verursacht einen Papierstau.
Das im folgenden geschilderte Verfahren beschreibt, wie Sie die Walzen freilegen können, um sie mit einem Stück Schmirgelpapier wieder aufzurauhen und somit die Ursache der Staus zu beseitigen. Nebenbei lässt sich Ihr Drucker einfach reinigen.
Sie brauchen dafür:
Schaffen Sie sich zunächst eine saubere Arbeitsfläche. Dann kann es losgehen.
Seite 1 von 2