Apache Virtual Host und PHPMyAdmin

Hallo zusammen,

hab´ da ein Problem mit der Config von PHPMyAdmin in einem Virtual Host Container in der httpd.conf:

Die Config für das /phpmyadmin-Dir ist per INCLUDE in die reguläre httpd.conf eingebunden, also habe ich diese auch so in den VHost-Container eingebunden - so weit, so gut - nur gibt der Aufruf des VHost/phpmyadmin in einem Browser einen "Page not Found" Fehler.

Da das beim üblichen vorkonfigurierten Host einwandfrei funktioniert, weiß ich nun auch nicht weiter, würde mich aber natürlich sehr über eure Lösungsvorschläge freuen.

Gruß

nowonda
 
Hi,
rufst du den Webserver über die IP auf ?
Das ist ja im normal fall ein domain basirender Virtuell Server also mit dem eintrag:
Server: foo.bar

Dann muß du auch foo.bar aufrufen ansonsten nimmt apache den default webserver oder den ersten Virt server.
Zur not poste hier mal deine httpd.conf ( Abschnitt Virt )


TheDoc
 
Hi,

Die Lösungen hab ich jetzt gefunden und werde Sie für Interessierte hier mal posten. Danke auch an Doc!

1. Die einfache Lösung

Code:
#VHost/phpmyadmin an StandardHost/phpmyadmin umleiten
#URL ändert sich auf StandardHost
#
Redirect /phpmyadmin http://192.168.1.x/phpmyadmin
#

2. Die elegantere Lösung

Code:
#Umleitung ohne das sich die URL ändert
#DSO Rewrite_module muss aktiviert sein
#
RewriteEngine on
RewriteCond %(HTTP_HOST)  ^192.168.1.x$    
RewriteRule ^(/phpmyadmin)(.*) http://192.168.1.y/phpmyadmin$2 [R]
#

Gruß

nowonda
 
hallo zusammen,
hallo nowonda,

Deine Lösung funktioniert sicher, es gibt aber auch noch einen anderen Ansatz, der IMHO noch flexibler und für andere Situationen nützlich ist.
Ich meine das NameVirtualHost Prinzip.

Code:
   1192 <VirtualHost *:80>
   1193     ServerAdmin webmaster@your_domain.de
   1194     DocumentRoot /www/phpadmin
   1195     ScriptAlias /cgi-bin/ "/cgi-files/"
   1196     ServerName phpadmin.your.dom
   1197     ErrorLog /private/var/log/httpd/php-error_log
   1198     CustomLog /private/var/log/httpd/php-access_log common
   1199 </VirtualHost>

Damit kannst du einen eigenen Namen (Server_Name) angeben, unter dem dieser Virtuelle Server erreichbar ist.
Ein Vorteil ist, dass du diesen völlig eigenständig konfigurieren kannst (z. B. eigene Logdateien, eigenes cgi Verzeichnis etc.)
Unter DocumentRoot gibst du das Root-Verzeichnis des virtuellen Servers an.

Du musst jetzt nur noch dafür sorgen, dass der Name deines neuen Servers (hier: phpadmin.your.dom) auf Deine IP Adresse aufgelöst wird (auch 127.0.0.1 ist möglich).
Dies erreichst Du z. B. über einen Eintrag in der Datei /etc/hosts (unter einem Unix-System) bzw. dem entsprechenden Gegenstück unter Windows (Suche: hosts).
Falls Du zu Hause einen DNS Server hast, erstellst Du einen CNAME Eintrag.

Ich benutze diese Prinzip, um verschiedene Projekte unter bestimmten Namen ansprechen zu können.
Provider setzen dieses System ein, um die verschiedenen Verzeichnisse Ihrer Kunden zu verwalten.
 
Hi D.Mon,

danke für den Tipp - werd ich auf alle Fälle mal ausprobieren :)
Schließlich läuft das Ganze auf einem Testrechner unter Debian.

Weißt Du evtl. auch auf die Schnelle, ob es da eine simple Möglichkeit gibt nur die für den spezifischen VHost eingerichtete MySQL-DB anzuzeigen?

Danke und Gruß

nowonda
 
Original von nowonda
Hi D.Mon,

danke für den Tipp - werd ich auf alle Fälle mal ausprobieren :)
Schließlich läuft das Ganze auf einem Testrechner unter Debian.

Weißt Du evtl. auch auf die Schnelle, ob es da eine simple Möglichkeit gibt nur die für den spezifischen VHost eingerichtete MySQL-DB anzuzeigen?

Danke und Gruß

nowonda

Musst Du genauer erklären, was das eigentlich Ziel ist.

Wenn zB die DB nur eine Tabelle enthält und du einfach nur alle Datensätze strukturiert ausgeben möchtest, böte sich an, ein Skript zu schreiben (z. B. php, perl ), das die Datenbank abfragt und eine html Seite generiert, auf der die Daten dann letztendlich angezeigt werden (z. B als html Tabelle).
 
Hi D.Mon,

es geht darum, dass z.B. der Benutzer eines VHost über PHPMyAdmin auch nur "seine", also die für seinen VHost angelegte Datenbank angezeigt bekommt, anstatt alle vorhandenen DBs - auch wenn er sich da mit seinen Daten nicht einloggen kann.

Gibt's da eine Möglichkeit, die "Fremd-DBs" zu verstecken, oder muss ich da irgendwelche Jails anlegen?

Danke und Gruß

nowonda
 
da kenn ich mich, ehrlich gesagt, gar nicht so gut aus.
Ich bin sicher, dass es geht.
Ich nehme an, über die Benutzerberechtigungen in MySQL.
Ich denke, die kann man auch über PhpMyAdmin anlegen.

Eine Frage ist: wie authentifiziert sich der Benutzer ?

Aber wie gesagt,: da kann ich Dir nicht wirklich kompetent weiterhelfen.
Wenn Du es rausfindest, bitte hier posten; interessiert mich auch ;)
 
Zurück
Oben