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

[gelöst] getrennte htdocs(webs) und getrennte mysqls

Hallo...
Nach vielen googeln suche ich jetzt doch die Hilfe in einem Forum, vielleicht fehlt mir ja auch nur der Anstoß wonach ich wirklich suchen muss..

Im Moment habe ich folgende Situation.
Einen Webserver, dort liegen im Verzeichnis .../www/htdocs/ verschiedene Projekte projekt1, projekt2, projekt3
die sich über eine Webseite dann erreichen lassen
ww.eineseite.de/projekt1
ww.eineseite.de/projekt2 etc.
Zu den Seiten gehört jeweils eine MYSQL Datenbank, die liegen var/lib/mysql

Ich möchte jetzt gern alles mehr getrennt haben.
Also direkt im Ordner .../www/ die verschiedenen Projekte
.../www/htdocs_proj1
.../www/htdocs_proj2
etc.

die dann jeweils ein eigenes mysql haben etc.
Wie das dann im web aufgerufen werden muss weiß ich nicht sicher.. ? eine eigene adresse? ww.projekt1.de ww.projekt2.de etc? oder bleibt es bei dem ww.eineseite/projekt1 etc.. nur das dann iiirgendwie umgeleitet werden muss...?

Ich hoffe man kann daraus verstehen, was meine Absichten sind und hoffe jemand hat eine Idee für Lösungsansätze, oder gleich eine komplette HowTo-Lösung...

Danke an jeden der sich Gedanken macht und Zeit nimmt und helfen kann....


Damit man Bezug auf die verschiedenen Fragen nehmen kann, hier eine Nummerierte Kurzauflistung

1.) wie bekomme ich die trennung von verschiedenen webs im /www/-Ordner hin

2.) wie lässt sich dann für die verschiedenen webseiten jeweils ein eigenes mysql einrichten

3.)wie erfolgt der Aufruf übers Internet, muss ich umleiten? wenn ja ..wie..?
 

nbkr

Guru
little_holly schrieb:
1.) wie bekomme ich die trennung von verschiedenen webs im /www/-Ordner hin
Virtualhost heißt das Stichwort. Damit kannst Du für jede Domain ein einges DocumentRoot anlegen.

little_holly schrieb:
2.) wie lässt sich dann für die verschiedenen webseiten jeweils ein eigenes mysql einrichten

Ein eigener mySQL Daemon für jede Seite macht keinen Sinn, erstell einfach für jedes Projekt eine eigene MySQL Datenbank und vergib die Zugriffsrechte entsprechend.

little_holly schrieb:
3.)wie erfolgt der Aufruf übers Internet, muss ich umleiten? wenn ja ..wie..?

Normalerweise macht man das über eigene Domains oder auch Subdomains. Ein Umleitung über einen Ordner ist auch machbar, aber umständlich.
 
OP
L

little_holly

Newbie
Hey nbkr, danke für die schnelle antwort, ich denke mit den Tipps komme ich bei meienr Suche schon ein ganzes Stück weiter..

Was den mysql-deamon angeht hast Du wahrscheinlich auch Recht... Ich hatte nur Bedenken, wenn zwei projekte eine Datenbank mit gleichem namen haben.. naja aber da sollte man wohl eh drauf acht geben, keien gleichen namen zu vergeben...

Punkt 3 klingt für mich noch etwas schwieriger.. aber ich denke auch beim Anlegen von subdomains hilft googeln weiter..

Darum erst mal ein riesen Danke..
 

nbkr

Guru
Anlegen von subdomains ist ganz einfach. Einfach bei der Virtualhost Konfiguration den ServerName Wert wertauf wasimmer.eigeneseite.de stellen. Schon hast Du eine Subdomain. DNS musst du dafür nicht einstellen.
 
OP
L

little_holly

Newbie
Danke für die schnelle Hilfe!!
Das mit den Subdomains hört sich gut an und wäre auch genau DAS was ich haben wollte...
Ich wollte also
project1.meineseite.de
und
project2.meineseite.de

wie folgt umsetzen :

Code:
<VirtualHost *>
    ServerName www.project1.meineseite.de
    DocumentRoot /srv/www/project1 (oder /www/htdocs/project1?)
    ServerAdmin webmaster@project1.de
    ErrorLog /var/log/httpd/project1-error_log
    CutsomLog /var/log/httpd/project1-acess_log
