Apache und Windows/XP

Beschreibung zum einrichten des Apache2 unter Windows 2000/XP

Als erstes müsst ihr euch den Apache downloaden .Nachdem ihr das gemacht habt geht es weiter zur Installation des Apache. Antworten bezüglich des ausführens von PHP oder SSI Befehlen in einfachen HTML-Dateien findet man im Forum ebenso das einrichten einer SSL-Verbindung für den Apache2.

Installation:

Installation starten 2x auf "Next" klicken bei Network Domain und Server Name die entsprechenden Eintragungen machen. Bei Administrators E-Mail Adress geben sie ihre E-Mailadresse an.

hier ein Beispiel: ( Sie wollen das der Apache nur im Netzwerk erreichbar ist )

Network Domain:  local
Server Name:       local

Falls der Apache auch über das Internet erreichbar sein soll dann tragen sie ihre Daten ein. Es besteht natürlich auch die Möglichkeit den Apache nach der Installation noch Internetfähig zu machen dazu müssen Sie lediglich eine kleine Änderung in der httpd.conf  machen dies wird unter dem Menüpunkt [Apache über das Internet erreichen] beschrieben. Sie werden danach gefragt in welchen Pfad der Apache installiert werden soll dies können Sie selbst entscheiden damit wäre die Installation auch schon abgeschlossen. Der Apache wird daraufhin gestartet wenn alles geklappt hat erscheint rechts unten in der Taskleiste ein Symbol dieses sollte grün sein falls es rot ist konnte der Apache nicht gestartet werden. Auf den Apache kann jetzt schon zugegriffen werden geben Sie dazu folgendes in ihren Browser ein  http://localhost  daraufhin bekommen Sie eine Seite angezeigt mit der Meldung  ES KLAPPT DER WEBSERVER ... . Alle Dokumente kommen in das Verzeichnis htdocs dies ist das Rootverzeichnis des Apache. Sicherlich wollen Sie nicht nur Dokumente anzeigen lassen sondern auch Scripte ausführen wie z.B. CGI - PHP dafür muss der Apache aber erst eingerichtet werden wie das geht zeige ich euch hier. 

Perlscripte auf dem Apache ausführen:

Zuerst müsst ihr euch Active Perl downloaden danach folgt die Installation von Perl wenn dies geschehen ist öffnet ihr die httpd.conf  und sucht nach folgenden Eintrag :

# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#

und tragen Sie folgendes ein

# CGI-Script Einstellungen
ScriptInterpreterSource registry
AddHandler cgi-script .cgi .pl

ScriptAlias /cgi-bin/ "Hier kommt der absolute Pfad zu ihren cgi-Verzeichnis rein"

#
# should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "Pfad zum cgi-Verzeichnis">
AllowOverride all
Options None
Order allow,deny
Allow from all

</Directory>

damit ist der Apache eingerichtet um Perlscripte auszuführen eine Anpassung der Scripte ist in der Regel nicht mehr nötig (Shebangzeile).

Hier ein kleines Beispiel:

# CGI-Script Einstellungen
ScriptInterpreterSource registry
AddHandler cgi-script .cgi .pl

ScriptAlias /cgi-bin/ "D:/SERVER_2.0/Apache2/cgi-bin/"

#
# "D:/SERVER_2.0/Apache2/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "D:/SERVER_2.0/Apache2/cgi-bin">
AllowOverride all
Options None
Order allow,deny
Allow from all

</Directory>

Sollten die CGI-Scripte dennoch nicht ausgeführt werden so ändern Sie die Shebangzeile im Script und tragen Sie den absoluten Pfad zur Perl.exe ein (z.B. c:/perl/bin/perl.exe).

Einrichten von PHP auf dem Apache:

Laden Sie sich das aktuelle PHP-Package herunter ,dies gibt es in zwei Versionen einmal als CGI und als Modul .Hier beschreibe ich die Installation der CGI-Version da die Modulversion noch nicht zu 100 Prozent unterstützt wird.

Mit einen Doppelklick auf die herunter geladene Datei die Installation starten ----> den Installationstyp wählen (Standart oder Advanced)  ----> Installationspfad wählen ----> Einstellungen für die Mailfunktion machen (falls erwünscht) ----> Den Servertyp auswählen (Apache) und diese Eingaben bestätigen. Um Phpscripte ausführen zu können muss noch eine Änderung in der httpd.conf gemacht werden suchen Sie folgende Zeile 

# should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.

