Hallo ich habe einen Webserver (apache2) auf dem RaspberryPi laufen und ich kann von extern via (Fritzbox und DynDNS) auf die Webseite die sich im Ordner /var/www befindet zugreifen. Meine Problem ist nun: Ich möchte einen weiteren Ordner namens "public" im /www Verzeichnis erstellen und möchte wenn ich nun auf meine www.meine-adresse.de zugreife direkt im Verzeichnis /var/www/public landen und nicht im Verzeichnis /var/www . Wie kann ich das realisieren ??? Muss ich das am apache einstellen oder in der Fritzbox oder bei meinem Dynamic DNS Dienst??? Vielen Dank im Voraus!
:
Verschoben durch User
Hi, möchtest du dein DocumentRoot anpassen? schau mal in der Datei /etc/apache2/sites-available/default nicht vergessen, die Config neu zu laden bzw. apache neu zu starten. HTH, Chris
Der Hintergrund ist der, dass ich wenn ich von extern zugreife im public order landen will und wenn ich lokal über die ip zugreife im www Ordner landen will.
Hi, ok, dann dürften virtual hosts für dich interessant sein. Schau am besten mal in der Doku: https://httpd.apache.org/docs/current/vhosts/examples.html Viele Grüße Chris
Du legst zwei vhosts an einen normal an Port 80 für das interne Netz und einen zweiten auf einem anderen Port der >1024 und nicht 8080 sein sollte. Bei deinem Router trägst du dann in der Weiterleitung ein, das Port auf 80 auf den "externen" Port vom zweiten vhost weiter geleitet wird. Bei den vhost trägst du dann im Documentroot das jeweilige Verzeichnis ein Beispiel, welches ich gerade mit meiner Frtizbox geteset habe
1 | #Listen 12.34.56.78:80 |
2 | Listen 80 |
3 | Listen 8005 |
4 | |
5 | # Use name-based virtual hosting. |
6 | NameVirtualHost *:80 |
7 | NameVirtualHost *:8005 |
8 | |
9 | <VirtualHost *:80> |
10 | ServerName localhost |
11 | Include /etc/apache2/vhosts.d/default_vhost.include |
12 | DocumentRoot /var/www/localhost/htdocs/test |
13 | <IfModule mpm_peruser_module> |
14 | ServerEnvironment apache apache |
15 | </IfModule> |
16 | </VirtualHost> |
17 | |
18 | |
19 | <VirtualHost *:8005> |
20 | ServerName localhost |
21 | Include /etc/apache2/vhosts.d/default_vhost.include |
22 | DocumentRoot /var/www/localhost/htdocs |
23 | <IfModule mpm_peruser_module> |
24 | ServerEnvironment apache apache |
25 | </IfModule> |
26 | </VirtualHost> |
Gruss JackFrost
Dafür sind gar keine zwei Ports nötig, beide können auf 80 laufen. https://wiki.ubuntuusers.de/Apache/Virtual_Hosts/
Kannst du mir mal ein Beispiel zeigen wie das mit einem Port funktioniert?
Aber funktionieren tut es leider doch nicht. Kann mir jemand mal ein Beispiel zeigen, wenn ich einmal über meineDNSArdesse.de und einmal über die interne ip 192.168.0.100 zugreifen möchte und jeweils ein anderes Verzeichnis als DocumentRoot haben möchte
Ich habe für jede Domain eine Configdatei in /etc/apache2/sites-available (in /etc/apache2/sites-enabled liegt jeweils ein Symlink zu diesen Dateien) Bei vHotes ist die Reihenfolge sehr wichtig, Apache nimmt den ersten Eintrag der passt Die Config ist für Apache 2.2 Bei 2.4 hat sich da etwas verändert, bezüglich der Einstellung für Berechtigungen Subdomains bei Dyndns-Diensten geht nur wenn "Wildcard" aktive ist, das ist aber bei vielen kostenpflichtig. 000-default (Für aufrufe ohne Domainname, also mit direkter IP)
1 | <VirtualHost *:80> |
2 | ServerAdmin webmaster@localhost |
3 | |
4 | DocumentRoot /srv/apache2/htdocs/default |
5 | # <Directory /> |
6 | # Options FollowSymLinks |
7 | # AllowOverride None |
8 | # </Directory> |
9 | <Directory /srv/apache2/htdocs/default/> |
10 | Options -Indexes FollowSymLinks MultiViews |
11 | AllowOverride None |
12 | Order allow,deny |
13 | allow from all |
14 | </Directory> |
15 | |
16 | # ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ |
17 | # <Directory "/usr/lib/cgi-bin"> |
18 | # AllowOverride None |
19 | # Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch |
20 | # Order allow,deny |
21 | # Allow from all |
22 | # </Directory> |
23 | # |
24 | # ErrorLog ${APACHE_LOG_DIR}/error.log |
25 | # |
26 | # # Possible values include: debug, info, notice, warn, error, crit, |
27 | # # alert, emerg. |
28 | # LogLevel warn |
29 | # |
30 | # CustomLog ${APACHE_LOG_DIR}/access.log combined |
31 | </VirtualHost> |
Der Erste Eintrag ist Domain ohne Subdomain, der letzte für eine Subdomains die nicht existiert, die dazwischen für Subdomians die existieren. 000-domain.dny.xyz:
1 | ############################################################################# |
2 | ### Begin von: Muss an den Anfang |
3 | |
4 | <VirtualHost *:80> |
5 | ServerName domain.dny.xyz |
6 | ServerSignature On |
7 | DocumentRoot /srv/apache2/htdocs/domain.dny.xyz/default/ |
8 | <Directory /srv/apache2/htdocs/domain.dny.xyz/default/> |
9 | Options -Indexes FollowSymLinks MultiViews |
10 | AllowOverride None |
11 | Order allow,deny |
12 | allow from all |
13 | RedirectMatch 301 ^/(.*) http://www.domain.dny.xyz/$1 |
14 | </Directory> |
15 | </VirtualHost> |
16 | |
17 | ### Ende von: Muss an den Anfang |
18 | ############################################################################# |
19 | ### Begin von Subdomains |
20 | |
21 | ### Subdomain >>> www.domain.dny.xyz <<< |
22 | <VirtualHost *:80> |
23 | ServerName www.domain.dny.xyz |
24 | ServerSignature On |
25 | DocumentRoot /srv/apache2/htdocs/domain.dny.xyz/www/ |
26 | <Directory /srv/apache2/htdocs/domain.dny.xyz/www/> |
27 | Options Indexes FollowSymLinks MultiViews |
28 | AllowOverride None |
29 | Order allow,deny |
30 | allow from all |
31 | </Directory> |
32 | </VirtualHost> |
33 | |
34 | ### Subdomain >>> phpmyadmin.domain.dny.xyz <<< |
35 | <VirtualHost *:80> |
36 | ServerName phpmyadmin.domain.dny.xyz |
37 | ServerSignature On |
38 | DocumentRoot /srv/apache2/htdocs/domain.dny.xyz/phpmyadmin/ |
39 | <Directory /srv/apache2/htdocs/domain.dny.xyz/phpmyadmin/> |
40 | Options -Indexes FollowSymLinks MultiViews |
41 | AllowOverride None |
42 | |
43 | #Order allow,deny |
44 | #allow from all |
45 | |
46 | AuthType Basic |
47 | AuthName "phpmyadmin.domain.dny.xyz" |
48 | AuthUserFile /srv/apache2/authfiels/.htpasswd |
49 | AuthGroupFile /srv/apache2/authfiels/.htgroup |
50 | require group phpmyadmin |
51 | |
52 | </Directory> |
53 | </VirtualHost> |
54 | |
55 | ### Subdomain >>> private.domain.dny.xyz <<< |
56 | <VirtualHost *:80> |
57 | ServerName private.domain.dny.xyz |
58 | ServerSignature On |
59 | DocumentRoot /srv/apache2/htdocs/domain.dny.xyz/private/ |
60 | <Directory /srv/apache2/htdocs/domain.dny.xyz/private/> |
61 | Options Indexes FollowSymLinks MultiViews |
62 | AllowOverride None |
63 | |
64 | #Order allow,deny |
65 | #allow from all |
66 | |
67 | AuthType Basic |
68 | AuthName "private.domain.dny.xyz" |
69 | AuthUserFile /srv/apache2/authfiels/.htpasswd |
70 | AuthGroupFile /srv/apache2/authfiels/.htgroup |
71 | require group private |
72 | |
73 | <FilesMatch "\.(?i:avi|mkv|mp4)$"> |
74 | ForceType application/octet-stream |
75 | Header set Content-Disposition attachment |
76 | </FilesMatch> |
77 | </Directory> |
78 | </VirtualHost> |
79 | |
80 | ### Subdomain >>> public.domain.dny.xyz <<< |
81 | <VirtualHost *:80> |
82 | ServerName public.domain.dny.xyz |
83 | ServerSignature On |
84 | DocumentRoot /srv/apache2/htdocs/domain.dny.xyz/public/ |
85 | <Directory /srv/apache2/htdocs/domain.dny.xyz/public/> |
86 | Options -Indexes FollowSymLinks MultiViews |
87 | AllowOverride None |
88 | Order allow,deny |
89 | allow from all |
90 | </Directory> |
91 | </VirtualHost> |
92 | |
93 | ### Ende von: Subdomains |
94 | ############################################################################# |
95 | ### Begin von: Muss ans Ende |
96 | |
97 | <VirtualHost *:80> |
98 | ServerAlias *.domain.dny.xyz |
99 | ServerName domain.dny.xyz |
100 | ServerSignature On |
101 | DocumentRoot /srv/apache2/htdocs/domain.dny.xyz/default/ |
102 | <Directory /srv/apache2/htdocs/domain.dny.xyz/default/> |
103 | Options -Indexes FollowSymLinks MultiViews |
104 | AllowOverride None |
105 | Order allow,deny |
106 | allow from all |
107 | RedirectMatch 301 ^/.* http://www.domain.dny.xyz/ |
108 | </Directory> |
109 | </VirtualHost> |
110 | |
111 | ### Ende von: Muss ans Ende |
112 | ############################################################################# |
Beispiel mit automatischer Weiterleitung auf die Subdomain www:
1 | ############################################################################# |
2 | ### Begin von: Muss an den Anfang |
3 | |
4 | <VirtualHost *:80> |
5 | ServerName domain2.dny.xyz |
6 | ServerSignature On |
7 | DocumentRoot /srv/apache2/htdocs/domain2.dny.xyz/default/ |
8 | <Directory /srv/apache2/htdocs/domain2.dny.xyz/default/> |
9 | Options -Indexes FollowSymLinks MultiViews |
10 | AllowOverride None |
11 | Order allow,deny |
12 | allow from all |
13 | RedirectMatch 301 ^/(.*) http://www.domain2.dny.xyz/$1 |
14 | </Directory> |
15 | </VirtualHost> |
16 | |
17 | ### Ende von: Muss an den Anfang |
18 | ############################################################################# |
19 | ### Begin von Subdomains |
20 | |
21 | ### Subdomain >>> www.domain2.dny.xyz <<< |
22 | <VirtualHost *:80> |
23 | ServerName www.domain2.dny.xyz |
24 | ServerSignature On |
25 | DocumentRoot /srv/apache2/htdocs/domain2.dny.xyz/www/ |
26 | <Directory /srv/apache2/htdocs/domain2.dny.xyz/www/> |
27 | Options -Indexes FollowSymLinks MultiViews |
28 | AllowOverride FileInfo |
29 | Order allow,deny |
30 | allow from all |
31 | </Directory> |
32 | </VirtualHost> |
33 | |
34 | ### Ende von: Subdomains |
35 | ############################################################################# |
36 | ### Begin von: Muss ans Ende |
37 | |
38 | <VirtualHost *:80> |
39 | ServerAlias *.domain2.dny.xyz |
40 | ServerName domain2.dny.xyz |
41 | ServerSignature On |
42 | DocumentRoot /srv/apache2/htdocs/domain2.dny.xyz/default/ |
43 | <Directory /srv/apache2/htdocs/domain2.dny.xyz/default/> |
44 | Options -Indexes FollowSymLinks MultiViews |
45 | AllowOverride None |
46 | Order allow,deny |
47 | allow from all |
48 | RedirectMatch 301 ^/.* http://www.domain2.dny.xyz/ |
49 | </Directory> |
50 | </VirtualHost> |
51 | |
52 | ### Ende von: Muss ans Ende |
53 | ############################################################################# |
wenn ich einen Symlink der config-Datei in /sites-enabled erstelle, erhalte ich folgende Fehlermeldung beim restart: apache2: Syntax error on line 268 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/sites-enabled/000-dnsxyz.de: No such file or directory Action 'configtest' failed. The Apache error log may have more information. failed!
Hat jetzt alles funktioniert habe den Link falsch angelegt !!! Vielen Dank an alle!
Matthias W. schrieb: > Dafür sind gar keine zwei Ports nötig, beide können auf 80 laufen. > > https://wiki.ubuntuusers.de/Apache/Virtual_Hosts/ Das ist zwar richtig, man handelt sich aber möglicherweise ein Sicherheitsrisiko ein, da man unter Kenntnis des internen virtual hostnamen von extern auch auf das interne Verzeichnis zugreifen kann. Gruß Roland
Roland P. schrieb: > Das ist zwar richtig, man handelt sich aber möglicherweise ein > Sicherheitsrisiko ein, da man unter Kenntnis des internen virtual > hostnamen von extern auch auf das interne Verzeichnis zugreifen kann. Das Stimmt, daher sollte man bei internen vHoste den Zugriff nur für das eigene Subnetz erlauben Order Allow,Deny Deny from all Allow from 192.168.x.0/24 für Apache 2.4 https://httpd.apache.org/docs/2.4/upgrading.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.