Archiv für die Kategorie „Linux und OpenSource“

Easter Eggs in Linux

am Freitag, 20. Januar 2012

So genannte Easter Egg (zu Deutsch “Osterei”) ist der Begriff für eine versteckte Funktion oder Besonderheit in Computerprogrammen. So gab es zum Beispiel bei Excel ein Autorennen, dass durch eine gewisse Tastenkombination gestartet werden konnte oder bei Google bewirken gewisse Eingaben, dass sich Google anders verhält als normal (z.B. “do a barrel roll” oder “tilt”). Ebenfalls gibt es diese Easter Eggs bei Linux.

Bei Debian gibt man zum Beispiel “apt-get moo” ein und es erscheint eine lustige Kuh.

apt-get moo

Ebenfalls erscheint ein weiteres Easter Egg bei folgender Eingabe:

aptitude moo -v

Nun wahrscheinlich gibt es noch mehrere solche Easter Eggs, aber das sind in Linux diejenigen, die ich kenne.

In der heutigen Zeit von Viren und Trojanern sind aber Softwarehersteller eher gegen Easter Eggs, da sie befürchten, so als weniger vertrauenswürdig angesehen zu werden. Dennoch finde ich Easter Eggs eine lustige Idee.

 

Internet Nameserver

am Sonntag, 7. August 2011

Unsere neuen Nameserver sind installiert und online. Neu können von unseren Kunden folgende Internet Nameserver verwendet werden:

IP Adresse Standort
91.135.69.9 Computerline Datacenter Zurich 4
91.135.68.8 Computerline Datacenter Amsterdam 1

 

Neue Zeitserver

am Montag, 25. Juli 2011

Per sofort sind unsere neuen Zeitserver online. Diese dürfen von unseren Kunden kostenlos benutzt werden und sind verfügbar über diesem Namen:
clock.computerline.ch

Nützlich sind diese bei der Synchronisation der Zeit durch Server Betriebssysteme, Firewalls, Drucker, Switches, etc.

PHP Applikations Programmierer

am Sonntag, 29. Mai 2011

Zur Info:
Wir suchen immer noch einen sehr guten und netten PHP Programmierer :-)
In unser junges Team passt auch ein Freak in Ausbildung, Pflicht sind super Kentnisse in PHP5, MySQL und Ajax.

http://www.computerline.ch/ueber-uns/offene-stellen.html

Cloud Backup / Online Datensicherung

am Donnerstag, 5. Mai 2011

Für unseren neuen Service, die Online Datensicherung, sind nun die Daten wie auch Preise online verfügbar: www.computerline.ch/datacenter/cloud-backup/


Das Sicherungsprogramm ist kostenlos dabei und die Sicherung erfolgt verschlüsselt und vollautomatisch auf unsere Server.

Debian Upgrade: Von 5 auf 6

am Freitag, 25. Februar 2011

Ich bin gerade mit Upgrades auf einem Testserver beschäftigt. Installiert ist Debian Lenny (5.0) , das Upgrade soll auf die neue stable Debian Squeeze (6.0) erfolgen.
Bei den Upgrades bin ich auf Details/Fehler gestossen die man beachten muss.  Es empfiehlt sich dieses Posting nicht von Beginn an 1:1 durchzuarbeiten, sondern es zuerst komplett durchzulesen und erst dann zu starten ;-)

Als erstes sollte man sicher sein, dass der aktuellste Stand von Debian 5 installiert ist:

apt-get update
apt-get upgrade

Für das Distributions Upgrade müssen zuerst die Quellen angepasst werden, zu beachten sind ein paar neue Update Pfade.

[BEISPIEL] War: /etc/apt/sources.list

deb http://mirror.switch.ch/ftp/mirror/debian/ lenny main non-free contrib
deb-src http://mirror.switch.ch/ftp/mirror/debian/ lenny main non-free contrib
 
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
 
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
 

[BEISPIEL] Neu: /etc/apt/sources.list

deb http://mirror.switch.ch/ftp/mirror/debian/ squeeze main

deb-src http://mirror.switch.ch/ftp/mirror/debian/ squeeze main

 

deb http://security.debian.org/ squeeze/updates main

deb-src http://security.debian.org/ squeeze/updates main

 

deb http://ftp.debian.org/debian squeeze-updates main

deb-src http://ftp.debian.org/debian squeeze-updates main

 

Danach kann das Upgrade gestartet werden:

 

apt-get dist-upgrade

 

Das Upgrade wird ein paar Mal fragen ob geänderte Configs überschrieben werden dürfen oder nicht. Ich empfehle ganz klar überall ein NEIN (bestehende Konfigurationen behalten), da man sonst alles neu konfigurieren muss.

Das Update installiert die neusten Versionen von allen Programmen, also auch PHP, MySQL, Apache, …. Grub und den Kernel.

 

