Apache HTTP (Linux): Unterschied zwischen den Versionen
Zeile 118: | Zeile 118: | ||
==== Weiterleitung an einen anderen Server ==== | ==== Weiterleitung an einen anderen Server ==== | ||
[[Bind_Konfiguration_(Linux)#Einrichten_einer_Subdomain|Subdomain in Bind]] | Manchmal ist es erforderlich, Http(s)-Anfragen von außen an einen Server, der nur lokal erreichbar ist, weiter zu leiten. | ||
In dem her beschriebenen Beispiel, ist die Webseite <code>test.<domain></code> sowohl lokal, als auch von außen, unter dem selben DNS-Namen erreichbar. | |||
Im folgenden Beispiel habe ich das durch eine Subdomain <code>lokal.<domain></code> gelöst. | |||
Für das Erstellen einer Subdomain siehe auch [[Bind_Konfiguration_(Linux)#Einrichten_einer_Subdomain|Subdomain in Bind]]. | |||
===== Weiterleitender Server ===== | ===== Weiterleitender Server ===== |
Version vom 27. Januar 2018, 15:42 Uhr
Installation
sudo apt-get -y install apache2 apache2-doc
Optional Benutzer zur, von Apache genutzten, Gruppe www-data hinzufügen:
sudo usermod -aG www-data <user name>
Module
PHP
Bei libapache2-mod-php auf die richtige Version kontrollieren
Ubuntu-Server 16.04
sudo apt-get -y install php libapache2-mod-php7.0
Ubuntu-Server 14.04
sudo apt-get -y install php5 libapache2-mod-php5
SSL
sudo a2enmod ssl sudo service apache2 restart
Konfiguration
Um die Warnung bezüglich Domainname zu unterdrücken, in der Datei /etc/apache2/apache2.conf
am Ende folgende Zeile hinzufügen:
ServerName <domain name>
conf-available
Eine *.conf-Datei anlegen:
sudo touch /etc/apache2/conf-available/<conf name>.conf
Beispiel-Datei anhand der Seite phpMyAdmin:
Alias /phpmyadmin "/var/www/phpmyadmin/" <Directory "/var/www/phpmyadmin"> Options +FollowSymLinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/phpmyadmin SetEnv HTTP_HOME /var/www/phpmyadmin </Directory>
Konfiguration aktivieren:
cd /etc/apache2/conf-available/ sudo a2enconf <conf name>.conf sudo service apache2 reload
sites-available
Port 80 auf Port 443 weiterleiten
<VirtualHost *:80> ServerName <subdomain>.<domain> ServerAlias <subdomain>.<domain> Redirect / https://<subdomain>.<domain> </VirtualHost>
Beispielkonfiguration für eine verschlüsselte Seite
<VirtualHost *:443> ServerName <subdomain>.<domain> SSLEngine on SSLCertificateFile /etc/ssl/certs/<subdomain>-apache.crt SSLCertificateKeyFile /etc/ssl/private/apache.key # Pfad zu den Webinhalten DocumentRoot /var/www/<subdomain> ErrorLog ${APACHE_LOG_DIR}/<subdomain>.<domain>-error.log CustomLog ${APACHE_LOG_DIR}/<subdomain>.<domain>-access.log combined </VirtualHost>
Weiterleitung an einen anderen Server
Manchmal ist es erforderlich, Http(s)-Anfragen von außen an einen Server, der nur lokal erreichbar ist, weiter zu leiten.
In dem her beschriebenen Beispiel, ist die Webseite test.<domain>
sowohl lokal, als auch von außen, unter dem selben DNS-Namen erreichbar.
Im folgenden Beispiel habe ich das durch eine Subdomain lokal.<domain>
gelöst.
Für das Erstellen einer Subdomain siehe auch Subdomain in Bind.
Weiterleitender Server
<VirtualHost *:443> ServerName test.<domain> SSLProxyEngine On ProxyPass / https://test.local.<domain> ProxyPassReverse / https://test.local.<domain> SSLProxyCheckPeerName off SSLProxyCheckPeerCN off SSLEngine on SSLCertificateFile /etc/ssl/certs/test.crt SSLCertificateKeyFile /etc/ssl/private/apache.key </VirtualHost>
Zielserver
<VirtualHost *:443> ServerName nctest.<domain> ServerAlias nctest.local.<domain> ... </VirtualHost>
Konfiguration aktivieren
cd /etc/apache2/sites-available/ sudo a2ensite <conf name>.conf sudo service apache2 reload
Fehlermeldungen
You don't have permission to access <url> on this server.
Das kann daran liegen, dass sich die Folder-Konfiguration von Apache 2.2 auf Apache 2.4 geändert hat.
Konfiguration in Apache 2.2:
<Directory> ... Order allow,deny Allow from all ... </Directory>
Konfiguration in Apache 2.4:
</Directory> ... Require all granted ... </Directory>
Zurück zu Ubuntu