Apache HomemitPerl Home  PHP HomeMySQL Home

 


Einleitung

Der Apache Web-Server ist der am häufigst eingesetzte Webserver der Welt. Das gilt insbesondere für seinen großen Bruder auf Unix oder Linux-Rechnern. Für die professionelle Arbeit auf Windowssystemen etablierte sich dagegen besonders in den USA der Internet Information Server, kurz IIS genannt. Sicherlich ist der Apache für Windows (hier Version 1.3.12 und 1.3.14) noch nicht die optimale Serverlösung auf Microsoftsystemen.

Dagegen ist der Win Apache ein mächtiges Werkzeug für Entwickler. Programmierer serverunterstützter Sprachen und Anwendungen wie Perl, PHP oder SSI können bequem am HomePC ihre Scripte und Module testen und vorstellen. Der Autor selbst benutzt diesen Webserver sowohl auf MS Windows als auch unter Linux, um Scripte an verschiedenen Orten programmieren und präsentieren zu können. Dabei stellte ich fest, dass die Konfiguration in der aktuellen Fachliteratur nicht immer richtig dargestellt wurde. Deshalb kam ich auf die Idee, den von mir benutzten Apache 1.3.12 für Windows inklusive PHP4 und Perl als Download anzubieten, damit auch Einsteiger in die Webprogrammierung die Möglichkeit erhalten, ohne große Vorkenntnisse in die Apache-Welt einzustauchen. Auch jene, die sich näher mit dem Apache auseinandersetzen wollen, können hier Anregungen zu einer weiteren Konfiguration finden. Allerdings liegt der Schwerpunkt auf der Webprogrammierung, sicherheitstechnische Einstellungen kommen hier zu kurz. Getestet wurde die vorliegende Version auf Windows 98 und Windows 2000.          


Die Downloads

Das Download beinhaltet den Apache 1.3.14 für Windows inklusive PHP4 und PERL. Das Download muss nicht installiert, sondern lediglich wie unten beschrieben entpackt werden. Achtung: Die Konfiguration wurde für eine C:\ Festplatte konzipiert. Solltet ihr eine andere Festplatte benutzen, beispielsweise d:\ , so müssen nach dem Entpacken die Datei im httpd.conf im Verzeichnis 'apache\conf' sowie die php.ini im Verzeichnis 'apache\php4' über einen Editor (z.B. WordPad) aktualisiert werden. Verändert alle dort aufgeführten Pfade mit 'c:\ (...)' beispielsweise auf 'd:\ (...)'.

WinApache1.3.12.zip (3,56 MB) Vorkonfigurierter Apache 1.3.12 für Windows mit PHP4 + Perl
WinApache1.3.14.zip (3,72 MB) Vorkonfigurierter Apache 1.3.14 für Windows mit PHP4 + Perl
WinApachephpperl5.zip (7,43 MB) Vorkonfigurierter Apache 1.3.14 mit perl 5.004 und php3/php4
mysql-shareware-3.22.34-win.zip (5,04 MB) MySQL 3.22.34 small für Win32 (98) 
mysql-3.23.38-win.zip (11,70 MB) Empfehlung! MySQL 3.23.38 für Win32 (98/2000/NT) 
 

Hier gelangt ihr zum neuen Apache 1.3.20 + PHP 4.0.5 + Perl 5.0 

 

 

Das Datenkomprimierungsprogramm Winzip
WinZip 7.0 (7,90 MB)


Die Installation des Win Apache

Bitte unbedingt den Anweisungen folgen, da sonst der so konfigurierte Apache nicht richtig läuft! PHP4 und Perl sind schon integriert.


Die Installation von MySQL

Installiert den MySQL-Server bitte unbedingt auf "Festplatte:\mysql" (z.B. c:\mysql)!

Installation von MySQL 2_23_25 beta (empfohlen bei NT/2000)


Der kleine Unterschied

