webserver
Tomcat 6 mit MOD_JK (Apache Tomcat Connector) unter Windows in IIS Integrieren
Um den Tomcat Webserver unter Windows in den IIS zu integrieren, bedarf es einiger manueller Konfigurationsarbeit, welche ich in diesem HowTo genauer beschreiben möchte
Damit Microsofts IIS (Internet Information Services) mit dem Tomcat spricht und den Inhalt der Tomcat Instanz ausliefern kann, gibt es das “Apache Tomcat Connector” Plugin (Beim Apache Webserver auch als mod_JK bezeichnet). Das Plugin implementiert dem IIS das notwendige AJP (Apache JServ Protocol).
Ich persönlich bin eigentlich eher abgeneigt gegen Windows bzw. Windows Web Servern, da ich in der Linux Welt zuhause bin. Wenn es dennoch sein muss und die Anforderung zur Integration des Tomcats in den IIS besteht, muss man über seinen Schatten springen und eine entsprechende Lösung implementieren. Der Guide beschränkt sich hierbei auf den IIS6 unter Windows Server 2003
Voraussetzungen:
- Eine installierte Tomcat Instanz: egal ob auf dem selben Server und ob Windows oder Linux
- Der AJP 1.3 Connector muss in der server.xml des Tomcats aktiviert sein (StandardPort ist 8009)
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> - Der AJP 1.3 Connector Port (8009) muss von dem entsprechenden Windows Server erreichbar sein
Download der IIS Erweiterung:
Der “Apache Tomcat Connector” kann direkt von der Homepage der Apache Software Foundation heruntergeladen werden. Ich verwende hier die aktuelle stable Version “jk-1.2.30″ für 32bit. Die benötigte Datei trägt den Namen isapi_redirect-1.2.30.dll. Direktlink. Bei einem 64bit System ist unbedingt die 64bit Version zu empfehlen, da sonst der ISAPI Filter nicht geladen wird.
Die Datei kann natürlich in ein beliebiges Verzeichnis gelegt werden. Ich habe aber gerne alle Komponenten beisammen und lege sie daher in mein tomcat/bin Verzeichnis: (D:\apache-tomcat-6.0.26\bin)
Registry Keys und Konfigurationsfiles erstellen
Unter Windows ist es leider notwendig bestimmte Registry Keys und Konfigurationsdateien manuell zu erstellen und anzupassen. Für Schreibfaule habe ich ein Paket mit den Registry Keys und den Configfiles zusammengestellt welches ihr hier downloaden könnt. Ihr müsst diese dann lediglich noch für eure Bedürfnisse anpassen. Wer die Keys manuell erstellen will, der kann hier weiterlesen:
Mac OS X 10.6 – PHP unter Snow Leopard installieren
PHP kann unter Mac OS X 10.6 ganz einfach installiert werden, da das benötigte Modul bereits mit an Board ist. Es muss nur aktiviert werden.
PHP ist mit wenigen Handgriffen im Terminal aktiviert, und kann anschließend sofort verwendet werden:
Wer noch nie mit dem Terminal gearbeitet hat, und auch nicht weiss wie man es aufruft: “Programme” -> “Dienstprogramme” -> “Terminal”
Mit folgendem Befehl bearbeiten wir die Apache Konfigurationsdatei mit dem Lieblingseditor:
sudo pico /etc/apache2/httpd.conf
Zur Bestätigung müsst Ihr euer root Passwort eingeben.
Sobald die Datei geöffnet ist suchen wir nach folgender Zeile:
#LoadModule php5_module libexec/apache2/libphp5.so
Das # (Raute / Sharp) Zeichen davor deaktiviert das PHP Modul im Apache und muss nun entfernt werden. (siehe Screenshot)
Nachdem die Datei abgespeichert wurde, kann der Webserver Dienst neu gestartet werden:
Unter “Systemeinstellungen” -> “Freigaben” -> “Webfreigabe” den Haken deaktivieren und wieder aktivieren. Der PHP Support ist nun eingeschaltet und steht dem Apache Webserver ab sofort zur Verfügung.
WebseitenOptimierung mit gzip Komprimierung in Apache2 und IIS6
Die gzip Komprimierung ist eine einfache Methode, um den verursachten Traffic einer Webseite zu reduzieren und die Performance zu erhöhen und zusätzlich die Kosten zu reduzieren.
Um zu erklären wie die gzip Komprimierung funktioniert, sollte man erstmal grundlegend wissen wie ein normaler Aufruf (Request) und die Antwort (Response) einer Webseite funktioniert. Grundsätzlich ist es aber so das jeder moderne Webbrowser, der letzten Jahre gzip Komprimierung unterstützt. Wenn ihr zB.: in eurem Browser http://www.sysadminslife.com ansurft funktioniert die Auslieferung der Webseite wie folgt mit- und ohne gzip Komprimierung:
(Anmerkung: Ich führe hier lediglich vereinfachte Beispiele an, um das Thema verständlicher zu machen.)
HTTP Request und Response ohne gzip-komprimierten Inhalt:
1. Der Browser fordert per GET Request die Datei /index.php an
2. Der Server sucht in seinem Webverzeichnis nach der angeforderten Datei
3. Der Server hat die Datei gefunden, sendet den Response Code 200 OK und übermittelt die Datei an den Browser
4. Der Browser wartet nun bis die gesamten 100KB übertragen sind, und zeigt danach die Webseite an
So funktioniert der grundsätzliche Ablauf zwischen dem Browser und dem Server. In einem HTML/PHP Dokument ist natürlich ziemlich viel Einsparungspotential vorhanden, wenn man die Dateien komprimiert. So ist zB. eine Datei die vorher 100KB groß war nur mehr ein Zehntel so groß (10KB) oder sogar noch kleiner. Zudem sei noch gesagt, dass eine moderne Webseite natürlich nicht nur eine html oder php Datei abruft, sondern sich eine Seite aus mehreren php/html Dateien + Datenbankabfragen zusammenbaut.
Ihr wisst jetzt auf was ich hinaus will. Wenn wir die auszuliefernde Datei vorher am Server komprimieren ist sie kleiner und wird damit schneller zum Browser übertragen. Das spart natürlich Zeit und Bandbreite. Der Browser ladet also die gezippte Datei vom Server herunter und extrahiert sie, bevor sie angezeigt wird. Die Auslieferung sieht dann wie folgt aus:
HTTP Request und Response mit gzip-komprimierten Inhalt:
1. Der Browser fordert per GET Request die Datei /index.php an und teilt mit, dass er auch komprimierten Inhalt annehmen und verarbeiten kann
2. Der Server sucht in seinem Webverzeichnis nach der angeforderten Datei und zippt diese
3. Der Server hat die Datei gefunden, sendet den Response Code 200 OK, teilt dem Browser mit das die Datei gepackt ist und übermittelt diese an den Browser
4. Der Browser wartet nun bis die 10KB übertragen sind, entpackt sie und zeigt danach die Webseite an
Genauer Betrachtet
Der Browser sendet im Anfrage-Header mit, dass er auch gezippten Inhalt annehmen und verarbeiten kann. In der Regel sendet jeder moderne Webbrowser diesen Eintrag im Header mit: Accept-Encoding: gzip, deflate
Der Server sendet im Antwort-Header mit, ob der Inhalt komprimiert ausgeliefert wird. Content-Encoding: gzip Bei einem Webserver ist die Komprimierung nicht standardmäßig eingeschalten. Wenn der Server den Antwort Header nicht mitsendet, dann wird der Inhalt nach wie vor ohne Komprimierung übertragen. › Continue reading
Links of the week #7

