Bildung

Ü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.

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

http://localhost/asp/env.html

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

3. ApacheJServ-1.1.2

......

 

 

Dietrich Kracht © 2016 All rights reserved. Page last modified: