Ich habe mir auf Windows Vista mit VMware Server 2.0 einen netten Ubuntu Server eingerichtet.
Dies ist schon eine sehr nette "Plattform" um neue Websites aufzubauen und zu Testen..
Aber ich habe das Problem, dass ich keine Subdomain unter Windows besuchen kann.
Wenn ich in Linux in der /etc/apache2/sites-enabled/drupal folgendes Eintrage, ist unter Linux per SSH Konsole ping drupal.localhost erreichbar, unter Windows nicht.
Nehme ich aber z.B unter Linux einen Textbasierten Browser wie links2 (Ja X brauch kein Mensch *g*) kann ich damit ganz normal http://localhost besuchen, mit http://drupal.localhost komme ich auch zur richtigen "Stelle"
Code:
<VirtualHost 127.0.0.2>
DocumentRoot /var/drupal/
ServerName drupal.localhost
<Directory /var/drupal/>
Options Indexes FollowSymLinks MultiViews +Includes
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Wenn ich unter Windows den Apache erreichen möchte muss ich die URL ] eingeben - warum auch immer kein Plan.
Unter Linux die host schaut so bei mir zur Zeit aus:
Code:
127.0.0.1 localhost
127.0.0.2 drupal.localhost
192.168.178.105 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Ich kann aber weder die URL ] noch localhost noch drupal.localhost unter Windows benutzen... (alles nicht anpingbar, ausser localhost aber der hat da was ganz komisches stehen (Ipv6????))
Code:
C:\Users\Simon>ping localhost
Ping wird ausgeführt für Welt [::1] von ::1 mit 32 Bytes Daten:
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms
Ping-Statistik für ::1:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms
Kann es sein das ich unter Windows in die Hosts noch Eintragungen machen muss? Falls ja welche?
So sieht die Hosts bei Windows aus:
Code:
127.0.0.1 localhost
::1 localhost
Falls dies noch hilft Hostname für Linux muss wohl Ubuntu sein, bei Windows ist es Welt (ja ich weiss sehr kreativ *g*)
Naja, woher soll denn der Windows-Host wissen, dass drupal.localhost überhaupt existiert, mal abgesehen davon, dass localhost unter Windows ja ein anderes Ziel hat als localhost unter dem Ubuntu (sind ja effektiv zwei getrennte Rechner)?
Probier mal folgendes:
Verwend als ServerName mal drupal.ubuntu, trag ubuntu in die hosts in Windows ein (mit der IP des Linux-Guests), und ruf das dann mal auf (Neustart vom Apache net vergessen).
Es kann auch sein, dass du den kompletten Namen drupal.ubuntu in die (Windows-)hosts schreiben musst.
19.01.2009, 15:33
Threadersteller
sommergemüse
Klappt nicht so ganz ich schlag mich jetzt mit einem DNS Server rum ist glaubich besser, wenn einmal eingerichtet (bind9)
Geändert von sommergemüse (19.01.2009 um 15:40 Uhr).
19.01.2009, 17:35
LordOfThePings
Und wie soll das dann gehen? Du musst den als Standard-DNS von deinem Windows eintragen, und verlierst damit den Zugriff aufs DNS, wenn die VM nicht läuft...
Und jedesmal wieder umstellen ist wahrscheinlich auch net das, was du willst.
Zeig jetzt nochmal deine hosts von Windows, und die Apache cfg, das muss so auch gehen.
19.01.2009, 20:16
Threadersteller
sommergemüse
Da nochmal neu aufgesetzt, bissel andere Config gleiches Problem *g*
Linux hosts
Code:
127.0.0.1 localhost
127.0.1.1 simonsserver
127.0.1.1 drupal.simonsserver
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
<VirtualHost 127.0.1.1>
ServerName drupal.simonsserver
ServerAdmin webmaster@localhost
DocumentRoot /var/www/drupal/
<Directory /var/www/drupal/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
/etc/apache2/sites-available/default
Code:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug on
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
20.01.2009, 09:48
LordOfThePings
Ersetz mal in der /etc/apache2/sites-available/drupal die IP oben im VirtualHost durch *:80, wie bei der default.
Außerdem die richtige IP eintragen in die Linux Hosts (also
192.168.178.20 simonsserver
192.168.178.20 drupal.simonsserver
192.168.178.20 movie.simonsserverauch unter Linux eintragen)
Danach Apache neustarten und testen.
Wenns immernonet geht:
Kannst du von Windows aus Ubuntu anpingen, mit dem Hostnamen (simonsserver)?
Was gibt ' hostname ' unter Linux aus?
Was gibt ' grep VirtualHost /etc/apache* -R ' aus?
20.01.2009, 16:06
Threadersteller
sommergemüse
Ja, aber nur weil der Hostname in der hosts von Windows mit der IP drin steht.
Hostname gibt simonsserver aus
Grep das hier:
Code:
/etc/apache2/sites-available/drupal:<VirtualHost *:80>
/etc/apache2/sites-available/drupal:</VirtualHost>
/etc/apache2/sites-available/default:<VirtualHost *:80>
/etc/apache2/sites-available/default:</VirtualHost>
/etc/apache2/sites-available/default-ssl:<VirtualHost _default_:443>
/etc/apache2/sites-available/default-ssl:</VirtualHost>
/etc/apache2/sites-available/movie:<VirtualHost *:80>
/etc/apache2/sites-available/movie:</VirtualHost>
/etc/apache2/sites-enabled/drupal:<VirtualHost *:80>
/etc/apache2/sites-enabled/drupal:</VirtualHost>
/etc/apache2/sites-enabled/000-default:<VirtualHost *:80>
/etc/apache2/sites-enabled/000-default:</VirtualHost>
/etc/apache2/sites-enabled/movie:<VirtualHost *:80>
/etc/apache2/sites-enabled/movie:</VirtualHost>
/etc/apache2/apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost>
/etc/apache2/apache2.conf:# logged here. If you *do* define an error logfile for a <VirtualHost>
/etc/apache2/apache2.conf:# Define an access log for VirtualHosts that don't define their own logfile
/etc/apache2/apache2.conf:# even on a per-VirtualHost basis. The default include files will display
/etc/apache2/ports.conf:# have to change the VirtualHost statement in
/etc/apache2/ports.conf:NameVirtualHost *:80
/etc/apache2/ports.conf: # NameVirtualHost statement here
Edit: Geht wohl jetz aber ich habe mit mod_rewrite und so jetzt probleme vorher war bei einem Script
RewriteBase /movie
enthalten was ja nun nicht mehr gilt, habe ich auskommentiert?!
Also in der htaccess türlich ^^
Nochmal edit: Einstellung AllowOverride All musst ich noch machen xD
Aber per web.acti0n.ath.cx bzw movie.acti0n.ath.cx nicht erreichbar nur zum Root-Verzeichnis kommt ihr dann oder????
Geändert von sommergemüse (20.01.2009 um 16:23 Uhr).
20.01.2009, 17:32
LordOfThePings
Jo, kommt ein dir-index, wenn man auf web klickt, gehts.
mod_rewrite musste wahrscheinlich erst aktivieren, is normal aus.
Ansonsten musst du auch noch nen VirtualHost mit dem ServerName web.acti0n.ath.cx anlegen, und noch einen für movie.acti0n.ath.cx, sonst landen die auf dem Verzeichnis, das bei default eingestellt ist.
Ich kenn mich mit drupal ansich net aus... aber was die Fehler angeht, das Apache log is meistens recht hilfreich...
20.01.2009, 21:33
Threadersteller
sommergemüse
Das mit mod_rewrite hab ich ja gelöst ..
Meinst du bei dyndns.com noch 2 holen??
Und woher weiss dann der dyndns dass er den V-Host benutzen soll hmmm
EDIT (autom. Beitragszusammenführung):
Mir kommt da grade ne Idee müsste es nicht per Port forwarding gehen??
Geändert von sommergemüse (20.01.2009 um 21:33 Uhr).
Grund: Antwort auf eigenen Beitrag innerhalb von 24 Stunden!
20.01.2009, 23:57
LordOfThePings
Also, du hast da paar verschiedene Baustellen...
1. DynDNS
es reicht, wenn du einen DynDNS-Host hast (acti0n.ath.cx), bei dem du die Wildcard Funktion einschaltest (damit landet <ALLES>.acti0n.ath.cx bei der gesetzten IP)
Die IP ist normalerweise dann die externe IP deines Routers.
2. Router/Port-Forwarding:
Um dann von der externen IP auf den Apache in der Box zu kommen, muss der Router Port 80 TCP weiterleiten an die IP des Webservers, wie die genau lautet und ob da evtl. noch ein Zwischenschritt nötig ist, kommt auf deine genaue VM-Netzwerkconfig an.
Nachdem aber der Aufruf soweit geht, nehm ich an, dass du diese Schritte bereits richtig durchgeführt hast.
bleibt noch
3. Apache/VirtualHosts
Jede HTTP-Anfrage wird erstmal nur an eine IP:Port Kombi geschickt (eben deine IP:80). Zusätzlich beinhaltet jede Anfrage auch den Hostnamen, über den diese IP abgefragt wurde (da steht dann z.B. music.acti0n.ath.cx drin).
Das verwendet der Apache, um mehrere virtuelle Webserver-Configs auseinanderzuhalten. So kann ein Server auf einem Port mehrere unterschiedliche Domains/Hostnamen bedienen.
Es muss also für jede gewünschte Adresse xyz.acti0n.ath.cx ein entsprechender <VirtualHost> Eintrag angelegt werden. In diesem kannst du dann alle Config-Parameter, wie z.B. das Verzeichnis, das aufgerufen wird, extra einstellen.
An dem Punkt dürfte bei dir grad das Problem liegen.
Hier mal eine beispielhafte Config, basierend auf deiner geposteten:
Dein Drupal o.Ä. muss dann direkt in /var/www/music liegen, damit kein weiterer Index angezeigt wird, sondern gleich eine vernünftige Webseite.
Code:
<VirtualHost *:80>
ServerName music.acti0n.ath.cx
ServerAdmin webmaster@localhost
DocumentRoot /var/www/music/
<Directory /var/www/music/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
Glaub wenn wir hier fertig sind, können wirs fast als HowTo rausgeben ^^
Geändert von LordOfThePings (21.01.2009 um 00:00 Uhr).
21.01.2009, 00:27
Threadersteller
sommergemüse
Cool, funzt sogar
Kann man gerne zu einem HowTo umwandeln kann bestimmt mal einer in Zukunft gebrauchen