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

Virtuelle Hosts und verschiedene Ports.

Bin mir nicht sicher ob die Frage hier richtig ist aber ich versuche es mal.

Also ich möchte gerne folgendes erreichen:

verzeichnis_01
verzeichnis_02
SymLink prod -> verzeichnis_01
SymLink test -> verzeichnis_02

VirtuellerHost auf prod:

NameVirtualHost 192.168.0.1
<VirtualHost 192.168.0.1>
ServerName irgendeinnamehier von dyndns
DocumentRoot /srv/www/projects/xyz/prod
<Directory "/srv/www/projects/xyz/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Das funktioniert wunderbar

Sobald ich aber dazu folgendes einfüge:

Listen 5555
<VirtualHost 192.168.0.1:5555>
DocumentRoot /srv/www/projects/xyz/test
<Directory "/srv/www/projects/xyz/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

nach dem neustart von Apache bekomme ich folgenden Fehler oder eher gesagt Warnung:
mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results

Der Apache lauft, aber die port Angabe leitet ihn natürlich nicht in das test Verzeichnis.

Was mache ich falsch, oder gibt es eine andere Möglichkeit dies zu bewerkstelligen. Eine Prod- und Testumgebung, die sich nur im Port unterscheiden.
 
Ich habs nicht getestet, aber so könnte es gehen:

Code:
Listen 80
Listen 5555

NameVirtualHost:80
NameVirtualHost:5555

<VirtualHost 192.168.0.1:5555>
  #Was auch immer Du hier brauchst.
</VirtualHost>
 
Code:
Listen 80
Listen 5555

<VirtualHost 192.168.1.2>
  ServerName port80.zuhause.de
  ...
</VirtualHost>
<VirtualHost 192.168.1.2:5555>
  ServerName development.zuhause.de
  ...
</VirtualHost>

nbkr:
NameVirtualHost *:Port (bzw. IP:port), nicht NameVirtualHost:port
 
nbkr schrieb:
Sorry - übersehen. Wie gesagt, nicht getestet.

Macht nichts nbkr, trotzdem hat mir dein Tipp super geholfen, weil es endlich geklappt hat :).

Erst hatte ich noch Probleme mit Address already in use: make_sock: could not bind to address [::]:80 aber das habe ich dann auch noch behoben. Ich fand raus, dass der Eintrag Listen 80 schon in der listen.conf vorhanden war.

Nun jetzt habe ich aber noch eine Frage die vielleicht in ein neues Thema reinmüsste, aber ich versuche hier trotzdem.

Nun habe ich jetzt meine Produktions und Testumgebung. Habe mir für Test einfach irgendein Port ausgedacht, aber wie kann ich sicher sein dass dieser Port nicht von irgendeinem Dienst schon verwendet wird. Ich will ja nicht irgendein Port öffnen und mir damit das System unsicher machen.

Danke für die Hilfe!
 
Wenn der Port schon genutzt wird erhältst Du eine Fehlermeldung beim Starten des Apache. Sicherheitstechnisch ist nicht der offene Port das Problem, sondern die Anwendung die darauf hört. Insofern ist jeder Port auf den Du den Apache hören lässt sicher bzw. unsicher. So sicher bzw. unsicher wie eben der Apache.

Im übrigen kannst Du dir mit netstat anzeigen lassen welche Ports gerade von welchem Programm genutzt werden.
 
Oben