Forum: PC Hard- und Software apache2 auf Raspberry


von piuser (Gast)


Lesenswert?

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
von Chris R. (hownottobeseen)


Lesenswert?

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

von piuser (Gast)


Lesenswert?

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.

von Chris R. (hownottobeseen)


Lesenswert?

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

von Bastian W. (jackfrost)


Lesenswert?

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

von Piuser (Gast)


Lesenswert?

ich Werder es morgen mal testen aber vielen Dank erstmal !!!

von Franz R. (Gast)


Lesenswert?

Dafür sind gar keine zwei Ports nötig, beide können auf 80 laufen.

https://wiki.ubuntuusers.de/Apache/Virtual_Hosts/

von piuser (Gast)


Lesenswert?

Kannst du mir mal ein Beispiel zeigen wie das mit einem Port 
funktioniert?

von piuser (Gast)


Lesenswert?

Achso habe nicht richtig gelesen ! Habe es schon gefunden!

von piuser (Gast)


Lesenswert?

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

von Christian K. (the_kirsch)


Lesenswert?

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
#############################################################################

von piuser (Gast)


Lesenswert?

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!

von piuser (Gast)


Lesenswert?

Hat jetzt alles funktioniert habe den Link falsch angelegt !!! Vielen 
Dank an alle!

von Roland P. (pram)


Lesenswert?

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

von Christian K. (the_kirsch)


Lesenswert?

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
Noch kein Account? Hier anmelden.