und geben Sie darunter folgendes ein

ScriptAlias /php/ "Pfad zum Php-Verzeichnis/"
AddType application/x-httpd-php .php .php4 .phtml

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

jetzt ist der Apache für PHP eingerichtet (CGI-Version) falls Sie die Modul Version von PHP einrichten wollen dann schauen Sie auf der Website von PHP nach dort sind verschiedene Lösungen zur Einrichtung aufgelistet. Um Einstellungen in PHP vorzunehmen suchen Sie in ihren Windows -Rootverzeichnis nach der Datei php.ini und passen sie die Datei nach ihren Wünschen an. Wenn einige Phpscripte nicht ausgeführt werden sollten dann setzen sie den Wert register globals in der php.ini auf [ on ].

MySql installieren:

Downloaden Sie sich die aktuellste Version von MySql herunter entpacken sie und starten die Installation. Nachdem Sie das getan haben wechseln Sie in das Verzeichnis in welches sie MySql installiert haben und gehen in den Ordner bin (z.B. C:mysqlbin) hier starten Sie die folgende Datei winmysqladmin.exe geben Sie jetzt Benutzernamen und Kennwort ein. Das Eingabefenster verschwindet jetzt und es taucht ein kleines Icon in der Taskleiste auf in Form einer Ampel wenn sie auf grün steht ist die Installation erfolgreich verlaufen. Damit der MySql-Server bei jeden Neustart automatisch startet erstellen Sie eine Verknüpfung im Autostartordner mit folgender Datei mysqld.exe .

Passwort geschützte Bereiche festlegen:

Um geschützte Bereiche festzulegen werden folgende Dateien benötigt  .htpasswd und .htaccess .

Die htaccess -Datei:

Öffnen Sie Notepad oder einen anderen ASCII Editor und schreiben Sie folgende Zeilen in diese Datei

AuthName Kennworteingabe
AuthType Basic
AuthUserFile absoluter Pfad zur .htpasswd/.htpasswd
require valid-user

hier ein Beispiel: (Der Apache ist unter d:apache2 installiert und ihr wollt das Verzeichnis admin schützen dann müsst ihr folgendes eintragen)

AuthName Kennworteingabe
AuthType Basic
AuthUserFile d:/apache2/htdocs/admin/.htpasswd
require valid-user

speichert die Datei jetzt unter folgenden Namen ab .htaccess (Wichtig der Punkt muss davor gemacht werden ebenfalls darf keine Dateiendung verwendet werden) Die htpasswd kann natürlich auch wo anders liegen.

Die htpasswd -Datei:

In dieser Datei liegt das eigentliche Passwort mit dem dazugehörigen Benutzernamen diese zu erstellen ist wieder ganz einfach. Öffnen Sie die Eingabeaufforderung und wechseln sie in ihr Apache-Verzeichnis in den Ordner bin geben Sie folgendes ein (Ich gehe wieder vom obrigen Beispiel aus) 

htpasswd -c d:apache2htdocsadmin.htpasswd "Hier kommt ihr Benutzername hin"

jetzt wird nach dem Passwort gefragt dieses eingeben und nochmal bestätigen (Ganz wichtig der Punkt vor htpasswd muss gesetzt werden). Damit hätten wir es geschafft ,wenn wir das Verzeichnis admin über den Browser ansteuern verlangt der Apache erst den Benutzernamen und das Passwort. Um Benutzer hinzuzufügen die gesamte Zeile nochmal eingeben jedoch ohne -c .

Apache2 und SSI:

Was sind SSI (Server Side Includes) deren Aufgabe besteht bestimmte Aktionen Serverseitig auszuführen wie zum Beispiel die Ausgabe des aktuellen Datums und das mit sehr geringen Aufwand. So etwas ist zwar auch mit CGI-Scripten zu erreichen jedoch mit viel höheren Aufwand. Der Nachteil von SSI hingegen ist das der Webserver dafür eingerichtet werden muss und eine allgemeine höhere Belastung des Servers. Aber das soll uns nicht abhalten den Apache2 dafür einzurichten. Um dies zu tun muss wie soll es auch anders sein eine Änderung in der httpd.conf gemacht werden. Öffne die Konfigurationsdatei des Apache und suche nach folgenden Einträgen und ändere sie wie angegeben.

# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
Options Indexes Includes FollowSymLinks

# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
AddType application/x-tar .tgz
AddType text/html .shtml

# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddOutputFilter INCLUDES .shtml

