Zum Hauptinhalt springen

Apache

Apache ist ein Apache Hypertext Transfer Protocol Server. Das heißt es ist ein Server-Dienst für das Protokoll http.

Installation

Apache installiert man meistens als eine LAMP Umgebung. LAMP steht für Linux, Apache, Mysql und PHP. Man kann sicherlich auch nur das Paket Apache2 installieren, dann könnt ihr aber nur mit html Files umgehen.

Für das aufsetzen eine Standard LAMP Server benötigt man folgende Pakete.

sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql

Empfehlenwerte Pakete unter anderem:

sudo apt-get install phpmyadmin awstats php-apc

Um zu entwickeln:

sudo apt-get install php5-xdebug phpunit

Mod Rewrite

Das Modul Mod Rewrite bewirkt folgendes: Man ruft die Url localhost/Test auf und im Hintergrund wird eine PHP Datei aufgerufen, das diesen Aufruf verarbeitet. Heutzutage in den meisten Scripte ein muss.

sudo a2enmod rewrite sudo service apache2 restart

Apache Boost

Modul PageSpeed aktivieren: https://developers.google.com/speed/docs/mod_pagespeed/download?hl=de

a2enmod deflate

Deflate komprimiert die Dateien bevor es losschickt. (Kostet mehr Rechenleistung) http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

a2enmod expires

Expires gibt die Cachedauer an, die der Browser nutzen soll. http://httpd.apache.org/docs/2.2/mod/mod_expires.html

a2enmod headers

Passt den Http Header an. http://httpd.apache.org/docs/2.2/mod/mod_headers.html

Entwickeln

Bevor wir in unserer Lamp umgebung entwickeln können müssen wir erst ein paar Sachen erledigen.

WWW Verzeichnis einbinden

Zuerst fügen wir unseren Benutzer zu der www-data Gruppe hinzu.

sudo usermod -a -G www-data <benutzer>

Nun wechseln wir in der Shell Sitzung zu der Gruppe. Jede Datei die wir erstellen wird zur Gruppe von www-data.

newgrp www-data

Nun bekommt das Verzeichnis passenden User und Gruppe

sudo chown -R root:www-data /var/www

Zum schluss die Richtige Berechtigung

sudo chmod 774 /var/www/ -R

Auf Wunsch kann man bevorzugte Gruppe einstellen

sudo usermod -g www-data <benutzer>

Subdomains hinzufügen unter localhost

Sobald local auf seinem Rechner entwickelt. Möchte man mit Subdomains arbeiten. Das hat den Vorteile das man nicht mit den Pfaden unterpfaden Arbeiten muss. Statt http://example.de/**zend**/ kann man nun http://zend.example.de/

Virtualhost anlegen:

<VirtualHost *:80>
ServerName zf2-tutorial.localhost
DocumentRoot /var/www/zend/public
SetEnv APPLICATION_ENV "development"
<Directory /var/www/zend/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Quelle: http://framework.zend.com/manual/2.1/en/user-guide/skeleton-application.html

Unter localhost muss man jedoch unbedingt einen Hosts Eintrag durchführen!

vi /etc/hosts Letzte Zeile hinzufügen: 127.0.0

Apache2 als IPv6 betreiben

pache2 beherrscht von Haus an IPv6. Das ganze funktioniert sofort nach der DNS Zuweisung mittels einem AAAA. Sollte es nicht funktionieren liegt ein Mangel in der Art der ganzen Konfigurationsstrategie vor.

Testen

Testen ob die Seite als IPv6 anerkannt wird, kann man dieses Analyse Tool verwenden: http://ipv6-test.com/validate.php.

Hört Apache2 auf den Port 80? Das könnt ihr mit den Befehl testen.

root@h2157161:/etc/apache2# netstat -tulpn | grep :80
tcp6 0 0 :::80 :::* LISTEN 1083/apache2

AH01630: client denied by server configuration - 403 Forbidden

Ab der Apache Version 2.4 sind verschiedene Änderungen durchgeführt worden. Falls du die Meldung 403 Forbidden und im log AH01630: client denied by server configuration stehen hast dann habe ich die Lösung für dich.

Mit der neuen Apache Version 2.4 musst du Ordner Rechte geben. Wie z.B.:

<Directory "/home/user/workspace">
Options All
AllowOverride All
Require all granted
</Directory>

Notes