Linux:Apache-Server
Installation inkl. PHP und mySql
sudo apt-get install apache2 php5 libapache2-mod-php mysql-server php5-mysql
Apache Grundkonfiguration
Der Apache2-Server wird (unter Ubuntu) über mehrere Konfigurationsdateien gesteuert. Sie liegen alle im Verzeichnis /etc/apache2. Das Wurzelverzeichnis für die HTML-Seiten liegt i.d.R. in /var/www. Nicht in jeder Ubuntu-Version hat das Verzeichnis /var/www die richtigen Rechte gesetzt. Daher ist es sinnvoll, folgende Befehle aufzuführen, welche dafür sorgen, dass sowohl der Systembenutzer www-data als auch die Gruppe www-data Schreibrechte auf dieses Verzeichnis bekommen.
sudo chmod 0775 /var/www
sudo chgrp -R www-data /var/www
Um als normaler Benutzer Dateien in /var/www anlegen oder bearbeiten zu können, wird der gewünschte Benutzer zur Gruppe www-data hinzugefügt:
sudo adduser <benutzername> www-data
<user_home>/public_html Directory aktivieren
In das Apache Module Konfigurationsverzeichnis wechseln:
cd /etc/apache2/mods-enabled
Um mod_userdir zu aktivieren, muss man die folgenden symbolischen Links hinzufügen:
sudo ln -s ../mods-available/userdir.load
sudo ln -s ../mods-available/userdir.conf
Apache neu starten:
sudo apache2ctl restart
Ab jetzt können wir Webapplikationen aus dem Verzeichnis /home/username/public_html via http://localhost/~username/ starten
apache2.conf
Die apache2.conf ist eigentlich die zentrale Konfigurationsdatei für den Apache2-Webserver. Durch die vielen Einstellmöglichkeiten ist sie aber zu groß geworden und verweist an vielen Stellen auf andere Konfigurationsdateien. So z.B.:
...
# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
# Include ports listing:
Include ports.conf
# Include generic snippets of statements:
IncludeOptional conf-enabled/*.conf
...
Der erste Abschnitt verweist auf die Module, die Apache2 verwenden soll. Das ist hier gleich ein ganzes Verzeichnis. Wenn man neue Module benötigt, braucht man nur die entsprechende .load und .conf-Dateien aus dem Verzeichnis mods-available in das Verzeichnis mods-enabled kopieren, besser verlinken. Für die php-Unterstützung sind das beispielsweise php5.conf und php5.load.
Im zweiten und dritten Abschnitt werden die beiden weiter unten erwähnten Dateien geladen.
...
# Include the virtual host configurations:
Include sites-enabled/
...
Dieser Abschnitt verweist in das Verzeichnis sites-enabled, wo die Webseiten-Konfiguration vorgenommen wird. Sonst beinhaltet die apache2.conf nur Einstellungen wie und wo geloggt werden soll und unter welchen Rechten der Server laufen soll. Die Beschreibungen in der Konfigurationsdatei sind dazu selbsterklärend.
ports.conf
In der ports.conf werden die Ports angegeben auf den der Apache-Webserver hören soll. Standardmäßig ist das Port 80 (der erste Eintrag). Ich habe noch den Port 81 (der zweite Abschnitt) für Testzwecke hinzugefügt. Im dritten Abschnitt wird getestet, ob das Verschlüsselungsmodul (SSL) vorhanden ist, denn dann wird auch Port 443 (https) aktiviert.
Listen 80
Listen 81
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
Man kann natürlich auch eine Beschränkung auf bestimmte Rechner durchführen. Dann muss die IP mit angegeben werden, beispielsweise Listen 127.0.0.1:81 lässt nur den Rechner zu auf dem der Apache installiert ist.
sites-enabled
000-default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName aah253.braunschweig.bba.intern
DocumentRoot /var/www/produktiv
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
AddDefaultCharset UTF-8
</VirtualHost>
001-Port81
<VirtualHost *:81>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/testumgebung
<Directory />
Options +FollowSymLinks +Indexes
AllowOverride None
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
AddDefaultCharset UTF-8
</VirtualHost>
Mod-Pakete
ModSecurity
ModSSL
Apache+SSL+Zertifikat+erstellen