Standardweb für Plesk/RootDS bei S4F

d135-1r43

Registered User
Wenn die IP meines Servers im Browser aufgerufen wird oder eine ungültige Subdomain erscheint immer das Web, das ich zuerst angelegt habe. Das möchte ich aber ändern. Wie kann ich diese Einstellung ändern? (Plesk 7.5.4, RootDS bei S4F)
 
Tja, irgendwie hab ich das Problem immer noch nicht lösen können -- und das seit zwei Jahren. Hat keiner eine Idee?
 
Dies sollte im Menüpunkt Servereinstellungen in der Rubrik Server zu ändern sein!
Ändere dazu den Punkt "Kompletter Hostname" mit der gewünschten Domain!

lg Bernhard
 
Das hab ich gerade eben ausprobiert. Nichts hat sich geändert. Ich denke zudem nicht, dass Hostname und Standardweb dasselbe sind. Muss man evtl. in den Apache-Configs was schrauben?
 
Also um das mal eben zu verdeutlichen: Du gibst http://nichtvorhanden.eine-beliebige-domain-auf-deinem-server.tld ein und der Redirect erfolgt auf den ersten angelegten User von 2005?

Standardverhalten (bei nicht vorhandenem Catch-All für eine Domain) sollte das Weiterleiten auf das Plesk-htdocs Verzeichnis sein. Hast Du schon mal Deine Apachen-Konfiguration angeschaut?

--marneus
 
Dann ist da von Anfang an, was falsch. Aus diesem Grund solltest Du ja mal in die default-server.conf *vorkau* schauen. Zu finden wäre diese in
Code:
/etc/apache2/
Diese Konfigurationsdatei behandelt (u.a.) alle Fälle, die nicht durch einen vHost-Container abgedeckt werden.

--marneus
 
Da ist nichts Außergewöhnliches drin zu finden:
Code:
#
# Global configuration that will be applicable for all virtual hosts, unless
# deleted here, or overriden elswhere.
# 

DocumentRoot "/srv/www/htdocs"

#
# Configure the DocumentRoot
#
<Directory "/srv/www/htdocs">
	# Possible values for the Options directive are "None", "All",
	# or any combination of:
	#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
	#
	# Note that "MultiViews" must be named *explicitly* --- "Options All"
	# doesn't give it to you.
	#
	# The Options directive is both complicated and important.  Please see
	# http://httpd.apache.org/docs-2.0/mod/core.html#options
	# for more information.
	Options None
	# AllowOverride controls what directives may be placed in .htaccess files.
	# It can be "All", "None", or any combination of the keywords:
	#   Options FileInfo AuthConfig Limit
	AllowOverride None
	# Controls who can get stuff from this server.
	Order allow,deny
	Allow from all
</Directory>

# Aliases: aliases can be added as needed (with no limit). The format is 
# Alias fakename realname
#
# Note that if you include a trailing / on fakename then the server will
# require it to be present in the URL.  So "/icons" isn't aliased in this
# example, only "/icons/".  If the fakename is slash-terminated, then the 
# realname must also be slash terminated, and if the fakename omits the 
# trailing slash, the realname must also omit it.
#
# We include the /icons/ alias for FancyIndexed directory listings.  If you
# do not use FancyIndexing, you may comment this out.
#
Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">
	Options Indexes MultiViews
	AllowOverride None
	Order allow,deny
	Allow from all
</Directory>

# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the realname directory are treated as applications and
# run by the server when requested rather than as documents sent to the client.
# The same rules about trailing "/" apply to ScriptAlias directives as to
# Alias.
#
ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

# "/srv/www/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "/srv/www/cgi-bin">
	AllowOverride None
	Options +ExecCGI -Includes
	Order allow,deny
	Allow from all
</Directory>

# UserDir: The name of the directory that is appended onto a user's home
# directory if a ~user request is received.
#
# To disable it, simply remove userdir from the list of modules in APACHE_MODULES 
# in /etc/sysconfig/apache2.
#
<IfModule mod_userdir.c>
	# Note that the name of the user directory ("public_html") cannot simply be
	# changed here, since it is a compile time setting. The apache package
	# would have to be rebuilt. You could work around by deleting
	# /usr/sbin/suexec, but then all scripts from the directories would be
	# executed with the UID of the webserver.
	UserDir public_html
	# The actual configuration of the directory is in
	# /etc/apache2/mod_userdir.conf.
	Include /etc/apache2/mod_userdir.conf
	# You can, however, change the ~ if you find it awkward, by mapping e.g.
	# http://www.example.com/users/karl-heinz/ --> /home/karl-heinz/public_html/ 
	#AliasMatch ^/users/([a-zA-Z0-9-_.]*)/?(.*) /home/$1/public_html/$2
</IfModule>