Die wichtigsten Themen der letzten Woche im Überblick
Windows 7 kommt ohne Internet Explorer
Die Kombination aus Windows-Betriebssystem und vorinstalliertem Web-Browser stieß bei der Europäischen Kommission auf wenig Begeisterung. Daher wurden die Entwickler aus Redmond explizit auf diese Problematik aufmerksam gemacht. Die Rede ist von einem Verstoß gegen das europäische Wettbewerbsrecht. gulli
Opera will das Internet neu erfinden
Unter opera.com/freedom kündigen die Norweger statt dessen eine Revolution an: »Am 16. Juni … werden wir das Web neu erfinden«, lautet das Versprechen, betitelt mit dem Slogan »15 Jahre Browser-Innovation«. An der Verkündung kann jedermann teilnehmen, geplant ist ein Video-Stream. Über das, was Opera im Köcher hat, wird heftig gemutmaßt: Im Gespräch ist eine neuartige Komprimierungsfunktion mit der Bezeichnung »Turbo«, die auch bei der Beta des mobilen Opera 9.7 verfügbar ist (siehe »Beta von Opera Mobile 9.7 erhältlich«) – allerdings nur zusammen mit Windows Mobile 5 und 6 funktioniert – und beim Surfen mit dem Handy freilich absolut Sinn macht. Tomshardware
Iphone 3.0
Das iPhone 3G S sowie das Betriebssystem 3.0 kündigen sich bereits an: Das neue Telefon befindet sich offenbar bereits auf seinem langen Weg von der Fertigung in Asien zum endgültigen Versand in die Vereinigten Staaten, wo die ersten Kunden bereits Versandbestätigungen erhalten haben. Gleichzeitig ist schon die Software 3.0 für iPhone 3G S zum Download verfügbar – Anwender älterer Geräte können damit jedoch nicht viel anfangen. Interessierte können aber bereits die Dokumentation lesen, die in voller Länge auf den Apple-Servern vorgehalten wird. apfeltalk
Microsofts Virenschutz Morro kommt noch im Juni
Offenbar aufgrund der vorab im Internet aufgetauchten Pre-Beta-Version der neuen, für den Privatanwendermarkt konzipierten Antivirussoftware Microsoft Security Essentials (Codename “Morro”) tritt Microsoft die Flucht nach vorn an und gibt bereits jetzt erste Details zum Nachfolger des wenig erfolgreichen Windows Live OneCare frei. So soll ab 23. Juni unter www.microsoft.com/security_essentials eine Beta-Version zum Download bereit stehen. Vorerst allerdings nur für PC-Nutzer in den USA, in Israel und in Brasilien. Eine chinesische Version soll später folgen. Zudem wird die Beta auf insgesamt 75.000 Downloads limitiert sein. heise
Remote-Handbremse für Webserver
Der Security-Spezialist Robert “RSnake” Hansen hat ein Tool veröffentlicht, das selbst große Webserver mit einem gewöhnlichen Internet-PC lahmlegen kann. “Slowloris” nutzt keine Sicherheitslücken aus, sondern basiert auf einem Feature des HTTP-Protokolls: partielle HTTP-Anfragen. Clients müssen nicht die gesamten Daten eines GET- oder POST-Requests in einem Rutsch an den Server liefern, sondern können sie auf mehrere Pakete verteilen. heise
Brennstoffzellenauto »Urban Car« ist umweltfreundlich und Open Source
Riversimple hat mit dem Brennstoffzellenauto »Urban Car« nicht nur einen umweltfreundlichen Stadtflitzer vorgestellt, sondern auch alle Pläne und Daten des Autos ins Internet gestellt. Wer will, kann so auf der bereits getanen Arbeit aufbauen und das Gefährt selbst weiterentwickeln. Riversimple verspricht sich davon innovative Ideen, mehr Sicherheit und eine verkürzte Entwicklungszeit. pro-linux
eAccelerator – PHP Beschleuniger Installation unter Debian 5 (Lenny) und Ubuntu
eAccelerator – kleines Programm mit großer Wirkung.
eAccelerator ist ein Tool, welches die Ausführung des PHP-Codes unter Apache beschleunigt. Der Code wird bereits in kompiliertem Zustand gespeichert, wodurch das Kompilieren bei jeden Seitenaufruf fast gänzlich wegfällt. Der bereits vorkompilierte Code wird im Shared Memory gespeichert und von dort direkt aufgerufen. Außerdem wird die Laufzeit optimiert, um die Ausführung des PHP-Codes zu beschleunigen.
Persönliche Erfahrungen mit eAccelerator:
Da wir vor einiger Zeit eine etwas stärker frequentiertere Seite hosteten und wir ziemliche Performanceprobleme hatten, gab mir ein befreundeter Administrator den Tipp eAccelerator auszuprobieren. Ich war erst skeptisch und notierte mir die genauen Ladezeiten der Seite, um nach der Installation von eAccelerator einen Vergleichswert zu haben. Die Performancesteigerung war in meinem Fall nach der Installation ganze 89,5%.
Für eAccelerator gibt es leider keine offiziellen Pakete unter den Sources, darum müssen wir die Software per Hand downloaden und kompilieren. Dieser Schritt ist allerdings nicht allzu schwer:
Voraussetzungen installieren:
Damit wir eAccelerator für das System kompilieren können, sind einige Pakete dafür notwendig, die in “build-essential” enthalten sind, ausserdem benötigen wir das php5-dev Paket. Dieses installieren wir über folgenden Befehl:
apt-get install build-essential php5-dev bzip2
eAccelerator downloaden und entpacken:
Wir holen uns nun die aktuellste Version von eAccelerator bei der Herstellerseite und speichern diese nach /usr/src. Derzeit ist die aktuellste Version 0.9.5.3.
cd /usr/src
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6.tar.bz2
Der eAccelerator befindet sich nun gepackt in unserem /usr/src Verzeichnis. Diesen werden wir nun entpacken.
tar -xjvf eaccelerator-0.9.6.tar.bz2
eAccelerator wurde und erfolgreich in /usr/src entpackt.
eAccelerator kompilieren und konfigurieren:
Mit folgenden Befehlen kompilieren/installieren wir eAccelerator für unser System
cd eaccelerator-0.9.6
phpize
./configure
make
make install
Nachdem diese Schritte abgeschlossen sind, teilen wir unserem PHP mit, dass wir gerne eAccelerator verwenden möchten. Dazu legen wir eine neue ini Datei in unserem Standard PHP Verzeichnis an
vi /etc/php5/conf.d/eaccelerator.ini
Die gerade erstellt eaccelerator.ini befüllen wir nun mit folgendem Standard-Inhalt:
extension="eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
Genaure Informationen zu den Einstellungen findet ihr Hier
Der Wert “eaccelerator.shm_size” definiert den maximalen Speicher, welchen sich eAccelerator nehmen darf und sollte daher behutsam angepasst werden.
Damit eAccelerator auch die Cachefiles auf unser Festplatte ablegen darf, erstellen wir den Ordner, den wir in der .ini Datei konfiguriert haben (/var/cache/eaccelerator) und vergeben auch die entsprechenden Rechte.
mkdir /var/cache/eaccelerator
chmod 777 /var/cache/eaccelerator
Als letzten und abschließenden Schritt starten wir nun unseren Apache neu:
apache2ctl restart
oder
/etc/init.d/apache2 restart
eAccelerator Controlpanel aktivieren
Danke an Peter für den Tipp und die Beschreibung für das Controlpanel
Die Datei control.php muss lediglich aus dem Verzeichnis /usr/src/eaccelerator-0.9.6 in das Webserververzeichnis kopiert werden:
cp /usr/src/eaccelerator-0.9.6/control.php /var/www/
Nun editieren wir die Datei control.php…
vi /var/www/control.php
…und ändern die Logininformationen, mit denen auf control.php zugegriffen werden kann (“admin” und “eAccelerator” entsprechend ersetzen)
$user = “admin“;
$pw = “eAccelerator“;
Als Abschließenden Schritt muss dem Controlpanel noch die notwendige Berechtigung gewährt werden, um Daten aus eAccelerator auszulesen und auch Kommandos zu senden. Dazu bearbeiten wir die Datei eaccelerator.ini…
vi /etc/php5/conf.d/eaccelerator.ini
…und ergänzen diese um folgenden Eintrag
eaccelerator.allowed_admin_path="/var/www/control.php"
Jetzt noch den Apache neu starten und das Controlpanel kann über http://www.mein-server.org/control.php aufgerufen werden.
Webserver (LAMP) Installation unter Debian 5 (Lenny) und Ubuntu
Ich möchte in diesem Guide beschreiben wie ihr unter Debian 5 – Codename “Lenny” und Ubuntu einen voll funktionsfähigen Webserver mit php, mysql, und Java Support in wenigen Schritten installieren könnt.
Paketlisten aktualisieren
Um zu gewährleisten, das ihr auch die richtigen, und aktuellen Pakete erhaltet, ist zu empfehlen mit folgendem Befehl eure Paketlisten upzudaten:
apt-get update
Installation des Apache Webserver (Version 2.2)
Mit folgendem Befehl wir der standard Apache Server 2.2 ohne zusätzliche Module installiert und gleich gestartet. Wir haben somit bereits einen lauffähigen Webserver, der HTML Dateien wiedergeben kann.
apt-get install -y apache2
Um dies zu testen, könnt ihr in einem Browser die IP eures Servers eingeben. Die Standard Webseite des Apache ( /var/www/index.html ) wird aufgerufen und sagt euch nur: It works!
Installation der PHP module für Apache
Da uns die Ausführung von stinknormalen html Dateien nicht reicht, und wir natürlich auch php Files ausführen möchten, installieren wir folgende Pakete zum Apache Webserver hinzu.
apt-get install -y libapache2-mod-php5 php5-cli php5-common php5-cgi
Als ganz großen Tipp für die Beschleunigung von PHP unter Apache empfehle ich eAccelerator, über den ihr Hier einen Guide findet.
Installation der MySQL Datenbank
Wenn ihr auf eurem Server mit Datenbanken arbeiten wollt, bzw. Datenbanken zur Verfügung stellen möchtet, dann wird der MySQL-Server mit folgenden Paketen installiert.
apt-get install -y mysql-server php5-mysql
Während dem Installationsvorgang werdet ihr in einem blau hinterlegtem Bildschirm dazu aufgefordert, das MySQL-Root Passwort zu setzen. Ich empfehle, dies auch zu tun.

Nach der Bestätigung des Passworts ist die Installation des MySQL Servers abgeschlossen. › Continue reading
Letzte Artikel
Translator

News Empfehlungen
- Wireshark mit zahlreichen Verbesserungen (heise open news)
- Red Hat: Mit der Cloud zur Platform as a Service (Linux-Magazin Online News)
- Bossie Awards 2010: Beste Open-Source-Software-Pakete des Jahres (TecChannel | Alle News)
- Kritische Lücken bleiben immer öfter ungepatcht (heise Security)
- Apple Special Event findet am 1. September statt (hack2learn)







