Difference between revisions of "Apache"

From Dietrich Blog (Strato)
Jump to: navigation, search
(Replaced content with "This page has been moved to my BLOG at http://blog.kr8.de")
Line 1: Line 1:
{{TOCright}}
+
This page has been moved to my BLOG at http://blog.kr8.de
= Web-Server Apache =
 
Siehe auch: [[Apache2]], [[ApacheDS]]
 
 
 
== Einsatzzweck ==
 
Auf meinem Entwicklungssystem betreibe ich als [[WebServer]]  Apache. Die Einsatzzwecke sind:
 
* Staging-System für meine Web-Sites, die ich dann zu meinen [[WebProvider|Web-Hosting-Providern]] uploaden will
 
* Als Trägersystem ("Application Server") für produktive Anwendnungen
 
** Mein [[WikiWikiWeb]] für das Knowledge-Management: [[WikiWikiWebMain|TWiki]]
 
** Meine Link-Verwaltung [[PhpLinks]]
 
 
 
== Installationen ==
 
=== Installation auf [[ComputerBraunbaer]] ===
 
* Definitive Software Library ID: '''Apache'''
 
* Version: 2.2.4
 
* Betriebsystem: [[WindowsXP]] Professional
 
* Installationsordner: D:\Programme\Apache
 
* Konfigurationsdateien: D:\Programme\Apache\conf\httpd.conf  ----> [[Datensicherung]]
 
** DocumentRoot: E:\var\www\htdocs
 
* Start: Als [[Windows Service]] unter [[WindowsXP]] unter dem Account "kracht"  ????
 
* Authentifizierung, Zusatzmodule,.....
 
 
 
=== Installation auf [[ComputerKragenbaer]] ===
 
* Definitive Software Library ID: '''Apache'''
 
* Version: 2.2.4
 
* Betriebsystem: [[WindowsXP]] Professional
 
* Installationsordner: D:\Programme\Apache
 
* Konfigurationsdateien: D:\Programme\Apache\conf\httpd.conf  ----> [[Datensicherung]]
 
** DocumentRoot: E:\var\www\htdocs
 
* Start: Als Service unter [[WindowsXP]] unter dem Account "kracht"  ????
 
* Authentifizierung, Zusatzmodule,.....
 
 
 
 
 
== Virtual Hosts ==
 
Mit sog. "Virtual Hosts" kann man die Adressierung mehrerer WebSites auf einem Computer (d.h. auf einem Apache) vernünftiger machen. Z.B. so wie es nachher auch beim [[WebProvider]] geschieht.
 
 
 
Beispiel: Zwei Sub-Domains mit [[Typo3]]
 
<br />Zu bedenken sind zwei besondere Punkte:
 
* Namensauflösung: Die ServerNamen müssen über DNS oder sonstwie (hosts-Datei) auf die IP-Adresse des Apache-Servers geleitet werden
 
* Neben den als extra Virtual Hosts eingerichteten WebSites möchte man meistens auch noch auf die sonst noch verhandenen sog. "globalen" Seiten des Apache zugreifen. Man benötigt also eine Art "Default" für den Fall das die "normale" (nicht virtualle) Adresse verwendet wird. Dieser Default-Server muss als erster VirtualHost in der Konfiguration angegeben werden und muss den gleichen ServerName haben, wie der ServerName in der "globalen" Konfiguration.
 
<pre>
 
#
 
# Use name-based virtual hosting.
 
#
 
NameVirtualHost *:80
 
#
 
<VirtualHost *:80>
 
    DocumentRoot "D:/var/www/htdocs"
 
    ServerName localhost
 
    ServerAlias 127.0.0.1
 
</VirtualHost>
 
 
 
<VirtualHost *:80>
 
    ServerAdmin webmaster@wiki.graumann.kr8.de
 
    DocumentRoot "D:/var/www/htdocs/typo3"
 
    ServerName wiki.graumann.kr8.de
 
    ErrorLog logs/wiki.graumann.kr8.de-error_log
 
    CustomLog logs/wiki.graumann.kr8.de-access_log common
 
</VirtualHost>
 
 
 
<VirtualHost *:80>
 
    ServerAdmin webmaster@blog.graumann.kr8.de
 
    DocumentRoot "D:/var/www/htdocs/typo3"
 
    ServerName blog.graumann.kr8.de
 
    ErrorLog logs/bolg.graumann.kr8.de-error_log
 
    CustomLog logs/blog.graumann.kr8.de-access_log common
 
</VirtualHost>
 
</pre>
 
 
 
== NTFS-Filesystem ==
 
Wenn man den Apache-Webserver als Trägersystem für eine Anwendung benutzt, mit der man neue Seiten (neue Dateien) anlegt (Kandidaten: [[Content-Management-System]], Knowledge-Management, konkretes Beispiel: TWiki), muss man sich gut überlegen, unter welchem Windows-Account Apache als Windows-Service laufen soll. Dieser Account wird dann im NTFS-Filesystem nämlicher der Owner der neu-erzeugten Dateien.
 
 
 
Standard-mäßig wird "Lokales Systemkonto" dafür abgeboten, was zur Folge hat, dass man unter seinem eigenen User-Account an so neu-erzeugte Dateien nicht so ohne weiteres heran kommt (Owner=SYSTEM). Wenn Apache auf einer User-Masine läuft, sollte man Apache auch unter dem User-Account laufen lassen. Das sollte das lokale User-Konto sein, wenn man (im Regelfall) ohne Windows-Domain-Anmeldung arbeitet ( User: .\Kracht) und es sollte das Windows-Domain-Konto sein, wenn man damit normalerweise als User arbeitet (User: domainname\username).
 
 
 
Unter meinem Windows 2000 hatte ich den Eindruck, dass die httpd.conf-Eintragungen:
 
