Wir setzen einen Webserver auf (die einfache Variante ... für Linux) 
Achtung !!! ... Achtung !!!

Auf keinen Fall Xampp auf einem Rootserver einsetzen. Dies ist quasi eine Einsteiger Anleitung zum üben.
Auf einem Rootserver sollte man den Distributionseigenen Indianer einsetzen, da Xampp überladen ist und auch hin und wieder Sicherheitslücken beinhaltet, auf die Scriptkiddies nur warten.

Nun besorgen wir uns erstmal Xampp bei apachefriends.org.

Wenn Sie hinter einem Router sitzen (Dedizierter Server oder eigener Heimrouter ohne DHCP) müssen Sie die Route eingeben (das Default Gateway) und den DNS einstellen:

route add default gw 192.168.0.1

oder halt die IP eingeben welche Ihnen der Provider als "Default Gateway" gegeben hat bzw. halt welche Ihr Router eben hat ...

Jetzt noch in der /etc/resolv.conf den Eintrag des Nameservers :

nameserver 192.168.x.x

Jetzt müssten Sie per ping Webseiten fremde anpingen können. Einfach mal web.de anpingen (Achtung, mache Seiten lassen es nicht zu das man sie anpingt.). Wenn das klappt gehts weiter ...

Xampp entpacken :

tar xvfz xampp-linux-x.x.x.tar.gz -C /opt

Nach der Installation von XAMPP für Linux müssen wir es dazu bringen das es automatisch startet.
Ziel: XAMPP für Linux beim reboot automatisch starten => in den Runlevel 3 (oder welchen Ihr auch immer nehmt) eintragen.

Vorgehen:

cp /opt/lampp/lampp /etc/init.d
cd /etc/rc3.d
ln -s /opt/lampp/lampp S50lampp
ln -s /opt/lampp/lampp K50lampp

S = Start
K = Kill

Mit "init 6" neu booten und nachsehen ob sich der Xampp am ende des Bootvorgangs startet.

MEGA WICHTIG !!! Xampp Sicherheitslücken schließen !!!

Das geht so :

/etc/init.d/lampp start
/opt/lampp/lampp security

Eingeben und alles dicht machen und mit Passwörtern versehen (bitte nicht den Namen der Freundin oder des Hundes nehmen !!! sondern eine Zahlen und Buchstabenkombi länger als 17 Zeichen !)

In der httpd.conf bzw. der httpd-defaults.conf (xampp) den Paramater ServerTokens auf OS stellen.

Im Verzeichnis /opt/lampp/etc
die vorhandenen mit diesen beiden Dateien vergleichen und ggfls. anpassen :

1. proftpd.conf
2. httpd.conf
3. httpd-vhosts.conf

Darauf achten das in der httpd.conf die Zeile "Include etc/extra/httpd-vhosts.conf" nicht auskommentiert ist.



Die Änderungen in der Proftp.conf bewirken übrigens, das der User nobody nicht mehr funkt was eine Sicherheitslücke wäre UND das man sich als LinuxUser einlogt und im /home/~user Verzeichnis ist. (ach was ;-))

Die Änderungen in der httpd.conf bewirken das cgi jetzt überall im Verzeichnisbaum laufen.
In der httpd-vhosts.conf sind zwei Beispiele für Virtual Host Domains und Subdomains.

Xampp neu starten mit :

/etc/init.d/lampp restart

Jetzt noch das System und Perl etwas aufmotzen mit :

yum install perl-GD ImageMagick-perl ImageMagick

Hat alles geklappt, haben wir den Apache Webserver mit allem drum und dran schon am laufen ;-)



Optionale Optionen in der Apache Konfiguration :

Apache directory listing deaktivieren (in der VHosts Konfiguration) :

<Directory "/var/www">
Options -Indexes Includes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
</Directory>

Apache directory listing aktivieren (in der VHosts Konfiguration) :

<Directory "/var/www">
Options +Indexes Includes FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
</Directory>

Welche Dateien sollen als Startdatei akzeptiert werden (httpd.conf) :

DirectoryIndex index.htm index.html index.shtml index.cgi index.pl index.php /defaultindex.html

Eigene Errorseiten einrichten (httpd.conf) :

ErrorDocument 500 "The Server made a boo boo."
#ErrorDocument 500 http://foo.example.com/cgi-bin/tester
#ErrorDocument 500 /error.html

Serversignatur Ändern (httpd-default.conf) :

Syntax:	ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full

ServerTokens Prod[uctOnly]
    Server sends (e.g.): Server: Apache
ServerTokens Major
    Server sends (e.g.): Server: Apache/2
ServerTokens Minor
    Server sends (e.g.): Server: Apache/2.0
ServerTokens Min[imal]
    Server sends (e.g.): Server: Apache/2.0.41
ServerTokens OS
    Server sends (e.g.): Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified)
    Server sends (e.g.): Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 




Jetzt zu den Statistiken. Xampp liefert bereits den Webalyzer mit. Nötig ist dieser Schritt also nicht.
Ich finde AWStats aber umfangreicher und schöner ...

In /opt

AWStats mit dem Ordner awstats entpacken.

per Crontab :

0 5 * * * perl /opt/awstats/tools/awstats_updateall.pl now >>/dev/null

einfügen (ruft die Statistik Erneuerung jeden Tag um 5 Uhr Morgens auf).

Und wertet alle Config Files in /etc/awstats aus. Bitte für jede Domain die AWStats haben soll eine eigene .conf erstellen

Also alle Websites Configs die wir in /etc/awstats haben werden ausgewertet.

Die Confs sehen so aus : awstats.www.domain.de.conf

Bitte anpassen in Zeile 51, 143 und 157. (bezieht sich auf die Log files der Domains in httpd.conf vom Apache, siehe ende der httpd.conf ...)

Jetzt kann man für jede Domain mit http://www.domain.de/awstats die Statistiken aufrufen (nach der ersten Nacht der Einrichtung versteht sich ...).

Die ausgewerteten Log Files liegen dann in /var/lib/awstats ... bitte da auch liegen lassen ;-) die braucht AWStats schließlich noch ...

Im Verzeichnis /opt/awstats/wwwroot/cgi-bin muss ich noch eine index.html mit folgenden Meta Tag legen :

META HTTP-EQUIV="refresh" content="0;URL=awstats.pl"

In der httpd.conf noch diese Zeilen ergänzen :

#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/opt/awstats/wwwroot/classes/"
Alias /awstatscss "/opt/awstats/wwwroot/css/"
Alias /awstatsicons "/opt/awstats/wwwroot/icon/"
Alias /awstats "/opt/awstats/wwwroot/cgi-bin/awstats.pl"
Alias /awstats.pl "/opt/awstats/wwwroot/cgi-bin/awstats.pl"

jetzt nach Wunsch den Ordner /opt/awstats/wwwroot/cgi-bin mit .htaccess schützen ... Voila ...



Um in Echtzeit zu sehen was auf dem Apache los ist gibt es ein schönes Programm namens : apachetop.