</VirtualHost>


<VirtualHost *>
    ServerName www.project2.meineseite.de
    DocumentRoot /srv/www/project2 (oder /www/htdocs/project2?)
    ServerAdmin webmaster@project2.de
    ErrorLog /var/log/httpd/project2-error_log
    CutsomLog /var/log/httpd/project2-acess_log
</VirtualHost>

Ich hoffe da habe ich jetzt keinen Denkfehler drin?
Da es für mic noch ein wenig wie eine Umleitung und nicht wie zwei getrennte webs aussieht..

Ich hab auch keine möglichkeit es lokal zu testen, oder? also solange ich noch keinen Server mit einer echten domaine im www habe?
 

nbkr

Guru
Sieht gut aus, ist eine echte Trennung, keine Umleitung. Die Klammer mit dem (oder muss natürlich raus). Was Du da reinschreibst bleibt Dir überlassen, die Daten müssen sich halt im angegeben Verzeichnis finden lassen.

Einziger Tipp: Bau die ServerName Angabe ein wenig um:

Code:
    ServerName project1.meineseite.de
    ServerAlias www.project1.meineseite.de

Damit ist die Seite sowohl mit als auch ohne www zu erreichen.

Für die normale Adresse also www.meineseite.de musst Du auch noch ein VirtualHost angeben.

Lokal testen kannst Du das auch. Du musst halt in die /etc/hosts was enstprechendes Eintragen. Also z.B.

127.0.0.1 project1.meineseite.de

Damit wird project1.meineseite.de auf den lokalen Rechner umgelenkt. Nach dem Testen den Eintrag wieder rausnehmen, sonsten gehts später online nicht.
 
OP
L

little_holly

Newbie
Danke... das klingt gut..
Es gibt noch eine Sache die mich persönlich verwirrt.. bei dem Einrichten des virtuall host wollte ich mich eigentlich ziemlich nach dem TIPP bzw. HOWTO in diesem Forum richten...

Welches Du ja auch begleitet oder iniziiert hast..
Dort ist zu Anfang die rede davon, verschiedene IPs an die Netzwerkkarte zu binden..
Das habe ich dann auch gemacht.. und es klappt auch *g* kann beide ips anpingen..
Wenn man dann aber zu der zweiten Lösung geht, werden dort anscheiend verschiedene aliase an EINE IP gebunden.. brauche ich für die zweite Lösung nicht mehr die verschiedenen IPs?
Danke für die viele Hilfe!!!!!!!!!
Hätte nie gedacht, dass es auch für einen newbie mit so einer Hilfe machbar ist, bzw. ich überhaupt soweit komme.. =)
Linux wird jeden Tag noooch sympathischer..


Hab es jetzt die beiden aliase wieder aus dem yast entfernt und es so wie in der letzten nachricht des HOWTO-threads gemacht.
nach dem abshließenden Befehl
httpd2 -t && apache2 relaod
kommt es zu folgender Fehlermeldung:
[warn] VirtualHost project1.meintest.de:80 overlaps with VirtualHost project2.meintest.de:80, the first has precedence, perhaps you need a NameVirtualHost directive
[warn] NameVirtualHost 177.23.23.2:0 has no VirtualHost
Syntax OK


Diesen Eintrag NameVirtual Host 177.23.23.2 habe ich aber in der Datei gemacht..
 

nbkr

Guru
Für verschiedene Virtualhosts brauchst Du nicht unbedingt mehrere IP Adressen. Geht auch mit nur einer. Scroll mal in dem Howto Thread ganz runter, da sollte es passen.
 
OP
L

little_holly

Newbie
Danke! =) Ich glaub Dein eintrag kam genau zur gleichen Zeit als ich meinen Eintrag nochmal editiert habe..
Hatte nämlich auch, wie Du schreibst die aliase wieder entfernt
(über yast).
Und bin dann nach dem letzten Eintrag in dem HowTo vorgegangen..
Wo dann die obige Fehlermeldung auftauchte..
 
OP
L

little_holly

Newbie
Hallo nochmal..
Hmm die Fehlermeldung ist tatsächlich so, hatte aber in der /etc/apache2/httpd.conf auch nur stehen
Code:
NameVirtualHost 177.23.23.2
Hab hab das nach Deinem Eintrag jetzt geändert auf
Code:
NameVirtualHost 177.23.23.2[b]:80[/b]
( natuerlich ohne das [ b ] und [/ b] )
Jetzt kommt es immer noch zu den Warnings, diesesmal dann auch mit der :80