Der Apache-Webserver ist in drei Sektionen aufgeteilt. Die erste Sektion (Section 1: Global Environment) konfiguriert die globalen Variablen des Servers. Hier wird die Funktionstüchtigkeit des Servers sichergestellt, beispielweise durch den Status (ServerType) oder durch den absoluten Pfad (ServerRoot) zum Webserver. Bei der zweiten Sektion (Section 2: Main Server Configuration) wird es dann richtig interessant. Hier werden die Funktionsweisen des Servers bestimmt. So richtet man den Pfad zum Hauptdokumentenverzeichnis der Webseiten ein (DocumentRoot) und zeichnet die grundlegenden Funktionseigenschaften (Options) aus. In der letzten Sektion (Section 3: Virtual Hosts) werden schließlich die virtuellen Hosts als IP- oder NonIP-VirtualHosts eingerichtet. Auch hier können die Funktionseigenschaften der Hosts eingeschränkt oder erweitert werden. Der Autor hat in der Konfiguration für den hier angebotenen Apache nur unbedingt notwendige Änderungen vorgenommen, eben der kleine Unterschied, auch um die angestrebte Kompatibilität zu den einzelnen Windowssystemen nicht zu gefährden. Vorab schon Mal meine httpd.conf und meine php.ini als HTML-Ansicht.                  

Perl als CGI in der httpd.conf 

Mit der Konfiguration von "Options All" im in der "Main Server Configuration" wurde auch die Ausführung von CGI mit ExecCGI gestattet. Danach zeichnete ich den dazugehörigen Handler mit "AddHandler cgi-script .cgi" sowie "AddHandler cgi-script .pl" aus. Zusätzlich habe das 'cgi-bin' im Apache - Hauptverzeichnis als ScriptAlias gekennzeichnet, was allerdings nicht unbedingt notwendig wäre:

<Directory "c:/apache/cgi-bin">
AllowOverride None
Options All
</Directory>

Die perl.exe und zwei dll's befinden sich unter c:\apache\perl. ActivePerl sowie alle weiteren Module am besten in dieses Verzeichnis installieren. Ich habe hier auf so feine Sachen wie ActivePerl verzichtet, da das Download einen Umfang von über 10 MB erreicht hätte. Solange keine Einschränkungen der Funktionseigenschaften in Sector 3: Virtual Hosts vorgenommen werden, sind die CGI's überall im DocumentRoot ausführbar. Bitte vergesst nicht, dass die Perlprogramme als CGI in der ersten Zeile unbedingt den korrekten Pfad zur perl.exe beinhalten müssen, hier c:\apache\perl\perl.exe. 

Server Sides Include (SSI) in der httpd.conf

Mit "Options All" wurde auch die Ausführung von SSI gestattet. Es bedarf nur noch der Kennzeichnung des Handlers mit: 

# To use server-parsed HTML files
#
AddType text/html .shtml
AddHandler server-parsed .shtml
AddHandler server-parsed .html

PHP4 in der httpd.conf

PHP wurde hier anders als Perl nicht als CGI gekennzeichnet, sondern wird mit den Endungen *.php oder *.php4 direkt vom Webserver unterstützt. Dafür zuständig sind die Zeilen: 

AddType application/x-httpd-php .php
AddType application/x-httpd-php .php4

Die php.exe befindet sich unter c:\apache\php. Der korrekte Pfad der Applikation wurde in der httpd.conf sichergestellt mit:

Action application/x-httpd-php /php4/php.exe

Die Startseiten unter "DirectoryIndex" wurden wie folgt ergänzt:

# DirectoryIndex: Name of the file or files to use as a pre-written HTML
# directory index. Separate multiple entries with spaces.
#
DirectoryIndex index.html index.htm index.php index.shtml

Damit wäre die httpd.conf für PHP4 fertig. Wie schon bei Perl die neuen PHP4-Module in das entsprechende Verzeichnis, hier c:\apache\php4, kopieren.  Alle weiteren Einstellungen müssen in der php.ini vorgenommen werden.

PHP4 in der php.ini

Die php.ini befindet sich im Verzeichnis: Festplatte:\apache\php4. Folgende Änderungen wurden vorgenommen:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
include_path = ; UNIX: "/path1:/path2" Windows: "\path1;\path2"
doc_root = c:\apache ; the root of the php pages, used only if nonempty
user_dir = ; the directory under which php opens the script using /~username, used only if nonempty
;upload_tmp_dir = ; temporary directory for HTTP uploaded files (will use system default if not specified)
upload_max_filesize = 2097152 ; 2 Meg default limit on file uploads
extension_dir = c:\apache\php4 ; directory in which the loadable extensions (modules) reside
enable_dl = On ; Whether or not to enable the dl() function.
; The dl() function does NOT properly work in multithreaded
; servers, such as IIS or Zeus, and is automatically disabled
; on them.

Damit wurden also nur die richtigen Pfade sichergestellt. Welche Module ihr benutzen wollt, müsst ihr selbst entscheiden. Hierzu reicht die Wegnahme des Semikolons vor den Modulen in der php.ini.

MySQL

MySQL-Datenbanken können über Perl- oder PHP-Module angesteuert werden. MySQL wird damit nicht direkt vom Apache-Webserver unterstützt. Zusätzliche Perl und PHP4-Module können natürlich nachträglich in die gekennzeichneten Verzeichnisse der Applikationen eingefügt werden. In meinem Fall wird die Verbindung zu dem MySQL-Server einzig über PHP4 hergestellt. Die notwendigen Einstellungen in der php.ini für die Unterstützung von MySQL lauten hier:

[MySQL]
mysql.allow_persistent = On ; allow or prevent persistent link
mysql.max_persistent = -1 ; maximum number of persistent links. -1 means no limit
mysql.max_links = -1 ; maximum number of links (persistent+non persistent). -1 means no limit
mysql.default_port = ; default port number for mysql_connect(). If unset,
; mysql_connect() will use the $MYSQL_TCP_PORT, or the mysql-tcp
; entry in /etc/services, or the compile-time defined MYSQL_PORT
; (in that order). Win32 will only look at MYSQL_PORT.
mysql.default_socket = ; default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults
mysql.default_host = ; default host for mysql_connect() (doesn't apply in safe mode)
mysql.default_user = ; default user for mysql_connect() (doesn't apply in safe mode)
mysql.default_password = ; default password for mysql_connect() (doesn't apply in safe mode)
; Note that this is generally a *bad* idea to store passwords
; in this file. *Any* user with PHP access can run
; 'echo cfg_get_var("mysql.default_password")' and reveal that
; password! And of course, any users with read access to this
; file will be able to reveal the password as well.
    


Links

Apache http://www.apache.org/
PHP http://www.php.net/
PHP-Manuel (dt.) http://www.php-center.de/de-html-manual/
MySQL http://www.mysql.com/
MySQL-Handbuch Guido Stepken http://www2.rent-a-database.de/mysql/
phpMyAdmin http://www.phpwizard.net/phpmyadmin/
Perl http://www.perl.org/
ActivePerl http://www.perl.com/
Apache (Win) mit mod_perl http://www.perl.com/CPAN-local/authors/Jeffrey_Baker/ (Nur Win NT 4.0 [++] u. Intel CPU)
PHPEd, ein PHP-Editor für Win http://www.soysal.com/PHPEd/download.php3
PHP Edit, ein erweiterter PHP-Editor http://www.phpedit.com/
 

Unser Buch

Worüber? Natürlich über den Apache Webserver. Wir sind Oswald und ich. Darin verarbeiten wir so gut wie uns möglich alle eure Fragen, die wir im Moment leider nicht beantworten konnten. Und was wird nun im Buch behandelt? Neben einer ausführlichen Grundkonfigration gibt es den Perl-Apache auch mit mod_perl, den PHP-Apache auch mit mod_php, einen Java-Apache+Tomcat-Server, C-Programme unter dem Webserver und vieles mehr. Wir gehen auf die Zusammenarbeit mit MySQL, einem FTP- und einem SMTP-Server ein. Und natürlich alles zum Thema Sicherheit mit mod_access sowie mod_ssl+openssl und Firewall. Die Betriebssysteme sind Linux und Windows. Erscheinen wird das Buch voraussichtlich Winter 2001 im mitp-Verlag. Vorher habe ich Euch aber den neuen Apache 1.3.20 mit PHP 4.0.5 und Perl 5.0 reingelegt, quasi als kleine Gegenleistung für die ganzen unbeantworteten Mails. Zeit ist leider das, was ich im Moment überhaupt nicht habe, ich bitte um euer Verständnis. Und zum Schluß: Das Inhaltsverzeichnis unseres Buches veröffentlichen wir demnächst hier. Und so heißt es einfach: Viel Spaß!


Kontakt

Nobody is perfect. Euer kay@vogelgesang-berlin.de.



Unsere Homesite

© 2000-2001 Kay Vogelgesang


Zurück zur Hauptseite