Difference between revisions of "Apache"

From Dietrich Blog (Strato)
Jump to: navigation, search
(NTFS-Filesystem)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOCright}}
+
This page has been moved to my BLOG at: http://blog.kr8.de/wiki-apache/
= 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 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 [[WebHostingProvider]] geschieht.
 
 
 
Beispiel: Zwei Sub-Domains mit [[Typo3]]:
 
<pre>
 
#
 
# Use name-based virtual hosting.
 
#
 
NameVirtualHost *:80
 
 
 
#
 
# VirtualHost example:
 
# Almost any Apache directive may go into a VirtualHost container.
 
# The first VirtualHost section is used for all requests that do not
 
# match a ServerName or ServerAlias in any <VirtualHost> block.
 
#
 
 
 
<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]]
 

Latest revision as of 14:07, 7 April 2020

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