[warn] VirtualHost project1.meintest.de:80 overlaps with VirtualHost project2.meintest.de:80, the first has precedence, perhaps you need a NameVirtualHost directive
[warn] NameVirtualHost 177.23.23.2:80 has no VirtualHost
Syntax OK

Eintrag in der
/etc/hotsts
Code:
177.23.23.2 mylinux.meintest.de mylinux project1.meintest.de project2.meintest.de
(die Eintrage mit dem project1 und project2.meintest.de ist das was ich selbst hinzugefügt habe )

der Vollständigkeithalber hier auch noch meine beiden anderen Dateien, also alles was ich bis jetzt gemacht habe..
/etc/apache2/vhosts.d/project1.conf
Code:
<VirtualHost project1.meintest.de:80>
 ServerName project1.meintest.de
 DocumentRoot /srv/www/testproject1
 <Directory "/srv/www/testproject1[b]"[/b]>
 Options None
 AllowOverride None
 Order allow,deny
 Allow from all
 </Directory>
</VirtualHost>

/etc/apache2/vhosts.d/project1.conf
Code:
<VirtualHost project1.meintest.de:80>
 ServerName project1.meintest.de
 DocumentRoot /srv/www/testproject2
 <Directory "/srv/www/testproject2[b]"[/b]>
 Options None
 AllowOverride None
 Order allow,deny
 Allow from all
 </Directory>
</VirtualHost>
( natuerlich ohne das [ b ] und [/ b] )

Anm. Die fett gedruckten " habe ich später mal hinzugefügt, obwohl sie im HowTo ja weggelassen waren...
Hatten aber offensichtlich keinen einfluss auf die Fehlermeldung bzw Warnings..
Hoffe Du oder jemand kann mi dem geschilderten Warnings etwas anfangen..
 

nbkr

Guru
Da muss nicht der Name hin, sondern die IP Adresse.

<VirtualHost project1.meintest.de:80>

<VirtualHost 177.23.23.2:80>
 
OP
L

little_holly

Newbie
Hey Danke für die schnelle Antwort!!
Und siehe da es sind auch alle Warnings verschwunden!!!
Hmm vielleicht sollte man in dem HowTo-Tipp dann auch einen Hinweis machen, denn da steht es ja mit namen statt IPs.

Nachdem das fehlerfrei geklappt hat.. habe ich dannKDE gestartet und in den Browser project1.meintest.de eingegeben...

Und dann... hmm wurde der Inhalt vom standart httdocs-Ordnerangezeigt.

ich denke das hängt vielleichtmit den einstellungen in der /etc/hosts zusammen, da da ja zweimal project1.meintest.de auftaucht
Auszug:....
Code:
127.0.0.1 project1.meintest.de project2.meintest.de localhost

# special IPvaddresses
# 
# ausgelassen 
#
177.23.23.2 mylinux.meintest.de mylinux project1.meintest.de project2.meintest.de
 

nbkr

Guru
Also die /etc/hosts ist garantiert nicht in Ordnung. Da darf pro Name nur eine IP auftrauchen. Kommentiere die zweite Zeile mal aus. Außerdem sehe ich gerade dass Du in der Configdatei aus letztem Post zweimal die project1.meineseite.de in den beiden Dateien drin hast. In der zweiten Datei muss natürlich project2.meineseite.de stehen.
 
OP
L

little_holly

Newbie
Danke für die viele Hilfe...
Nachdem ich die Zeile mit der 127.0.0.1 auskommentiert habe klappt es jetzt! =)

Das andere in der conf-Datei war glaube ich von mir falsch abgetippt.. Aber die Namen hatte ich ja nach Deiner Antwort vom 26ten schon mit der IP Adresse ersetzt...

Bin erst mal richtig happy, dass es jetzt doch noch alles geklappt hat..
Und bin mal gespannt, ob das dann im realen Betrieb mit einer echten tld und eigenen subdomains auch alles so perfekt klappt..

@nbkr Danke nochmal für die lange Gedult, da sich dieses Thema ja doch noch etwas in die Länge gezogen hat...
 
Oben