bolshi
Goto Top

Apache2 - Verzeichnis auf URL mappen

Hallo,
auf einem Server mit Ubuntu 16.04 und Apache 2.4 liegen mehrere Websites, bespielsweise "/var/www/site1", "/var/www/site2" usw.

Was muss ich die "/etc/apache2/sites-available/site1.conf" bzw. "/etc/apache2/sites-available/site2.conf" eintragen, sodass

ich via "http://IP-Adresse/site1" "/var/www/site1" aufrufe?


Grüße, bolshi

Content-ID: 315225

Url: https://administrator.de/contentid/315225

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

michi1983
michi1983 14.09.2016 um 13:06:19 Uhr
Goto Top
Hallo,

das sollte dir weiterhelfen.

Gruß
IrunGoldstein
Lösung IrunGoldstein 14.09.2016 um 13:15:02 Uhr
Goto Top
Hi bolshi,

Alias /site1 /var/www/site1
Usw....

Weiterführende erklärung:

http://httpd.apache.org/docs/2.2/mod/mod_alias.html#alias

Grüße
runasservice
Lösung runasservice 14.09.2016 aktualisiert um 13:26:36 Uhr
Goto Top
Hallo,

wenn Du wirklich IP-basierte virtuellen Hosts einsetzen möchtest, im Gegensatz zu namensbasierten virtuellen Hosts, reicht folgender Eintrag:

<VirtualHost 192.168.0.20> 
	ServerName www.beispiel.com
	DocumentRoot /srv/www/htdocs/beispiel.com
	ServerAdmin webmaster@beispiel.com
	ErrorLog /var/log/apache2/www.beispiel.com-error_log
	CustomLog /var/log/apache2/www.beispiel.com-access_log common
</VirtualHost>

<VirtualHost 192.168.0.30>
	ServerName www.beispiel.net
	DocumentRoot /srv/www/htdocs/beispiel.net
	ServerAdmin tux@beispiel.net
	ErrorLog /var/log/apache2/www.beispiel.net-error_log
	CustomLog /var/log/apache2/www.beispiel.net-access_log common
</VirtualHost> 

Zum Vergleich nochmal ein namensbasierter virtueller Host


<VirtualHost *:80>
	ServerName www.beispiel.net
	DocumentRoot /srv/www/htdocs/beispiel.net
	ServerAdmin tux@beispiel.net
	ErrorLog /var/log/apache2/www.beispiel.net-error_log
	CustomLog /var/log/apache2/www.beispiel.net-access_log common
</VirtualHost>

Wenn Du mehrere IP-Adressen für den Apache-Server konfiguriert hast, kann man das auch mischen.


Viel Erfolg....
bolshi
bolshi 14.09.2016 um 14:15:57 Uhr
Goto Top
Genial, danke.
bolshi
bolshi 15.09.2016 aktualisiert um 06:50:42 Uhr
Goto Top
Offensichtlich bin ich noch nicht am Ziel.

Rufe ich "http://meine_ip/site1" auf, kommt "The requested page "/site1" could not be found."

Meine config:

<VirtualHost meine_ip:80>

        DocumentRoot /var/www/site1

         Alias /var/www/site1 http://meine_ip/site1

        <Directory /var/www/site1>
                Options FollowSymlinks
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Sobald ich aber "http://meine_ip" aurufe, wird site1 angezeigt. Das mit dem Alias scheint falsch zu sein.
IrunGoldstein
Lösung IrunGoldstein 15.09.2016 um 08:44:10 Uhr
Goto Top
Dein Alias aufbau sieht aber nicht so aus wie im Handbuch face-wink


Alias [aufgerufener Ordner] [ Ordner auf dem Server]

Beispiel:

Server IP: 10.10.10.10
Ordner : Filter

Aufbau :

Alias /Filter /var/www/filter

Die IP hat da nichts zu suchen.

Beispiel:

{...}

DocumentRoot /var/www
Alias /site1 /var/www/site1
    <Directory /var/www/site1>
            Options MultiViews Indexes Includes FollowSymLinks
            AllowOverride All
            Require all granted
            allow from all
    </Directory>

    Alias /site2 /var/www/site2
    <Directory /var/www/site2>
            Options MultiViews Indexes Includes FollowSymLinks 
            AllowOverride All
            Require all granted
            allow from all
    </Directory>

{...}

Mal ne andere frage ist das eine öffentliche IP oder ist der aufbau daheim?
bolshi
bolshi 15.09.2016 um 10:07:43 Uhr
Goto Top
Öffentlich im Intranet, auch nur Interimslösung. Wir stellen die Server von 14.04 auf 16.04 um. Noch zeigen die Domains auf die alten Kisten. Hab zurzeit aber nur eine IP.
runasservice
runasservice 15.09.2016 um 10:10:22 Uhr
Goto Top
Hallo,

sieh dir doch mal folgende Anleitung auf linux-praxis.de an, vielleicht wird der Zusammenhang dann noch deutlicher?

Alias /var/www/site1 http://meine_ip/site1 

Die Zeile wird nicht benötigt. Wichtig ist, das auf deinen Server auch die IP-Adressen meine_ip1, meine_ip2 konfiguriert sind!
runasservice
runasservice 15.09.2016 um 10:16:24 Uhr
Goto Top
Noch zeigen die Domains auf die alten Kisten. Hab zurzeit aber nur eine IP.

Die Info hast Du uns aber unterschlagen face-wink

Nehme mal an, Du möchtest jetzt den neuen Server testen, der namensbasierten virtuellen Hosts hat, wo die Domains nocht auf den alten Server zeigen?
IrunGoldstein
Lösung IrunGoldstein 15.09.2016 um 11:18:11 Uhr
Goto Top
@runasservice:

genau deshalb möchte ich ihm nahelegen das über alias zu lösen funktioniert tadellos und macht was es soll:

@ bolshi: Hab es kurz nachgestellt:


Server IP: 10.10.10.12

Webroot zeigt auf /var/www/html

Seite 1 liegt in /var/www/test1

Seite 2 liegt in /var/www/test2

Zugriff soll über /sitey => /var/www/test1 und /sitex => /var/www/test2 erfolgen.

Virtualhost:

<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to 
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	Alias /sitey /var/www/test1
		<Directory /var/www/test1>
		Options Multiviews Indexes Includes FollowSymlinks
		AllowOverride All
		Require all granted
		allow from all
		</Directory>

	Alias /sitex /var/www/test2
		<Directory /var/www/test2>
		Options Multiviews Indexes Includes FollowSymlinks
		AllowOverride All
		Require all granted
		allow from all
		</Directory>


	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf". 
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Screenshots:

Webroot:

bildschirmfoto_2016-09-15_11-10-23

Sitey:
bildschirmfoto_2016-09-15_11-10-54

Sitex:

bildschirmfoto_2016-09-15_11-11-13

Ist doch das was du wolltest oder face-wink ?

PS: Wenn in den Ordnern richtige Webseiten liegen zeigt der Browser natürlich diese auch an habe nur kurz nen paar .txt in die Test VM geworfen.

Grüße