Danach muss man den Server neu starten. In meinen Fällen wurde der Grub korrekt installiert, auch das Software-Raid war noch ganz. Nicht mehr funktioniert hat nachher der MySQL-Server. Das scheint aber ein normales Problem zu sein.

 

Defekten MySQL nach dem Upgrade wieder in Betrieb nehmen

 

Es scheint zwei Fehlertypen zu geben:

a) MySQL Server weg (Binaries verschwunden, aber keine Angst, Tabellen/Inhalt vorhanden)

b) Er startet nicht mehr

 

Wir lösen zuerst das Problem a) weil danach kann b) immer trotzdem noch auftreten.

apt-get –reinstall mysql-server

 

Danach testen ob es wieder geht. Wenn nicht folgendes probieren:

[MySQL löschen]

apt-get remove mysql-server mysql-server-5.0 mysql-server-5.1

dpkg –remove mysql-server

dpkg –remove mysql-server-5.0

dpkg –remove mysql-server-5.1

[MySQL wieder installieren]

apt-get install -mysql-server -y

 

Jetzt hätten wir Problem a) gelöst, der Server ist wieder hier. Das heisst natürlich noch nicht, dass er auch funktioniert.
Funktioniert /etc/init.d/mysql restart, und der Server läuft, ist alles okay.

Läuft er aber immer noch nicht? Erscheinen Fehler wie:

 

dpkg: Fehler beim Bearbeiten von mysql-server (–configure):
 Abhängigkeitsprobleme – verbleibt unkonfiguriert
configured to not write apport reports
                                      Fehler traten auf beim Bearbeiten von:
 mysql-server-5.1
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

 

Das kann ziemlich sicher so behoben werden:
In der Datei /etc/mysql/my.conf (Pfad kann abweichen) skip-bdb auskommentieren (also #skip-bdb oder ganz löschen), Datei speichern.
Danach folgendes ausführen:

dpkg –configure –pending

 

Voilà, der MySQL Server sollte nun defintiv wieder laufen!

 

Bei diesen ganzen MySQL Operationen (löschen, etc.) gehen die Daten und Zugriffe/Passwörter nicht verloren. Falls doch bin ich daran nicht schuld, da ich jetzt ausdrücklich sage: Vorher Backup erstellen  :-)

 

 

Je nach Server waren noch andere Dienste vom MySQL Server abhängig. Diese Dienste am besten kurz neu starten. Wenn ihr nicht welche diese Dienste und es aber sowieso niemand stört (wie z.B. auf einem Testserver), auch gleich den ganzen Server starten, dann vergisst ihr sicher keinen Dienst.

 

Hinweis zum HCI, ab Version 0.73: 

Unser Webhosting Administrations Tool, das HCI Hosting Control Interface, funktioniert nach dem Upgrade einwandfrei weiter.

Plesk 9.2.3 Horde Webmail Bug

am Freitag, 18. Dezember 2009

Beim letzten Update von Plesk 9.2.2 auf die Plesk Version 9.2.3 hat sich ein Bug eingeschlichen.

Aufgrund des Bugs im Hotfix 92091210 ist das Horde Webmail nach dem Update nicht mehr erreichbar,

anstelle des Webmails ist eine Seite sichtbar mit folgendem Text:


Some of Horde’s configuration files are missing or unreadable
prefs.php

This file controls the default preferences for Horde, and also controls which preferences users can alter.
conf.php

This is the main Horde configuration file. It contains paths and basic items that apply to the core framework and all Horde applications.
mime_drivers.php

This file controls the global set of MIME drivers for the Horde framework, allowing applications to make use of programs such as enscript or mswordview to render content into HTML for viewing in a browser.
nls.php

This file provides localisation support for the Horde framework.
registry.php

The registry is how Horde applications find out how to talk to each other. You should list any installed Horde applications that you have here.
Create these files from their .dist versions in /usr/share/psa-horde/config and change them according to your needs.

Die Lösung ist relativ einfach. Gehen sie in den Plesk Updater und installieren sie das neuste Horde Webmail Update welcher in den letzten Tagen freigegeben wurde.

Plesk Updater 1

Plesk Updater 2

SSL Zertifikat in der LAMP Umgebung erstellen

am Donnerstag, 3. Dezember 2009

Alle (paar) Jahre wieder… muss man die SSL Zertifikate erneuern. Mit dem Apachen und Linux jedes Mal zuerst wieder alle Befehle zusammenkratzen… dabei ist es ganz einfach!

Ich musste gerade für member.computerline.ch das Zertifikat erneuern, deshalb am Beispiel von dem:

Die ersten zwei Befehle:

openssl genrsa -des3 1024 > member.computerline.ch.key

openssl req -new -key member.computerline.ch.key -out member.computerline.ch.csr

 

Danach muss man seine eigenen Daten eingeben, wie Land (CH), Firmenname, Ortschaft, etc.

“Common Name” ist das wichtigste. Dort muss man die Webseite eingeben, welche nachher per SSL erreichbar sein soll. Also z.B. member.computerline.ch

 

