• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Virtual Host

umbroboy

Newbie
Hallo,

endlich hab ich ein posted gefunden, wo ich vielleicht weiter komm oder ihr mir helfen könnt.

Ich habe PLESK mit SUSE 9.2.

Würde gern eine Subdomain mit webmailer einrichten, welche auf folgendes Verzeichnis zeigt:

Code:
/home/httpd/vhosts/horde/horde/index.php

Habe jetzt in der :

Code:
/etc/apache2/conf.d

eine eigene *.conf Datei die über die httpd.include eingebunden wird.

Sie sieht wie folgt aus:

Code:
<VirtualHost xxx.xxx.xxx.xxx:80>

DocumentRoot /home/httpd/vhosts/
Alias /horde/ /home/httpd/vhosts/horde/

ServerName webmailer
ServerAlias webmailer.*
UseCanonicalName Off
<Directory /home/httpd/vhosts/horde/horde>

<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag magic_quotes_gpc off
php_admin_flag safe_mode off
php_admin_value open_basedir "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
php_admin_value include_path "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
</IfModule>
Options +Includes +ExecCGI FollowSymLinks
</Directory>
</VirtualHost>
Allerdings ging es gestern noch, heute nciht mehr und entweder kommt der 403 fehler oder er findet den Pfad nicht.

Dass sagt zu mindest der apache log.

Was mach ich falsch...

suche schon seit tagen nach dem fehler.

