Einstieg - So wird das Leben leichter
- Webspace - Erste Schritte um mit dem Webspace zu arbeiten
- Datenbank - Erste Schritte um mit der Datenbank zu arbeiten.
- Protokolle - Eine Sammlung der im Internet am häufigsten verwendeten Protokolle und ihre Funktion.
Inhalt
- Apache2 - Webserver
- Bind9 - DNS-Server
- chmod - Rechte ändern
- DNS - Domain Name System
- Dovecot - IMAP/POP3-Server
- dpkg - Paketverwaltung
- DRBD - Distributed Replicated Block Device
-
- /etc/hosts - lokale Auflösung von Domainnamen
- /etc/resolv.conf - Einstellungen zur Namensauflösung
- IPMI - Intelligent Platform Management Interface
- isc-dhcp-server - DHCP-Server
- KVM - Kernel-based Virtual Maschine
- mdadm - Software-Raid unter Linux
- MySQL - Datenbankserver
- Networking - Netzwerkeinrichtung
- NTPD - Zeitserver
- OpenVPN - VPN-Server
- PAM - Plugable Authentification Method
- PHP - PHP Scriptparser
- Postfix - SMTP-Mailserver
- Greylisting mit Postgrey
- globaler Spamfilter mit amavis-new, spamassasin, clamav
- Samba - Windows Freigabeserver
-
- Fibre Channel - Setup mit QLE2462
-
- SVN - Subversion Server
- tftpd - TFTP-Server
- vsftpd - FTP-Server
Aktiv/Passiv - Failovercluster
Hardware-Support
Sicherheit
Apache2
Apache2 mit PHP5 als fcgid
Im Folgenden wird die Installation von Apache mit PHP5 und fcgid beschrieben.
In einem Standard-Setup laufen alle PHP-Prozesse unter dem Systembenutzer www-data, da diese von Apache2 gestartet werden und www-data der Benutzer ist unter dem Apache2 standardmäßig ausgeführt wird.
Von PHP erstellte Dateien ( z.B. Config-Files) werden darum auch unter dem User www-data abgelegt und können nicht mehr direkt von einem anderen Systembenutzer verändert werden. Außerdem ist es mit diesem einfachen Setup möglich auf alle Dateien die unter dem User www-data abgelegt sind über PHP zuzugreifen. Somit laufen die Seiten nicht getrennt, was je nach Nutzung Sicherheitsrisiken birgt. Gerade bei Shared-Hosting sollten PHP-Prozesse daher unter dem Benutzerkonto des Besitzers der Seite laufen. Dies erleichtert auch das Logging.
Benötigte Pakete installieren:
apt-get install apache2 php5 apache2-suexec libapache2-mod-fcgid php5-cgi
Module aktivieren:
a2dismod php5 a2enmod rewrite suexec include fcgid
Danach wird die Datei /etc/php5/cgi/php.ini angepasst.
cgi.fix_pathinfo=1
Außerdem muss noch das Modul fcgid in /etc/apache2/mods-avaiable/fcgid.conf konfiguriert werden. In der Direktive wurde folgendes hinzugefügt:
PHP_Fix_Pathinfo_Enable 1 FcgidMaxRequestLen 31457280 // legt maximale Datenmenge für den Upload fest.
In der Datei /etc/apache/apache2.conf sollte noch zumindest der Servername gesetzt werden. Servername beispiel.linetz.de
Im Folgenden ist ein Beispiel eines einfachen HTTP-vHosts gegeben. Anzupassen sind die Parameter SuexecUserGroup, bei dem der Systembenutzer angegeben wird unter dem der PHP-Prozess gestartet wird.
<VirtualHost *:80> ServerName dev.beispiel.de # Bestimmung der Rechte SuexecUserGroup $USERNAME $GROUPNAME # Handler festlegen AddHandler fcgid-script .php DocumentRoot /var/www/dev.beispiel.de/web_doc DirectoryIndex index.php3 index.htm index.html index.php <Directory "/"> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/dev.beispiel.de/web_doc"> AllowOverride ALL Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/dev.beispiel.de/conf/php-starter .php Order allow,deny Allow from all </Directory> ErrorLog /var/www/dev.beispiel.de/logs/error.log CustomLog /var/www/dev.beispiel.de/logs/access.log combined LogLevel warn </VirtualHost>
Die Verzeichnisstruktur des vHosts sieht in diesem Beispiel wie folgt aus:
- var
- www
- dev.beispiel.de
- conf
- logs
- tmp
- web_doc
Im conf-Verzeichnis ist die für den vHost gültige php.ini abzulegen. Des Weiteren wird in diesen Ordner das PHP-Wrapperscript unter dem Namen php-starter abgelegt. Dies sieht wie folgt aus:
#php-starter.sh #!/bin/sh PHPRC=/var/www/dev.beispiel.de/conf export PHPRC export TMPDIR=/var/www/dev.beispiel.de/tmp exec /usr/bin/php5-cgi
Zuletzt sollte der Apache2-Benutzer noch in die Gruppen der Systembenutzer unter denen die PHP-Prozesse laufen.
adduser www-data $USERNAME