PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit VirtualHost (Apache)



Gromobir
21.03.11, 16:31
Schönen guten Tag,
Ich betreibe einen vServer und habe leider ein kleines Problem mit der richtigen Konfiguration von Apache, was VirtualHosts angeht:

Auf dem Server läuft eine Webseite und ein Blog, welche ich mit jeweils unterschiedlichen Domains (domain1.de und domain2.de) erreichen möchte.
Das eingesetzte Betriebssystem ist CentOS.

Zunächst versuche ich Domain1 auf den Wordpress Blog zeigen zu lassen und habe, analog zur Apache Dokumentation, dazu den folgenden Eintrag ans Ende der httpd.conf geschrieben:


NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain1.de
ServerAlias domain1.de *.domain1.de
DocumentRoot /var/www/html/blog
</VirtualHost>


Wenn ich nun Apache neu starte, passiert folgendes:
1.) Der Blog ist unter Domain1 zwar erreichbar aber das Layout ist total zerschossen. Es wird nur reiner Text angezeigt.
2.) Der öffentliche Ordner /var/www/html/blog ist nicht mehr unter http://serverip/blog zu erreichen.

Wenn ich den VirtualHost Eintrag wieder entferne, ist alles wieder wie gehabt und http://serverip/blog ist auch von aussen zu erreichen.

Habt ihr eine Idee was hier falsch läuft und wie man das beheben könnte?
Vielen Dank! :)

DrunkenFreak
21.03.11, 19:36
Setze DocumentRoot richtig.

Gromobir
23.03.11, 16:50
Guten Tag,
@DrunkenFreak: Danke für deinen Beitrag, im Endeffekt war es jedoch ein kleines Problem mit Django, mit dessen Hilfe ich die Seite erstellt habe.

Im Zuge dessen tut sich aber nun leider ein etwas anders Problem auf:
Ich habe es nun so hingebogen, dass die Seite unter domain.tld/django_project/django_app erreichbar ist. Ich möchte jedoch, dass diese Seite direkt aufgerufen wird, wenn ich domain.tld eintippe.

Gibt es eventuell die Möglichkeit einen Alias so zu setzen, dass bei jedem Aufruf von domain.tld automatisch "domain.tld/django_project/django_app" aufgerufen wird?

Roger Wilco
23.03.11, 19:11
Auch hier gilt im Prinzip die Antwort von DrunkenFreak: Setze das DocumentRoot für die Domain richtig.

Gromobir
23.03.11, 19:51
Hallo Leute,
Ich versuche mal den Sachverhalt etwas deutlicher zu machen. Leider scheint das Ganze etwas komplexer zu sein als gedacht.

Ich habe ein Django Projekt gemacht und dieses ist nun auch auf meinem Server unter http://serverip/projectname/appname zu erreichen.
Der relevante Teil meiner httpd.conf sieht wie folgt aus:

NameVirtualHost *:80

<VirtualHost _default_:*>
DocumentRoot /var/www/html/
WSGIScriptAlias /projectname /var/www/html/projectnamei/app.wsgi
</VirtualHost>

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /var/www/projectname/ #Dieser Ordner stelle einfach eine
# Kopie des Ordners unter /var/www/html dar
WSGIScriptAlias /projectname /var/www/projectname/app.wsgi
</VirtualHost>

Include /etc/httpd/conf/phpmyadmin.conf


Meine app.wsgi sieht hierbei wie folgt aus:



import os
import sys
path = '/pfad/zum/eigentlichen/projekt'
if path not in sys.path:
sys.path.append(path)

os.environ['PYTHON_EGG_CACHE'] = '/pythonegg'
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()


Nun habt ihr mir geschrieben ich muss den DocumentRoot richtig setzen. Mach ich gerne aber wohin muss dieser denn nun zeigen?
Wenn ich ihn direkt auf das Django Projekt zeigen lasse, funktioniert das leider nicht...

Was ich im Prinzip möchte ist einfach, wie schon eingangs beschrieben, www.domain.tld auf http://serverip/projectname/appname direkt zu linken

DrunkenFreak
23.03.11, 21:04
Ich denke, du bist mit deinem Server überfordert.

Hilfe zur Selbsthilfe. (http://httpd.apache.org/docs/2.0/en/mod/core.html)

Das hier auch vllt mal lesen. (http://daemonkeeper.net/70/dein-neuer-linux-server/)

Gromobir
23.03.11, 22:31
Ich frage mich gerade, ob ich nun lachen oder beleidigt sein soll. Am besten belasse ich es bei Ersterem. Hab dich auch lieb, Herr DrunkenFreak. :)

Für Konstruktives bin ich immer noch gerne zu haben!

marce
24.03.11, 07:39
"es funktioniert nicht" ist leider keine Fehlermeldung.

Setze also das DocumentRoot und alles, was auf das Projekt sonst noch so zeigt, richtig. Mit fallen da in der Config insges. 3 potentielle Kandiaten auf.

Dann testen - wenn "es nicht geht" - finde heraus, wie die _exakte_ Fehlermeldung lautet - und poste diese, mitsamt den relevanten Config-Files. Ach ja - Logfiles sind meist detailierter als Browserfenster.

TheChris
30.03.11, 11:29
Also ich habe ein ähnliches problem
er will zum verecken nicht meine domain nehmen
ich habe schon zig dateien durch geforstet und sie auch dem entsprechend geändert

also hostname -f zeigt mir schon mal das richtige an und der server ist auch über diese domain zu erreichen.
Jedoch verweisst der indianer den browser wieder auf die ip.


<VirtualHost *:80 >

ServerAdmin meine@mail.de
ServerName www.domain.de
ServerAlias domain.de w.domain.de ww.domain.de *.domain.de
# Anmerkung: Sicherstellung der Erreichbarkeit bei Schreibfehlern; *Domain --> Problem mit Subdomains
DocumentRoot /var/www/

<Directory /var/www/>
Order Deny,Allow
Allow from all
Options -Indexes
# option = none
</Directory>
</VirtualHost>

ich habe mit schon zig tutorials rein gepfiffen und das hier und in fast allen steht eigentlich das selbe

http://httpd.apache.org/docs/2.0/ bringt mich auch nicht gerade weiter :ugly:
je weiter ich da lese ,desto mehr kratz ich mir am kopf und die tabs im browser werden immer mehr bis ich irgendwann gar nicht mehr zurecht komme und die tabs wieder dicht mache und noch mal von vorn beginne.

Für jeden tip wäre ich dankbar

Liebe Grüße und besten dank

Chris

Roger Wilco
30.03.11, 18:22
er will zum verecken nicht meine domain nehmen
Das ist keine Fehlerbeschreibung. Mit etwas ausführlicheren Informationen könnte dir vielleicht sogar jemand helfen.

TheChris
30.03.11, 18:27
danke für die antwort
das problem ist das er mir keine fehlermeldung auspuckt.
wenn ich ihn restarte bzw nen reload mache kommt nix anderes als wenn er normal startet

ich gebe die domain im broswer ein und siehe da in der adresszeile ist die ip meines servers.

zb www.meinedomain.de und raus kommt http://121.34.56.78/index.php <--- firefox + IE

und mehr info gibt er mir auch nicht preis

Roger Wilco
30.03.11, 18:31
Es muss ja keine Fehlermeldung geben. Aber der richtige Domainname, was du erwartest, was tatsächlich passiert und die vollständige Apache httpd Konfiguration wären schon ein Anfang.