:(

VIelen Dank schonmal.
 

nobbiew

Hacker
Bitte mach nen eigenen Thread ist auf. Das ist ein eigenen Problem.

Kriegst du deine IP-Adresse evtl. über DHCP?. Dann ist ein
<VirtualHost IP:80> gefährlich. Dort sollten dann <VirtualHost DNSNAME:80> stehen.
 
OP
U

umbroboy

Newbie
Hallo nobbiew,

ich denke nicht dass ich es über DHCP bekomme, da wenn ich mir die httpd.conf anschaue sind alle Virtual Hosts so progammiert.


Hier mal ein Bespiel aus der httpd.conf.

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

Dakuan

Hacker
... wenn ich mir die httpd.conf anschaue sind alle Virtual Hosts so progammiert.
Heisst das jetzt das du für jeden Virtual Host eine eigene IP hast oder benutzt du eine IP für alle?

Wenn du nur eine IP hast dann schreibe:
<VirtualHost *:80>

sonst geht alles auf die erste Definition.

Dakuan
 

nobbiew

Hacker
Und wenn du nur eine IP hast, dann gilt die Anleitung von mir

Und wenn du problem hast hilft i.d.R. die durchsicht der Logdateien (/var/log/apache2/access_log, u. /var/log/apache2/error_log) Das ist der default bei Suse, ansonsten halt do wo du sie hinlegst. Und wenn du überhaupt nicht weiterweist die vom Hauptserver, bzw. 1. VirtualHost, denn da landen alle Sachen, die nicht durch einen spezielleren Host angesprochen werden.
 
OP
U

umbroboy

Newbie
Heisst das jetzt das du für jeden Virtual Host eine eigene IP hast oder benutzt du eine IP für alle?

nein ich habe nur eine IP....

Hier mal ein Ausschnitt aus der httpd.conf

  • <VirtualHost \
    XXX.XXX.XXX.XXX:80 \
    >
    ServerName default
    UseCanonicalName Off
    DocumentRoot /home/httpd/vhosts/default/htdocs
    ScriptAlias /cgi-bin/ "/home/httpd/vhosts/default/cgi-bin/"
    <IfModule mod_ssl.c>
    SSLEngine off
    </IfModule>
    <Directory "/home/httpd/vhosts/default/cgi-bin/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
    <Directory /home/httpd/vhosts/default/htdocs>
    <IfModule sapi_apache2.c>
    php_admin_flag engine on
    php_admin_value open_basedir "/home/httpd/vhosts/default/htdocs:/tmp"
    </IfModule>
    </Directory>
    </VirtualHost>


    <IfModule mod_ssl.c>

    <VirtualHost XXX.XXX.XXX.XXX:443 >
    ServerName default-80-237-160-106
    UseCanonicalName Off
    DocumentRoot /home/httpd/vhosts/default/httpsdocs
    ScriptAlias /cgi-bin/ "/home/httpd/vhosts/default/cgi-bin/"
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile /usr/local/psa/var/certificates/certEc29952
    <Directory "/home/httpd/vhosts/default/cgi-bin/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>
    <Directory /home/httpd/vhosts/default/httpsdocs>
    SSLRequireSSL
    </Directory>
    </VirtualHost>

    </IfModule>

    <VirtualHost \
    XXX.XXX.XXX.XXX:80 \
    >
    DocumentRoot /usr/share/psa-horde/
    Alias /horde/ /usr/share/psa-horde/
    Alias /imp/ /usr/share/psa-horde/imp/
    ServerName webmail
    ServerAlias webmail.*
    UseCanonicalName Off
    <Directory /usr/share/psa-horde>
    <IfModule sapi_apache2.c>
    php_admin_flag engine on
    php_admin_flag magic_quotes_gpc off
    php_admin_flag safe_mode off
    php_admin_value open_basedir "/usr/share/psa-horde:/etc/psa-horde:/etc/psa:/tmp:/var/log:/usr/share/doc"
    php_admin_value include_path "/usr/share/psa-horde:/usr/share/psa-horde/pear:."
    </IfModule>
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>


    <IfModule mod_ssl.c>


Und wenn du nur eine IP hast, dann gilt die Anleitung von mir

leider geht dies nicht. Da ich die httpd.conf nicht ändern kann, dass heisst ändern könnte ich Sie schon nur PLESK ändert dass permenatn wieder und überschreibt alles. Habe dann das selbe auch mal mit der subdomain phpmyadmin probiert welche auch in dem

/home/httpd/vhosts/phpmyadmin/

liegt probiert, welche über die HTTPD.include über eine separte Conf Datei eingebunden wird, probiert.

Aber der Server mag einfach nicht.

Ja die Server Logs habe ich auch schon durchgeschaut.

Entweder geht er auf das falsche Verzeichnis:


Code:
[Wed Aug 17 15:21:40 2005] [error] [client 82.135.8.114] File does not exist: /home/httpd/vhosts/horde/horde/horde

oder

Code:
[Wed Aug 17 15:19:16 2005] [error] [client 82.135.8.114] Directory index forbidden by rule: /home/httpd/vhosts/

er hat keine rechte.

Irgendwie ist dass einfach meiner meinung nach ein pfad problem.

:?

Ist der documenten Root gleich dem Directory?

Viele Grüße und Danke
 

nobbiew

Hacker
Sofern du keine NameVirtualHost-direktive irgendwo stehen hast solltest du mit der conf ein Problem haben. Denn du hast unter 80.237.160.106:80 zwei Virtual Hosts. Ganz nach dem Motte Highlander "Es kann nur einen geben" würde er in dem Fall den letzten nehmen, wenn ich mich recht erinnere. Das müsste er dir aber schon beim Starten vom Apache mitteilen.

Ach ja noch was. Was willst du mit ServerName default erreichen? Ist das ein gültiger Name?. Denn das hat nichts mit dem _default_ von Apache zu tun.
 
OP
U

umbroboy

Newbie
Hallo,

also ich habe ja auch PLESK drauf und von PLESK wird das eben so konfiguriert. Es sind auch nur AUsschnitte, ich wollte auch nicht alles aus der HTTPD.conf posten.

Default ist einfach ein leeres Template. Sobald ich eine Subdomain neukonfiguriere über PLESK ergänzt er die restlichen Daten.

Allerdings möchte ich ja die subdomain übergeordnet anlegen. Sprich für mehrere Domäns.

/home/httpd/vhosts/horde

Die weitere Verzeichnisstruktur ist:

/home/httpd/vhosts/Domain1
/home/httpd/vhosts/Domain2

etc

Eine Fehlermeldung von Apache folgt nicht.
 
OP
U

umbroboy

Newbie
Hallo nobbiew,

also ich hab jetzt mal folgendes gemacht wie nach deiner Anleitung:

In dem Verzeichnis:
Code:
/etc/apache2/vhosts.d

habe ich eine
Code:
webmailer.conf
reinkopiert die aussieht wie folgt:

Code:
<VirtualHost XXX.XXX.XXX.XXX:80> 
   ServerName webmailer
   ServerAlias webmailer.* 
   DocumentRoot /home/httpd/vhosts/horde/horde
   ErrorLog /home/httpd/vhosts/horde/horde/error_log 
   # Wenn schon, denn schon, aber ggf auch /etc/logrotate.d/apache2 anpassen 
   CustomLog "/home/httpd/vhosts/horde/horde/access_log" common 
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag magic_quotes_gpc off
php_admin_flag safe_mode off
php_admin_value open_basedir "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
php_admin_value include_path "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
</IfModule>
   <Directory "/home/httpd/vhosts/horde/horde> 
      Options None 
      AllowOverride None 
      Order allow,deny 
      Allow from all 
   </Directory> 
</VirtualHost>

Dann habe ich in die httpd.include folgenden Pfad hinzugefügt:

Code:
Include /etc/apache2/vhosts.d/*.conf

Danach den Apache neugestartet:

Code:
httpd2 -t && rcapache2 reload

Diese Meldung kam:

Syntax OK
Reload httpd2 (graceful restart) done


wenn ich jetzt webmailer.xxx.de eingebe, kommt ein neues Fenster mit Datei speichern unter.

Der Accesslog gab dass aus:

82.135.71.235 - - [19/Aug/2005:13:33:17 +0200] "GET / HTTP/1.1" 200 2225


Der Errorlog blieb leer.
 

nobbiew

Hacker
Sorry, aber jetzt muss ich die Flügel strecken. Nachdem ich nicht wusste was PLESK ist, hab ich mich jetzt mal schlau gemacht.

Das greift ziemlich in deinen WEB-Server ein und ist derzeit (zumindest habe ich nichts anderes gefunden) nur für SuSE 9.1 freigegeben. Bei SuSE 9.1 ist aber noch der Apache 1.3 als Standard vorgeben. Ich weiß daher nicht wie PLESK auf den Apache2 reagiert.

mir ist auch nicht ganz klar was bei
Code:
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag magic_quotes_gpc off
php_admin_flag safe_mode off
php_admin_value open_basedir "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
php_admin_value include_path "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
</IfModule>
Alles geschieht.

Hast du schon mal bei SwSoft angefragt, wie es mit SuSE 9.2 u. Apache2 aussieht?
 
OP
U

umbroboy

Newbie
Hallo,

laut SW Soft sieht es wie folgt aus:

httpd.include wird immer von Plesk generiert, deshalb es ist sinnlos in dieser Datei etwas zu aendern. Sie muessen die Datei httpd.conf aendern:
Sie koennen den benoetigten Eintrag (Virtual Host) aus httpd.include kopieren und in httpd.conf nach der Zeile
--
Include /etc/httpd/conf/httpd.include
--
hinzufuegen. Dann wird es nicht ueberschrieben.

Also man sollte am Ende von der Httpd.include den Satz mit dem Virtual Host hinzufügen.

Aber ich denke dass es so auch gehen müsste.

Bei diesem Code:

Code:
<IfModule sapi_apache2.c> 
php_admin_flag engine on 
php_admin_flag magic_quotes_gpc off 
php_admin_flag safe_mode off 
php_admin_value open_basedir "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:." 
php_admin_value include_path "/home/httpd/vhosts/horde:/usr/share/php:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:." 
</IfModule>

Werden nur die Pfade gesetzt für das Verzeichnis dass z.b. php dateien ausgeführt werden können.Etc...

Nur ich denke das müsste soweit schon konfiguriert sein, nur kommt halt jetzt gleich das speichern unter fenster wenn ich die subdomain aufrufe.
 

nobbiew

Hacker
Sorry umbroboy, ich steh im Wald und seh die Bäume nicht.

Der Fehler passiert eigentlich immer dann, wenn ein falscher MIME-Type vom Apache o. der Anwendung mitgegeben wird. Ist auch etwas schwierig zu suchen, denn in den Logs sind keine Fehler zu entdecken.

Im Grunde müsstest du dir mal den Datenstrom ansehen und schauen, welche MIME-Informationen mitgeliefert werden. Es reicht nicht die Datei abzuspeichern und dann anzusehen, da der MIME-Type i.d.R. nicht mit abgelegt wird.

Ich denke der beste weg ist noch mal jungfräulich anzufangen und die Sachen Schritt für Schritt einzutragen. Wie gesagt, ich habe keine Ahnung wie sich PLESK mit apache2 u. SuSE 9.2 verhält, da es auch nicht in der Supportliste steht.
 
OP
U

umbroboy

Newbie
Hallo,

okay also nochmal von vorn: :)

ICh hab in der

Code:
/etc/apache2/httpd.include

Folgenden Eintrag angefügt:

Code:
<VirtualHost XXX.XXX.XXX.XXX:80>

DocumentRoot /home/httpd/vhosts/horde/horde
ServerName webmailer
ServerAlias webmailer.*
UseCanonicalName Off
<Directory /home/httpd/vhosts/horde/horde>
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag magic_quotes_gpc off
php_admin_flag safe_mode off
php_admin_value open_basedir "/home/httpd/vhosts/horde/horde:/usr/share/php:/tmp:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
php_admin_value include_path "/home/httpd/vhosts/horde/horde:/usr/share/php:/tmp:/usr/local/psa/admin/plib:/usr/local/psa/admin/javascripts:/usr/local/psa/admin/plib/locales:/usr/local/psa/admin/auto_prepend:."
</IfModule>
Options +Includes +ExecCGI FollowSymLinks
</Directory>
</VirtualHost>

Diese lädt der Apache2 mit.

Gebe ich jetzt ein:

webmailer.XXX.de

Kommt die 403 Meldung, Objekt nicht gefunden.

In der Adressleiste vom IE steht dann allerdings das drin:

http://webmailer.XXX.de/horde/login.php?Horde=102cfb5127350f084500dd56c1e11758

Die Daten befinden sich allerdings im Verzeichnis

/home/httpd/vhosts/horde/horde


Der Errorlog gibt aber folgendes aus:

Code:
[Tue Aug 23 11:18:25 2005] [error] [client 82.135.69.65] File does not exist: /home/httpd/vhosts/horde/horde/horde
Und greift komishcerweise auf ein anderes Verzeichnis.

Nur ich versteh einfahc nicht warum.

Viele Grüße
 

nobbiew

Hacker
Schau dir mal alle Vezeichniseinträge durch.
Das ist etwas zu viel horde.

Offensichtlich gibt es im DokumentRoot eine datei index.html, die dich umleitet auf horde/login.php...

Ich Denke mal dein DokumentRoot sollte /home/httpd/vhosts/horde heißen. Dann musst du aber auch die Directory-Anweisung anpassen.
 
OP
U

umbroboy

Newbie
Hallo,

also eine Umleitung find ich ned.

Der richtige Pfad wo die Daten drin liegen ist aber:

/home/httpd/vhosts/horde/horde/index.php

ich schau mal weiter..

Viele Grüße
 
Oben