Webserver installieren (Debian)
Anleitung für die Installation eines Linux-basierten Webserver mit Apache, MySQL und PHP (LAMP).
Voraussetzungen
- Debian Wheezy 7.2
- Superuserzugriff
Vorbereitungen
Feste IP-Adresse vergeben
Siehe Netzwerk einrichten (Debian)
Sources List aktualisieren
nano /etc/apt/sources.list
Folgende Zeilen (DE-Sources) hinzufügen:
deb http://ftp.de.debian.org/debian stable main contrib deb http://ftp.debian.org/debian/ wheezy-updates main contrib
Danach noch ausführen: apt-get update
Apache Installation
groupadd www-data usermod -a -G www-data www-data apt-get install apache2
Konfigdateien bearbeiten
nano /etc/apache2/apache2.conf
Am Ende folgendes eintragen:
ServerName server.domain.com
nano /etc/apache2/sites-available/default
Folgendes einfügen:
ServerAlias server server.domain.com (Unklar, ob tatsächlich notwendig)
nano /etc/apache2/sites-available/default-ssl
Folgendes einfügen:
ServerAlias server server.domain.com (Unklar, ob tatsächlich notwendig)
Noch ausführen (unbekannt, wofür - evtl. für Owncloud?):
a2enmod rewrite a2enmod headers
Apache Web-Rootverzeichnis
/var/www/
Beim Aufruf von https://www.example.com/ sollte der Server antworten:
It works! This is the default web page for this server. The web server software is running but no content has been added, yet.
PHP Installation
apt-get install php5 php5-gd php5-curl php5-mysql php5-intl php-xml-parser php-pear php-apc curl libcurl3
MySQL Installation
apt-get install mysql-server mysql-client php5-mysql mysql restart
phpMyAdmin
Installation
apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
phpMyAdmin mit Apache verbinden, falls nicht in den Dateien in /etc/php5/apache2/conf.d/???-mysql???.ini
bereits geschehen.
nano /etc/php5/apache2/php.ini
Neue Zeile im Bereich "Dynamic Extensions" hinzufügen:
extension=mysql.so
Zugriff auf lokales Netz beschränken
Konfigdatei öffnen:
nano /etc/apache2/conf.d/phpmyadmin.conf
(Symlink auf /etc/phpmyadmin/apache.conf)
Folgenden Abschnitt einsetzen (und bestehendes überschreiben):
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php Order Deny,Allow Deny from all Allow from 192.168.1.0/24 <- Hier natürlich euer Netzwerk rein <IfModule mod_php5.c>
phpMyAdmin aufrufen über: http://ip-adresse-deines-servers/phpmyadmin/
Selbst signiertes Zertifikat erzeugen
Evtl. Standardpfad verwenden? Standardpfad ist vermutlich /etc/ssl/xxx
mkdir -p /etc/apache2/ssl openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/cert.pem -keyout /etc/apache2/ssl/cert.pem
Folgende Werte eingeben: Country Name: DE State or Province: . ("." entspricht "leer") Locality Name: . Organization Name: . Organizational Unit Name: . Common Name (FQDN-Name): domain.tld E-Mail Address: webmaster@localhost
ln -sf /etc/apache2/ssl/cert.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/cert.pem` chmod 600 /etc/apache2/ssl/cert.pem
Zertifikat überprüfen:
openssl x509 -noout -in cert.pem -issuer -subject -dates -fingerprint
Apache für HTTPS einrichten
Schritt 1: Standardkonfiguration erweitern
nano /etc/apache2/ports.conf
Folgendes muss mindestens vorhanden sein:
NameVirtualHost *:80 Listen 80 <fModule mod_ssl.c> Listen 443 </IfModule>
Anschließend ausführen:
service apache2 restart
Nun muss das SSL (Secure Socket Layer für die sichere Verbindung) aktiviert und der Webserver nochmals neu geladen werden:
a2enmod ssl service apache2 restart
Schritt 2: SSL-Site konfigurieren
nano /etc/apache2/sites-available/default-ssl
Folgende Zeilen müssen vorhanden sein.
<VirtualHost *:443> oder <VirtualHost _default_:443> SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem DocumentRoot /var/www </virtualhost>
Wenn die .pem-Datei den privaten Key und das Zertifikat enthält, dann kann man die folgende Zeile auskommentieren:
# SSLCertificateKeyFile xxx
Site aktivieren und Apache neu starten:
a2ensite default-ssl service apache2 reload