* User nobody
 
* Group nobody
 
nichts bewirken.
 
 
 
== Apache Authentifizierung ==
 
Zur Authentifizierung unter Apache dienen User-Id und Passwort. Diese werden in einer Datei  gespeichert, wobei vom Passwort nur ein Hash-Code (MD5 oder SHA1) gespeichert wird.  Diese Datei durch einen Konfigurationsparameter definiert:
 
* Z.B. für [[TWiki]]: AuthUserFile d:/home/kracht/twiki/data/.htpasswd
 
Dieser Parameter kann in der globalen Apache-Konfigurationsdatei ''httpd.conf''  oder in einer lokalen Steuerdatei ''.htaccess'' gesetzt werden.
 
 
 
Der Zugriff auf Ordner und/oder bestimmte Dateien kann in Abhängigkeit von der Authentifizierung erlaubt oder verboten werden. Beispielsweise für TWiki:
 
<pre>
 
<Files "edit">
 
require valid-user
 
</Files>
 
<Files "save">
 
require valid-user
 
</Files>
 
<Files "attach">
 
require valid-user
 
</Files>
 
</pre>
 
 
 
== Perl-Script-Ausführung als CGI ==
 
Test eines Perl-Scripts: [[http://braunbaer.kr8.de/twiki/bin/test.pl|http://braunbaer.kr8.de/twiki/bin/test.pl]]
 
 
 
Zur serverseitigen Ausführung von [[Perl|Perl]]-Scripts sind in der Apache-Konfigurationsdatei sind folgende Eintragungen vorzunehmen:
 
 
 
1. Aktivierung der Script-Ausführung für einen Ordner.
 
Entweder mit der Direktive "ScriptAlias" oder  mit Hilfe von "Options ExecCGI"
 
<pre>
 
<Directory "D:/var/www/htdocs/twiki/bin/">
 
  Options +ExecCGI
 
</Directory>
 
</pre>
 
 
 
2. Perl-Script-Handler hinzufügen: Standard CGI
 
<pre>
 
<Directory "D:/var/www/htdocs/twiki/bin/">
 
  Options +ExecCGI
 
  SetHandler cgi-script
 
</Directory>
 
</pre>
 
 
 
3. Zuordnung des aufzurufenden Programms durch die Shebang-Zeile am Anfang eines jeden Scripts:
 
<pre>
 
#!d:/Programme/cygwin/bin/perl -w
 
</pre>
 
 
 
== Perl-Script-Ausführung vermittels '''mod_perl''' ==
 
In der Apache-Konfigurationsdatei sind folgende Eintragungen vorzunehmen:
 
 
 
1. Aktivierung der Script-Ausführung für einen Ordner.
 
<pre>
 
<Directory "D:/home/kracht/www/twiki/bin/">
 
  Options +ExecCGI
 
</Directory>
 
</pre>
 
 
 
2. Script-Handler hinzufügen: perl_mod
 
<pre>
 
<Directory "D:/home/kracht/www/twiki/bin/">
 
  Options +ExecCGI
 
  SetHandler perl-script
 
  PerlHandler Apache::Registry
 
</Directory>
 
</pre>
 
 
 
== Installation von mod_perl ==
 
'''mod_perl Version 1''' wird für Apache 1.3.xx verwendet, '''mod_perl Version 2''' ist für Apache 2.xx gedacht.
 
<br />Traditionsgemäss muss man den Sourcecode kompilieren --- oder man besorgt sich eine Windows-Binary-Version.
 
 
http://perl.apache.org/docs/1.0/os/win32/install.html#PPM_Packages
 
 
 
'''mod_perl''' besteht aus einem Apache-Moul (mod_perl.so) und einem Perl-Paket (Apache::xyz). Das ladbare Apache-Modul wird in die Apache-Konfigurationsdatei ''httpd.conf'' eingetragen:
 
<pre>
 
LoadFile "D:/perl/bin/perl56.dll"
 
LoadModule perl_module modules/mod_perl.so
 
AddModule mod_perl.c
 
</pre>
 
Das Perl-Package wird mit '''ppm''' wie folgt installiert:
 
<pre>
 
ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd
 
</pre>
 
 
 
== Installation von mod_dav ==
 
Zur Unterstützung von [[WebDAV]] wird das Modul ''mod_dav'' verwendet. Zunächst muss man sich das Win32-Binary beschaffen; z.B. von:
 
* http://www.gknw.net/development/apache/apache-1.3/win32/modules/
 
* http://www.webdav.org/mod_dav/
 
 
 
Um die [[WebDAV]]-Unterstützung als Apache-Zusatzmodul zu installieren, sind folgende Eintragungen in der Apache-Konfigurations-Datei httpd.conf vorzunehmen:
 
<pre>
 
LoadModule dav_module modules/mod_dav.dll
 
...
 
AddModule mod_dav.c
 
...
 
DAVLockDB e:/var/db/DAVLock
 
DAVMinTimeout 600
 
</pre>
 
 
 
Dann sind noch die für [[WebDAV]] freigegebenen Ordner zu definieren:
 
<pre>
 
<Directory "e:/var/www/htdocs/docs">
 
  DAV on
 
  AllowOverwrite AuthConfig
 
  AuthName "DAV restricted"
 
  AuthType Basic
 
  AuthUserFile e:/var/www/htdocs/twiki/data/.htpasswd
 
  <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
 
Require valid-user
 
  </Limit>
 
<Directory>
 
</pre>
 
 
 
-- Main.DietrichKracht - 29 Apr 2004
 
[[Category:DefinitiveSoftwareLibrary]]
 

Revision as of 15:57, 27 February 2019

This page has been moved to my BLOG at http://blog.kr8.de