mod_bw unter Gentoo installieren - Bandbreitenbegrenzung für den Webserver Apache 2.2

Heute habe ich mich mit der Bandbreitenbegrenzung für einzelne Vhosts eines Webservers beschäftigt. Da ich Apache 2.2 einsetze, musste das Modul damit kompatibel sein. www-apache/mod_cband-0.9.7.5 und www-apache/mod_bw-0.7 waren das leider nicht. Es gab jedoch einen Patch  für mod_bw, der das Problem beheben sollte. Ein genauerer Blick auf gentoo-portage.com zeigte mir, dass es bereits eine stable Version 0.8  gibt, welche Apache 2.2 kompatibel ist. ...

HLStats auf einem "blanken" Server installieren

Wenn man Real-Time-Statistiken von Half-Life-Servern haben will, so nimmt man am besten “ HLStats  ”. Ich zitiere mal aus der Dokumentation  : ...

Apache Fehler: pcfg_openfile Fehler 13 beheben

Heute hatte eine meiner Domains auf einmal nicht mehr funktioniert, wofür ich zunächst keine Erklärung finden konnte. Bei jedem Aufruf kam nur eine Fehlerseite zurück, mit der Meldung dass der Zugriff nicht erlaubt ist oder kein Indexdokument vorhanden sein. Da aber beides meines Erachtens nicht zutreffen sollte, machte ich mich also auf die Suche und traf in den error-Logs des Apache2-Webservers auf folgenden Fehler: 1 [Mon May 22 10:52:42 2006] [crit] [client 123.123.123.123] (13)Permission denied: /var/www/XXX/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable Einige Elemente dieser Fehlermeldung sind von mir gelöscht worden ...

LibSSH2 auf Debian 3.1 mit Apache2 und PHP4 einrichten & PECL-SSH2 installieren

Heute hatte ich mich im Zuge einer kleinen Programmieraktion in PHP mit SSH2 auseinandersetzen müssen. Da dies standartmäßig nicht integriert ist, habe ich also ein wenig geforscht und bin schlussendlich auf die Möglichkeit einer Installation via PECL gestossen. Meine Ausgangslage: Debian 3.1 Sarge PHP4 Apache2.0 Commandozeilenzugriff Die Installation gestaltet sich denkbar einfach, zunächst muss man OpenSSL installieren: 1 apt-get install openssl-dev openssl Nachdem dies geschehen ist muss man nun die LibSSH2 installieren, für die es kein Debian-Package gibt. Daher muss man zunächst das neueste Packet von Sourceforge  holen und damit folgendes machen(hier am Beispiel der Version 2.0.13): ...

Zend Optimizer Version 3.0.1 installieren

Da ich aufgrund eine Scriptes den Zend Optimizer mal wieder auf den neuesten Stand bringen musste, habe ich das hier mal direkt mitdokumentiert. Die derzeit aktuelle Version ist 3.0.1, welche nur auf PHP-Versionen größer als 4.0.4 läuft. Das Update / Die Installation verläuft vollkommen automatisch mit Hilfe eines Scriptes.Was ist aber eigentlich ZendOptimizer? Die Wikipedia  sagt dazu: ...

wget

Mit wget lassen sich einfach Dateien und sogar komplette Internetseiten herunterladen. Der folgende Aufruf lädt eine Datei runter: 1 wget http://www.server.com/grossedatei.tar.gz Wir können das Downloaden der Datei an einem beliebigen Zeitpunkt unterbrechen (z.B. mit CTRL+C) und dann mit dem -c-Switch an derselben Stelle wieder fortfahren. Wollen wir aus irgend einem Grunde die maximale Downlloadgeschwindigkeit runtersetzen, können wir dies mit –limit-rate tun. Folgender Aufruf setzt das herunterladen einer Datei mit 20 KByte/s fort: ...

ssh

Fast jeder kennt ssh. Mit ssh kann man zu entfernten Rechnern Verbindungen aufbauen: 1 ssh user@host Weniger bekannt ist, dass man mit ssh auch verschlüsselte Tunnels erstellen kann. Als einfaches Beispiel nehme ich eine komplett unverschlüsselte Telnet Verbindung zu einem netcat-Server. Rufen wir auf dem Server netcat auf mit: 1 nc -lp 2000 bzw. bei einigen Versionen: 1 nc -l 2000 Nebenbei starte ich noch den Sniffer ngrep, welcher mir alle Daten schön anzeigt und verbinde mich vom Server auf den Client mit: ...

Export einer Gerätedefinition aus FHEM

Wenn man eine Gerätedefinition komplett mit allen Kommandos aus FHEM ziehen will, bekommt man meist gesagt, dass man doch list [DEVICE] dazu verwenden kann. Was ja auch ganz nett ist, aber leider halt nicht mit “define…” beginnt. Per Zufall bin ich heute über ein Kommando der configdb gestolpert, was genau das kann (bedingt natürlich, dass man configdb nutzt): 1 configdb list [DEVICE] Funktioniert super und endlich kann ich meine Devices einfach verbloggen :)

Mein Batteriewächter für FHEM

Ich wurde vor kurzem gefragt, wie denn eigentlich meine Batteriewarnung innerhalb von FHEM aussieht. Daher hier der Codeschnipsel. Ich verwende das msg modul für Benachrichtigungen, unten muss daher der Name des Empfängers unter Umständen angepasst werden. Es ist eine 300 Sekunden Zeit eingebaut, welche die Meldung “entprellt”, um sozusagen nicht hunderte Mails oder Pushes zu bekommen, wenn ein Schalter mal über 20 Sekunden langsam hoch dimmt und dabei “battery: low” sendet. ...

Setzen des Hostname eines ESP8266

Der ESP8266 meldet sich standardmäßig im WLAN mit dem Namen ESP_… wobei die letzten Stellen aus der MAC berechnet werden. Um aber nun den Namen des Moduls manuell zu setzen, muss man sich einer Hilfsfunktion bemühen. So sieht das dann aus: 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 #include <ESP8266WiFi.h> extern "C" { #include "user_interface.h" } // WIFI WiFiClient client; const char* wifiSSID = "<SSID>"; const char* wifiPassword = "<PASSWORD>"; char wiFiHostname[ ] = "ESPonTheRocks"; #define wifiMaxTries 30 #define wifiRepeatInterval 360 int wifiConnectCounter; void setup() { WiFi.begin(wifiSSID, wifiPassword); wifi_station_set_auto_connect(true); wifi_station_set_hostname(wiFiHostname); wifiConnectCounter = 1; while (WiFi.status() != WL_CONNECTED) { delay(wifiRepeatInterval); wifiConnectCounter++; if (wifiConnectCounter > wifiMaxTries) { delay(wifiRepeatInterval * 1000 * 1000); wifiConnectCounter = 0; } } } void loop() { // Do something }