PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 & virtueller Host



csa888
24.08.04, 10:33
Hallo Leutz,
folgendes Problem: Habe eine Hauptdomain (www.domain1.de) und eine Nebendomain (www.domain2.de). Habe in meinem www-Verzeichnis einen Unterordner gemacht und in dem Verzeichnis /etc/apache2/vhosts.d/ eine neue Konfigurationsdatei angelegt (domain2.conf). Das ist der Inhalt:
# VirtualHost template:
<VirtualHost *:80>
ServerAdmin webmaster@domain2.de
ServerName www.domain2.de
DocumentRoot /srv/www/domain2

ErrorLog /var/log/apache2/dummy-host.example.com-error_log
CustomLog /var/log/apache2/dummy-host.example.com-access_log combined

HostnameLookups Off
UseCanonicalName Off
ServerSignature On
</VirtualHost>

<Directory "/srv/www/domain2">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny
Allow from all

</Directory>

ScriptAlias /cgi-bin/ "/srv/www/domain2/cgi-bin/"

<Directory "/srv/www/domain2/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

<IfModule mod_userdir.c>
UserDir public_html
Include /etc/apache2/mod_userdir.conf
</IfModule>

Danach habe ich in der /etc/apache2/httpd.conf meinen virtuellen Host verlinkt:
Include /etc/apache2/vhosts.d/domain2.conf
Wenn ich nun den apache "restarte" ist meine Hauptdomain (www.domain1.de) nichtmehr zu erreichen, es stehen nur noch die Seiten des virtuellen Host zur Verfügung.
Kann mir da vielleicht jemand von Euch weiterhelfen, oder hat schon jemand nen Fehler in den conf´s gefunden??? Bin für jede Hilfe dankbar!!! :confused:

killerhorse
24.08.04, 14:34
Hallo,

Das Proble dürfte darin liegen, dass der erste V-Host den DocumentRoot vom "Hauptserver" überschreibt. Das heisst du solltest für deine erste Domain auch einen Virtual Host anlegen und schon sollte es funktionieren.

MfG

Christian

csa888
24.08.04, 15:05
Hallo,

Das Proble dürfte darin liegen, dass der erste V-Host den DocumentRoot vom "Hauptserver" überschreibt. Das heisst du solltest für deine erste Domain auch einen Virtual Host anlegen und schon sollte es funktionieren.

MfG

Christian
Danke für die schnelle Antwort! Habe es mal versucht...
Jetzt habe ich auch die zweite Config-Datei in die httpd.conf geadded:
Include /etc/apache2/vhosts.d/domain2.conf
Include /etc/apache2/vhosts.d/domain1.conf

Selbes Phänomen wie vorher, wieder nimmt er nur die Dateien von dem ersten vhost. Hmmm, wo liegt da der Fehler?

killerhorse
24.08.04, 17:53
Hallo,

Also prinzipiell muss dem Apache einmal mitgeteilt werden, dass es sich um Namensbasierte V-Hosts handelt (hast Du ja vielleicht auch schon in der httpd.conf)
Da sollte irgendwo "NameVirtualHost xxx.xxx.xxx.xxx" (xxx.xxx.xxx.xxx = deine IP) stehen.
Was mir noch aufgefallen ist:
wenn ich "<VirtualHost *:80>" verwende dann kommt bei mir beim Starten des Apaches folgende Fehlermeldung:

[Tue Aug 24 17:47:59 2004] [warn] _default_ VirtualHost overlap on port 80, the first has precedence

Verwende hier einmal <VirtualHost xxx.xxx.xxx.xxx> (also wieder die IP)

MfG

Christian

csa888
25.08.04, 10:29
Was mir noch aufgefallen ist:
wenn ich "<VirtualHost *:80>" verwende dann kommt bei mir beim Starten des Apaches folgende Fehlermeldung:

[Tue Aug 24 17:47:59 2004] [warn] _default_ VirtualHost overlap on port 80, the first has precedence

Verwende hier einmal <VirtualHost xxx.xxx.xxx.xxx> (also wieder die IP)

Nachdem ich jetzt die ip Adresse eingegeben habe kommt die Fehlermeldung bei mir auch ... Starting httpd2 (prefork) [Wed Aug 25 10:14:11 2004] [warn] VirtualHost xxx.xxx.xxx.xxx:80 overlaps with VirtualHost xxx.xxx.xxx.xxx:80, the first has precedence, perhaps you need a NameVirtualHost directive




Also prinzipiell muss dem Apache einmal mitgeteilt werden, dass es sich um Namensbasierte V-Hosts handelt (hast Du ja vielleicht auch schon in der httpd.conf)
Da sollte irgendwo "NameVirtualHost xxx.xxx.xxx.xxx" (xxx.xxx.xxx.xxx = deine IP) stehen.

hmmm... konnte den punkt nicht finden, habe mal hier meine httpd.conf vielleicht siehst Du ja auf Anhieb einen Fehler...

# /etc/apache2/httpd.conf
#
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs-2.0/> for detailed information about
# the directives.

# Based upon the default apache configuration file that ships with apache,
# which is based upon the NCSA server configuration files originally by Rob
# McCool. This file was knocked together by Peter Poeml <poeml+apache@suse.de>.

# If possible, avoid changes to this file. It does mainly contain Include
# statements and global settings that can/should be overridden in the
# configuration of your virtual hosts.