Das CSR kann man nun einer öffentlichen Zertifikat Registrierungsstelle geben, damit man das signierte Zertifikat erhält. Wer keine öffentliche und günstige Zertifizierungsstelle kennt, kann es auch uns mailen, damit wir es extern signieren lassen können. Das ist nicht mehr so teuer wie früher, das Zertifikat kostet noch weniger als 150 CHF für ein Jahr.

 

Von der Registrierungsstelle erhält man nun ein “.crt” und “.ca”. Diese auf dem Server speichern, am besten unter /etc/apache2/ssl.crt/NAME.crt. Analog beim .ca

 

Auch das .key File, also das erstellte “member.computerline.ch.key” muss man noch in /etc/apache/ssl.key kopieren. Danach am besten die Passphrase rausnehmen, damit der Apache beim starten nicht immer nach einem Passwort fragt:

 

openssl rsa -in member.computerline.ch.key -out member.computerline.ch.member.computerline.ch.key

 

Wer SSL schon konfiguriert hatte, kann nun den Apache-Dienst neustarten (z.B. /etc/init.d/apache2 restart) und alles sollte laufen, sofern die gleichen Dateinamen wie letztes Jahr verwendet wurden.

 

Wer SSL noch nicht konfiguriert hatte muss im VHost schauen, dass er den Port 443 verwendet und ssl global in der Apache Konfig mal eingeschalten ist.

In der VHost Konfig selbst braucht es dann nur noch diese drei Einträge:

 

# SSL Einschalten
SSLEngine on
 
# Das Zertifikat
SSLCertificateFile /etc/apache2/ssl.crt/member.computerline.ch.crt

#CA File
SSLCertificateChainFile /etc/apache2/ssl.crt/member.computerline.ch.ca

# Der Key
SSLCertificateKeyFile /etc/apache2/ssl.key/member.computerline.ch.key

 

Webhosting Administrations Interface

am Donnerstag, 22. Oktober 2009

Dieses Programm dient für die Verwaltung von mehreren Webhostings/Domains auf einem Server. Ich habe es in diesem Blog schon mehrfach erwähnt. Nun gibt es wieder News:

  • Es heisst nicht mehr WCI, sondern HCI (Hosting Control Interface). WCI wurde vom Team als zu fest zweideutig empfunden (umgekehrt wärs noch besser: iWC).
  • Es hat ein Logo bekommen:
Logo für die Webhosting Administrations-Software

Logo für die Webhosting Administrations-Software

 

Wir haben es intern erstellt, verantwortlich ist Angela Nunez ;-)

Gerne erfreuen wir uns über Feedback/Kommentare!

Technisch sind wir schon sehr weit, aktuell am testen und die letzten Fehler auszubügeln. Wir werden nun noch das Frontend bearbeiten und dann hoffentlich bald die Final-Version präsentieren.

AJAX mit verschiedenen Domains

am Dienstag, 21. Juli 2009

Es ist wichtig das clientseitiger JavaScript Code nicht auf andere Domains bzw. Server zugreifen kann. Dies um Cross Site Scripting Angriffe auf den Client zu vermeiden. Manchmal möchte, oder muss, man aber trotzdem auf Ressourcen zugreifen die sich auf einem anderen Server befinden.

Hierzu eignet sich die php libcurl, welche allen unseren Webhosting Kunden zur Verfügung steht, bestens. Mit wenigen kniffen kann man sich den Browserinhalt von einem anderen Webserver ziehen und diesen weiterverarbeiten. Als einfaches Beispiel senden wir ein paar GET Variablen an einen Webserver und geben die daraus resultierende Antwort an den Client Browser weiter. 

 <?php
// erzeuge einen neuen cURL-Handle
$ch = curl_init(); 

// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, “http://www.domain.tld/verzeichnis/?”.$_SERVER['QUERY_STRING']);
curl_setopt(
$ch, CURLOPT_HEADER, 0);
curl_setopt(
$ch, CURLOPT_RETURNTRANSFER, 1); 

// führe die Aktion aus und gebe die Daten an $result weiter
$result = curl_exec($ch); 

// schließe den cURL-Handle und gebe die Systemresourcen frei
curl_close($ch); 

// Das Resultat des cURL Handels an den Browser zurückgeben
echo $result;
?>

 Auf dieses Script kann dann mittels dem XMLHttpRequest Object wie gewohnt zugegriffen werden. Bitte nicht vergessen, greift man so auf eine fremde/n Website/Webserver zu und zeigt diese auf der eigenen Website an, sollte man umbedingt die Urheberrechte im Auge behalten und die Nutzung der Daten erfragen – ansonsten begeht man eine Urheberrechtsverletzung welche durchaus rechtliche Konsequenzen haben kann.

Weitere Informationen zur Verwendug in PHP findet man im Online PHP Manual: http://ch.php.net/curl