Damit ist die Einrichtung von SSI abgeschlossen im nächsten Abschnitt erfährst du wie man die SSI Befehle in die Webseite integriert und welche Befehle es gibt.

Kommando Parameter
#config errmsg="Fehlermeldung"
sizefmt="abbrev(kb)" "bytes"
timefmt="Wert"
#exec cmd="Url/Pfad"  oder cgi="Url/Pfad"
#fsize file="Url/Pfad"  oder virtual="Url/Pfad"
#flastmod file="Url/Pfad"  oder virtual="Url/Pfad"
#include file="Url/Pfad"  oder virtual="Url/Pfad"
#echo var="Umgebungsvariable (CGI)"

Eine Liste der möglichen Parameter findet ihr hier. Die Einbindung in eine HTML-Seite könnte so lauten:   (dieses kommt in den Body-Tag der Seite)

Aufbau:  <!--#Kommando=  "Parameter"-->

<!--#include virtual="text.txt-->      hier würde zum Beispiel eine Textdatei eingebunden

<!--#config errmsg="Ein Fehler ist aufgetreten!"-->
<!--#echo var="SERVER_NAME"-->                                   Ausgabe des Servernamens

Dies sind natürlich nur einige Beispiele, damit der Server die Kommandos auch erkennt sollte die Dateiendung auf SHTML oder SHTM lauten da diese die genormt sind.

Den Apache über das Internet erreichen:

Sie wollen ihren eigenen Apache2-Webserver über das Internet erreichen um auf ihre Daten überall zugreifen zu können ohne sich jedes mal die aktuelle IP merken zu müssen? Wie das geht zeig ich euch hier. Zuerst musst du dir bei einen DDNS-Provider ein Konto einrichten und dir eine Clientsoftware herunterladen die deine aktuelle IP-Adresse an den Provider schickt wenn das geschehen ist geht es zur Einrichtung des Apache. Suche nach folgenden Eintrag in der Konfigurationsdatei des Apache

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If this is not set to valid DNS name for your host, server-generated
# redirections will not work. See also the UseCanonicalName directive.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
# You will have to access it by its address anyway, and this will make
# redirections work in a sensible way.
#
ServerName trinity2000.dyndns.org:80

und trage hier deine Domainadresse die du dir bei den DDNS-Provider angegeben hast (Das Trinity2000.dyndns.org musst du entfernen und durch deine Domainadresse ersetzen) ein. Ab sofort ist dein Rechner unter dieser Domain erreichbar. Für die Einrichtung der Clientsoftware benutzt bitte die darin enthaltene Hilfedatei.

Virtuelle Hosts einrichten:

Für was eigentlich virtuelle Hosts? Nun zum Beispiel für Simulationen und Austesten von Scripten so kann man zum Beispiel Domainnamen einrichten die dann im Intranet laufen l ohne ins Internet zu gehen. Das ganze kann natürlich auch Probleme verursachen vor allen wenn man mit dem Apache ins Netz geht und sich einen Virtuellen Host eingerichtet hat den es im Internet schon gibt.

Hier ein Beispiel:

wir haben uns einen virtuellen Host mit dem Namen www.test.de eingerichtet wenn wir dieses in unseren Browser eingeben werden wir nicht auf die echte Domain weitergeleitet sondern zu unseren virtuellen Host.

So aber nun genug mit der Theorie und endlich zur Praxis. Als erstes müssen wir die hosts Datei editieren diese befindet sich im Windowsroot unter SYSTEM32DRIVERSETC. Diese öffnen wir auch gleich am besten mit Notepad oder einen anderen ASCII-Editor und tragen unsere gewünschten virtuellen Hosts ein. Dies könnte dann etwa so aussehen

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Dies ist eine HOSTS-Beispieldatei, die von Microsoft TCP/IP
# für Windows 2000 verwendet wird.
#
# Diese Datei enthält die Zuordnungen der IP-Adressen zu Hostnamen.
# Jeder Eintrag muss in einer eigenen Zeile stehen. Die IP-
# Adresse sollte in der ersten Spalte gefolgt vom zugehörigen
# Hostnamen stehen.
# Die IP-Adresse und der Hostname müssen durch mindestens ein
# Leerzeichen getrennt sein.
#
# Zusätzliche Kommentare (so wie in dieser Datei) können in
# einzelnen Zeilen oder hinter dem Computernamen eingefügt werden,
# aber müssen mit dem Zeichen '#' eingegeben werden.
#
# Zum Beispiel:
#
# 102.54.94.97 rhino.acme.com # Quellserver
# 38.25.63.10 x.acme.com # x-Clienthost