# Overview of include files, chronologically:
#
# httpd.conf
# |
# |-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under
# |-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, ...)
# |-- sysconfig.d/loadmodule.conf . . . . . load these modules
# |-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on
# |-- mod_log_config.conf . . . . . . . . . define logging formats
# |-- sysconfig.d/global.conf . . . . . . . server-wide general settings
# |-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring)
# |-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info
# |-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings
# |-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration
# |-- errors.conf . . . . . . . . . . . . . customize error responses
# |-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server _and all_ virtual hosts
# |
# |-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests
# | |--mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded)
# | `--conf.d/apache2-manual?conf . . . add the docs ('?' = if installed)
# |
# |-- sysconfig.d/include.conf . . . . . . your include files
# | (for each file to be included here, put its name
# | into APACHE_INCLUDE_* in /etc/sysconfig/apache2)
# |
# `-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here
# `-- *.conf . . . . . . . . . . . . . (*.conf is automatically included)
#
#
# Files marked are created from sysconfig upon server restart: instead of
# these files, you edit /etc/sysconfig/apache2



# Filesystem layout:
#
# /etc/apache2/
# |-- conf.d/
# | |-- apache2-manual.conf . . . . . . . conf that comes with apache2-doc
# | |-- mod_php4.conf . . . . . . . . . . (example) conf that comes with apache2-mod_php4
# | `-- ... . . . . . . . . . . . . . . . other configuration added by packages
# |-- default-server.conf
# |-- errors.conf
# |-- httpd.conf . . . . . . . . . . . . . top level configuration file
# |-- listen.conf
# |-- magic
# |-- mime.types -> ../mime.types
# |-- mod_autoindex-defaults.conf
# |-- mod_info.conf
# |-- mod_log_config.conf
# |-- mod_mime-defaults.conf
# |-- mod_perl-startup.pl
# |-- mod_status.conf
# |-- mod_userdir.conf
# |-- server-tuning.conf
# |-- ssl-global.conf
# |-- ssl.crl/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Revocation Lists (CRL)
# |-- ssl.crt/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificates
# |-- ssl.csr/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Signing Requests
# |-- ssl.key/ . . . . . . . . . . . . . . PEM-encoded RSA Private Keys
# |-- ssl.prm/ . . . . . . . . . . . . . . public DSA Parameter Files
# |-- sysconfig.d/ . . . . . . . . . . . . files that are created from /etc/sysconfig/apache2
# | |-- global.conf
# | |-- include.conf
# | `-- loadmodule.conf
# |-- uid.conf
# `-- vhosts.d/ . . . . . . . . . . . . . . put your virtual host configuration (*.conf) here
# |-- vhost-ssl.template
# `-- vhost.template



### Global Environment ################################################## ####
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests.

# run under this user/group id
Include /etc/apache2/uid.conf

# - how many server processes to start (server pool regulation)
# - usage of KeepAlive
Include /etc/apache2/server-tuning.conf

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
ErrorLog /var/log/apache2/error_log

# generated from APACHE_MODULES in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/loadmodule.conf

# IP addresses / ports to listen on
Include /etc/apache2/listen.conf

# predefined logging formats
Include /etc/apache2/mod_log_config.conf

# generated from global settings in /etc/sysconfig/apache2
Include /etc/apache2/sysconfig.d/global.conf

# optional mod_status, mod_info
Include /etc/apache2/mod_status.conf
Include /etc/apache2/mod_info.conf

# configuration of server-generated directory listings
Include /etc/apache2/mod_autoindex-defaults.conf

# associate MIME types with filename extensions
TypesConfig /etc/apache2/mime.types
DefaultType text/plain
Include /etc/apache2/mod_mime-defaults.conf

# set up (customizable) error responses
Include /etc/apache2/errors.conf

# global (server-wide) SSL configuration, that is not specific to
# any virtual host
Include /etc/apache2/ssl-global.conf

# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>

# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>

# List of resources to look for when the client requests a directory
DirectoryIndex index.html index.html.var

### 'Main' server configuration #############################################
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#
Include /etc/apache2/default-server.conf


# Another way to include your own files
#
# The file below is generated from /etc/sysconfig/apache2,
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and
# APACHE_CONF_INCLUDE_DIRS
Include /etc/apache2/sysconfig.d/include.conf


### Virtual server configuration ############################################
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs-2.0/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
Include /etc/apache2/vhosts.d/domain1.conf
Include /etc/apache2/vhosts.d/domain2.conf
# Include /etc/apache2/vhosts.d/vhost-ssl.template


# Note: instead of adding your own configuration here, consider
# adding it in your own file (/etc/apache2/httpd.conf.local)
# putting its name into APACHE_CONF_INCLUDE_FILES in
# /etc/sysconfig/apache2 -- this will make system updates
# easier :)

killerhorse
25.08.04, 11:54
Hallo,

Vielleicht hab ichs übersehen, aber in deiner httpd.conf hab ich kein

NameVirtualHost xxx.xxx.xxx.xxx

gefunden. Die Fehlermeldung sagt ja schon "perhaps you need a NameVirtualHost directive " also schreib das mal (natürlich mit IP stat xxx) in die httpd.conf über die V-Hosts (bzw. die includeten Files)

MfG

Christian

csa888
25.08.04, 12:38
Alles klar! Hat funktioniert... nochmal Danke für Deine Hilfe Christian!!!!