# Include all *.conf files from /etc/apache2/conf.d/.
#
# This is mostly meant as a place for other RPM packages to drop in their
# configuration snippet.
#
# You can comment this out here if you want those bits include only in a
# certain virtual host, but not here.
#
Include /etc/apache2/conf.d/*.conf

# The manual... if it is installed ('?' means it won't complain)
Include /etc/apache2/conf.d/apache2-manual?conf
 
Hm, ich hab gerade mal ein diff drüber laufen lassen im Vergleich zu meiner (SUSE 9.3, Plesk 8.3) und ich habe im Prinzip nur ein merklichen Unterschied gefunden, wer wohl aber keine Lösung des Problems bedeutet:

Im /srv/www/htdocs-Directory-Container habe ich hinter den Options None noch Includes stehen.

Interessant wäre also als nächstes die Datei zz010_psa_httpd.conf. Dort regelt Plesk alle PSA relevanten Redirects. Im ersten vHost-Container <VirtualHost your_ip_goes_here:80> sollte als DocumentRoot /var/www/vhosts/default/htdocs stehen. Ist dies bei Dir auch der Fall? Durchforste mal die Datei nach möglichen Hinweisen.

--marneus
 
Ich nicht:
Code:
 ls /etc/apache2/conf.d/
.  ..  apache2-manual.conf  mailman.conf  mod_perl.conf  php4.conf  subversion.conf  subversion.doc.conf

Kann jemand den Dateiinhalt hier posten?
 
Nein, weil wäre nicht zielführend. Diese Einstellungen müssen bei Dir ja auch in irgendeiner Datei vorgenommen werden. Du musst Dich nun auf die Suche begeben, in allen inkludierten Dateien.

Als root:
Code:
egrep -r '^<VirtualHost [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:(80|443) *>' /etc/apache2/

--marneus
 
Okay, ich bekomme einen Match auf die Datei /etc/apache2/httpd.include.conf

Daraus der relevante Teil:
Code:
<VirtualHost \
                        ##.###.##.###:80 \
                        >
        ServerName default
        UseCanonicalName Off
        DocumentRoot /var/www/vhosts/default/htdocs
        ScriptAlias /cgi-bin/ "/var/www/vhosts/default/cgi-bin/"
        <IfModule mod_ssl.c>
                SSLEngine off
        </IfModule>
        <Directory "/var/www/vhosts/default/cgi-bin/">
                AllowOverride None
                Options None
                Order allow,deny
                Allow from all
        </Directory>
        <Directory /var/www/vhosts/default/htdocs>
        <IfModule sapi_apache2.c>
                php_admin_flag engine on
                php_admin_value open_basedir "/var/www/vhosts/default/htdocs:/tmp"
        </IfModule>
        <IfModule mod_php5.c>
                php_admin_flag engine on
                php_admin_value open_basedir "/var/www/vhosts/default/htdocs:/tmp"
        </IfModule>
        </Directory>
</VirtualHost>

In der selben Datei werden am Ende folgende Includes gemacht:
Code:
Include /var/www/vhosts/$web1/conf/httpd.include

Include /var/www/vhosts/$web2/conf/httpd.include

Include /var/www/vhosts/$web3/conf/httpd.include

Include /var/www/vhosts/$web4/conf/httpd.include

[..]

Include /var/www/vhosts/$webn/conf/httpd.include

Interessanter Weise fehlt bei diesen Includes genau jenes Web, welches das "Standardweb" ist. Hat das was zu bedeuten?
 
Auch interessant: Wenn ich eine nicht definierte Subdomain eingebe, dann erscheint in der Adressleiste nicht etwa die eingegebene Adresse sondern die TLD des Web1 — es scheint also eine Art Umleitung zu geben.
 
Die gestellten Fragen, kann ich Dir leider nicht beantworten, aber inkludiere die Datei von dem fehlenden Web doch mal händisch und starte den Apache neu. Vllt. kriegen wir dann belastbare Fehlermeldungen, die uns weiterführen.

Ich fische genauso wie Du im Dunkeln, aber mich interessiert das Problem :)

Mal ein paar weitere Fragen:
  • Wenn Du nur Deine IP-Adresse eingibst, wo landest Du dann?
  • Welchen Inhalt hat /var/www/vhosts/default/htdocs?
--marneus
 
Problem gelöst. Die Sache mit den Includes war doch nicht so, wie ich vermutet hatte: Die Konfiguration von Web1 war durchaus eingebunden — allerdings gleich am Anfang des Dokuments. Somit wurde der Default-Pfad gleich mit dem von Web1 überschrieben. Diese Zeile nach unten verschoben und alles funktioniert!

Danke für die Hinweise. Ohne den Tipp mit der Regex hätte ich die Datei nicht gefunden.
 
Problem doch nicht gelöst: Plesk überschreibt die httpd.include automatisch mit dem Include an der falschen Stelle.
 
Sowas hatte ich schon befürchtet. Wäre es evtl. eine Option für Dich auf Plesk 8.3 (schrittweise von 7.5.4 aus) upzugraden? Ich hab das vor ca. 1 Monat gemacht und es lief (fast) ohne Probleme.

Ich weiß leider nicht, nach welchem Muster Plesk sich die Konfigurationsdatei zusammenbastelt und schon gar nicht, warum der zuerst angelegte User in der httpd.include ganz oben steht.

Eine zugegeben, unsaubere, Lösung wäre das Anlegen einer Datei mit den richtigen Einstellungen, welche am Schluss inkludiert wird und somit die Einstellungen bzgl. des Default Verhaltens überschreibt.

--marneus
 
Back
Top