127.0.0.1 localhost
192.168.0.1 www.testserver.de

die rot markierte IP muss die IP des Apache im Netzwerk sein jetzt nur noch die Änderungen in der hosts-Datei speichern. Oder benutzt die folgende Batch-Datei so erspart ihr euch die Klickerei. Danach legen wir im Rootverzeichnis des Apache folgenden Ordner an TESTSERVER in diesen wiederum ein Ordner mit dem Namen LOGS. Wenn das geschehen ist geht es weiter zur Einrichtung des Apache suchen Sie nach folgenden Eintrag in der httpd.conf und machen folgende Änderungen: (Ich gehe vom oberen Beispiel aus)

# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.0/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#

NameVirtualHost 192.168.0.1

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost www.testserver.de>
 ServerName www.testserver.de
 DocumentRoot "D:/server_2.0/apache2/htdocs/testserver/"
 ErrorLog "D:/server_2.0/apache2/htdocs/testserver/logs/error_log"
</VirtualHost>

Die rot markierten Einträge müssen durch ihre eigenen Pfadangaben ersetzt werden. Wenn alle Einstellungen gemacht sind geben wir folgendes in den Browser ein www.testserver.de damit wäre die Einrichtung des virtuellen Hosts abgeschlossen.

Hinweis:

Falls die virtuellen Hosts nicht funktionieren sollten dann überprüfen Sie folgendes:

  • haben Sie alle Ordner im Root des Apache angelegt

  • haben Sie alle nötigen Einstellungen in der hosts-Datei gemacht

  • haben Sie alle nötigen Einstellungen in der httpd.conf gemacht

  • haben Sie den DNS-Client gestartet und die richtige IP angegeben

Eigene Fehlerdokumente anzeigen:

In diesen Abschnitt geht es darum den Apache das anzeigen von eigenen Fehlerdokumenten zu ermöglichen. Dies ist vor allem dann zu empfehlen wenn einen die Standartfehlermeldungen entweder nicht gefallen oder sie zu wenig über den Fehler aussagen. Eine Ausführung eines Scripts oder das Anzeigen einer einfachen Textausgabe  ist natürlich auch möglich. Dabei gibt es zwei Möglichkeiten einmal über das direkte verändern der Fehlerseite oder über die htaccess-Datei letzteres ist natürlich einfacher und zugleich flexibler. Alles was wir dafür brauchen ist ein ASCII-Editor wie zum Beispiel Notepad.

1. MÖGLICHKEIT:

(anzeigen per .htaccess)

Öffnen Sie ihren ASCII-Editor und tragen sie folgendes ein:

ErrorDocument 401 http://www.meinedomain.de/fehler.htm
ErrorDocument 404 http://www.meinedomain.de/fehler404.php
ErrorDocument 403 http://www.meinedomain.de/cgi-bin/test.cgi
ErrorDocument 500 "Es ist ein interner Serverfehler aufgetreten"

ersetzen Sie die rot markierten Einträge durch ihre und speichern Sie diese Datei unter den Namen .htaccess ab. Die Anpassung ihrer Fehlerdokumente ist ihnen überlassen ebenfalls wie die Erweiterung der Fehlerdokumente.

2. MÖGLICHKEIT:

(originale Fehlerdokumente bearbeiten)

Gehen Sie dazu in das Verzeichnis in dem sie den Apache installiert haben und öffnen folgenden Ordner mit dem Namen Error darin befinden sich alle Fehlerdokumente, diese haben die Dateiendung (var). Um die Fehlerdokumente zu bearbeiten öffnen sie diese mit einen ASCII-Editor und nehmen Sie die gewünschten Einstellungen vor. Der Quelltext dieser Fehlerdokumente sieht dann etwa so aus:

Content-language: de
Content-type: text/html
Body:----------de--
<!--#set var="TITLE" value="Die von Ihnen angeforderte Seite konnte nicht gefunden werden. Bitte überprüfen Sie ihre Eingaben" -->
<!--#include virtual="include/top.html" -->
----------de--

Dies ist aber nur ein Beispiel und soll zeigen das dies auch ohne Eintrag in die htaccess-Datei funktioniert.

Erfahrungen

Es sind noch keine Kommentare vorhanden.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe

Verwandte Beiträge

Wird geladen... Bitte warte.
Wird geladen... Bitte warte.

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen