Übersicht Apache auf Windows
Der Apache HTTP-Server ist mit 56% der weltweit am weitesten eingesetzte Web-Server wie die Statistik von Netcraft zeigt. Apache wird als Open-Source-Projekt (http://httpd.apache.org) entwickelt.
Ich nutze Apache auf meinem Notebook unter Windows2000 als Entwicklungssystem.
- Der Apache WebServer für Windows
- PHP mit Apache
- Perl mit Apache
- WebDAV mit Apache
- Zugriffskontrolle über Username und Passwort: Authentification mit Apache
- Servlets mit Apache
Weitere Einzelheiten: http://blog.kr8.de/Wiki-PHP
Einrichtung des Apache Web Servers (HTTP-Server)
Apache 1.3.29 ist für Windows als "Binary Distribution" erhältlich von:
Unter Windows2000 und WinXP kann es als Service laufen, unter Win98 nicht.
Die wichtigsten Konfigurierungen werden in der Datei httpd.conf vorgenommen. Ich habe folgendes individuell eingestellt:
- DocumentRoot
- ServerAdmin
- LanguagePriority
PHP mit Apache
PHP ist ein Open-Source-Projekt ("Apache Sister Project") http://www.php.net.
Die Binaries gibt es bei: http://www.php.net/downloads.php.
Mit Apache als Webserver kann PHP entweder als "klassische CGI-Version" oder als Server-API-Erweiterung ("SAPI") installiert werden. Ich beschreibe hier zunächst die für Windows als stabilere Variante empfohlende CGI-Installation.
1. PHP4 unter Windows installieren und konfigurieren
PHP wird von www.PHP.net downgeloaded und installiert in d:\php.
Dann werden folgende Eintragungen in der Konfigurationsdatei php.ini vorgenommen:
Schritt | Eintragung | Erläuterung |
(a) | engine = On | Enable the PHP scripting language engine under Apache. |
(b) | include_path = ".;d:\php\pear" | (nichts Apache-spezifisches) |
(c) | doc_root = | The root of the PHP pages (Wenn leer, identisch mit Apache Doc Root) |
(d) | extension_dir = d:\php\extensions | Directory in which the loadable extensions (modules) reside. |
(e) | extension=php_db.dll | |
(f) | extension=php_gd.dll | |
(g) | ... |
2. Apache konfigurieren
In die Konfigurationsdatei httpd.conf wird eingetragen:
Schritt | Eintragung | Erläuterung |
(a) | ScriptAlias /php/ "d:/php/" | |
(b) | AddType application/x-httpd-php .php | |
(c) |
Action application/x-httpd-php "/php/php.exe"
|
Hier wird dem in Schritt (b) definierten MIME-Typen als Applikation das php.exe zugeordnet. Dabei wird der in Schritt (a) definierte ScriptAlias /php/ verwendet. |
3. Testen der Apache-PHP-Konfiguration
Ok, let's test if you got PHP working.
Create a file named phpinfo.php in your document root, by default
the htdocs directory in your main Apache directory.
Add the line to your new file:
<?php
phpinfo();
?>
Open your browser and type http://localhost/phpinfo.php (or: phpinfo.php), you will see if the installation is successful. You should now get a page full of useful information up.
If you don't get the page up, you messed it.
Weitere Infos zu PHP: http://www.phpbuilder.org
4. Apache-PHP-Konfiguration als SAPI
Ok, let's test if you got PHP working.
Create a file named phpinfo.php in your document root, by default
the htdocs directory in your main Apache directory.
Add the line to your new file:
In die Konfigurationsdatei httpd.conf wird eingetragen:
Schritt | Eintragung | Erläuterung |
(a) | LoadModule php4_module d:/php/sapi/php4apache.dll | |
(b) | AddModule mod_php4.c | |
(c) | AddType application/x-httpd-php .php |
Das Hauptmodul php4apache.dll benötigt das zentrale PHP-Modul php4ts.dll. Das wird zunächst in \WINNT\system32 gesucht, wenn man es dahin nicht kopieren möchte, kann man es auch in den gleichen Ordner wie php4apache.dll kopieren:
copy d:/php/php4ts.dll d:/php/sapi/php4ts.dll
Nun den Apache neu starten und ab geht es...
Perl mit Apache
Das Apache-Perl-Integrationsprojekt findet man unter http://perl.apache.org .
Fertige Binaries unter http://perl.apache.org/distributions.html.
Die Win32-Binaries unter Binary Distribution von dort das neuste selbstextrahierende perl-win32-bin-x.x.exe herunterladen und readme konsultieren.
Neu: Durchgesetzt hat sich die Windows-Perl-Version von http://www.activestate.com
1. Download perl-win32-bin-0.7.exe
2. Extrahieren in einen temporären Ordner
3. Die Unterordner Perl, Apache und Openssl verschieben nach C:\Perl, C:\Apache und C:\Openssl
4. Aus C:\Perl die Dateien libdb.dll, zlib.dll und expat_win32.dll in einen Order, der im PATH liegt verschieben.
5. Im Autoexec.bat des PATH erweitern um: c:\perl\bin und c:\openssl\bin.
6. Das neue Apache starten: apache.exe -k start
7. Test der Installation
Zum Testen brauchen wir einen Script-Ordner, den Apache auch kennt und darin ein paar Perl-Scripts zum testen.
(a) Als Script-Ordner richten wir perl in httpd.conf ein:
Alias /perl/ "d:/webshare/wwwroot/cgi-bin/"
<Location /perl>
SetHandler perl-script
PerlHandler Apache::Registry
Options +ExecCGI
</Location>
(b) Als Test-Script speichern wir dies unter dem Namen hello.pl:
#!/Perl/bin/perl #********************************************************* # Script for printing Hello World # # 1997-10-05 Dietrich Kracht #********************************************************* $CRLF = "\n"; $date = localtime(); #print "Content-type: text/html",$CRLF,$CRLF; print "<html><head>\n"; print "<title>Perl Hallo Welt</title>\n"; print "</head>\n"; print "<body>\n"; print "<center><h1>Hallo Welt, hier bin ich</h1></center>\n"; print "<hr>\n"; print "<p>Hello, world!"; print " It is now: " . $date . "</p>\n"; print "</body></html>\n";
Aufruf des Test-Scripts im Browser:
http://localhost/perl/hello.pl
http://localhost/perl/basepath.cgi
Na, hat das funktioniert?
WebDAV mit Apache
Das WebDAV-Modul ist ebenfalls als Binary für Win98 erhältlich.
http://www.webdav.org/mod_dav/win32/
In der Konfigurationsdatei httpd.conf wird eingetragen:
LoadModule dav_module modules/mod_dav.dll
DavLockDB DavLock
<Location />
Dav On
</Location>
Es funktioniert bestens unter Win98.
Es ist damit HTTP 1.1 und die zusätzliche WebDAV-Funktionalität implementiert.
D.h. es sind Webfolder möglich und WebDAV-Clients wie Word 2000, Excel 2000 und Powerpoint 2000 können direkt zugreifen, Frontpage 2000 mal wieder nicht, weil es zusätzlich die propietären Frontpage-Servererweiterungen benötigt.
Authentification mit Apache
Die einfachste Form des Zugrifsschutzes auf Web-Seiten und Ordner bei Apache ist folgende:
1. Anlegen einer "User-Datei", die Usernamen und verschlüsselte Passwords enthält.
Dafür gibt es das einfache Utility "htpasswd". Dieses befindet sich im Ordner C:\Apache\bin.
Der erste User für eine neues Passwort-Datei wird so angelegt:
htpasswd -c userdatei emil
Es wird die Userdatei "userdatei" neu angelegt, ein user "emil" wird eingetragen. Anschliessend fordert das Utility zur Passworteinabe auf. Das Passwort wird verschlüsselt in der User-Datei abgespeichet.
Der zweite User wird so angelegt:
htpasswd userdatei otto
Danach fordert das Utility wieder zur Passworteingabe auf, uns so weiter....
Wir haben nun eine User-Datei namens "C:\Apache\bin\userdatei" mit zwei Usern.
2. Definieren von Zugrifsberechtigungen für Ordner
In der Konfigurationsdatei "httpd.conf" wird eingetragen:
<Location /IT/intern/Telefon>
AuthName "Intranet Telefon"
AuthType Basic
AuthUserFile /Apache/bin/userdatei
require user emil otto
</Location>
Das Laden irgendwelcher Apache-Module ist für diese Art der Authentification nicht erforderlich.
3. Zugriff auf den so geschützen Ordner
Wenn man jetzt z.B. mit dem Microsoft Internet Explorer auf den Ordner zugreift, erscheint folgendes generisches Login-Fenster:
Servlets mit Apache
JServ war der erste Versuch Servlets bei Apache zu unterstützen und ist jetzt nicht mehr der aktuelle Stand.
Tomcat ist das aktuelle Mittel der Wahl. Es unterstützt Servlets und JSP.
Ursprünglich gedacht als Referenzimplementation von SUN, wird es durchaus auch in echten industriellen Installationen eingesetzt (z.B. freenet.de). Ich selber habe auch praktische Erfahrungen mit Tomcat in einem industriellen Projekt gemacht, über das ich in Kürze hier berichten werde.
Tomcat-Lösung
((demnächst hier))
JServ-Lösung
Um mit dem Apache-Server JavaServlets ausführen zukönnen benötigt man eine Servlet Engine, z.B. "Apache JServ 1.2.2", welches voll das Servlet API 2.0 erfällt.
Apache JServ ist Bestandteil des "Java Apache Project" und benötigt als Voraussetzung:
(a) Eine Java Virtual Machine ab 1.1, also z.B. JDK 1.3
(b) Das Java Servlet Development Kit SDK 2.0
Downloads:
1. Java 2 SDK Standard Edition v1.3
2. Java Servlet Development Kit 2.0
......