VirtualHost Home Directory

Alles, was den Apache betrifft, kann hier besprochen werden.

VirtualHost Home Directory

Postby matz » 10. March 2014 13:42

Hallo zusammen, mein erster Post und schon gleich eine Frage :)
Ich betreibe mit 2 Freunden zusammen einen V-Server (Debian 7, apache2 als Webserver).
Nun möchte ich, das man das Home-Directory als www-Verzeichnis nutzen kann und automatisch ein VirtualHost erstellt wird für jeden Unterordner pro Home-Directory.
Als Beispiel:

/home/max/test/html/

URL zum Aufrufen dann: test.max.url.de

Dazu habe ich die apache2.conf folgendermaßen bearbeiten:


Code: Select all
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </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 ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
        UseCanonicalName Off
        ServerName max.url.de

        VirtualDocumentRoot /home/%-5
        <Directory /home/*/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
<VirtualHost *:80>
        UseCanonicalName Off
        ServerName url.de
        ServerAlias *.url.de
        VirtualDocumentRoot /home/%-5/%-6/html
</VirtualHost>



Fehlermeldungen bekomme ich keine, vhost_alias_module ist auch eingebunden, rufe ich nun jedoch meine Hauptseite auf, bekomme ich als Fehlermeldung:

Code: Select all
Not Found

The requested URL / was not found on this server.

Apache/2.2.22 (Debian) Server at code-masters.org Port 80


im Apache-Error-Log taucht mehrmals diese Meldung auf:
Code: Select all
[client meineIP] File does not exist: /home/_


IP's und URL's habe ich jetzt natürlich ausgetauscht.

Hoffe mir kann da jemand helfen!

Vielen lieben Dank und guten Start in die Woche!
matz
 
Posts: 5
Joined: 10. March 2014 13:34
Operating System: Windows 8.1

Re: VirtualHost Home Directory

Postby Nobbie » 10. March 2014 14:57

matz wrote:IP's und URL's habe ich jetzt natürlich ausgetauscht.


Was ist daran "natürlich"? Das ist eine Geheim-Domain, die niemand kennen darf?

matz wrote:Hoffe mir kann da jemand helfen!


Ich würde es versuchen, allerdings helfe ich grundsätzlich NICHT mehr, wenn IPs und URLs verfälscht werden - in extrem vielen Fällen wird damit auch die Fehlerursache maskiert und das ist äußerst unbefriedigend. Außerdem (s.o.) kann ich nicht verstehen, wozu wir nicht wissen dürfen, was nachher die ganze Welt weiß???

P.S.: Was natürlich sofort auffällt, sind die extrem hohen Tokenwerte 5 und 6:

VirtualDocumentRoot /home/%-5/%-6/html


In Verbindung mit den uns unbekannten Servernamen würde ich blind behaupten, dass das in die Hose geht. Erkläre uns doch bitte genau, was Du da erwartest und worauf die Erwartung beruht.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: VirtualHost Home Directory

Postby matz » 10. March 2014 15:48

Hallo, ach das war die Macht der Gewohnheit das zu verfälschen, tschuldigung :)
Hier der originale Auszug:

Code: Select all
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </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 ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
        UseCanonicalName Off
        ServerName matthias.code-masters.org

        VirtualDocumentRoot /home/%-5
        <Directory /home/*/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>
<VirtualHost *:80>
        UseCanonicalName Off
        ServerName code-masters.org
        ServerAlias *.code-masters.org
        VirtualDocumentRoot /home/%-5/%-6/html
</VirtualHost>


Das mit den Tokens habe ich von einem bekannten gesagt bekommen ... ich bin - wie man sicherlich merkt - nicht allzu fit in solchen Belangen :)

Hier anbei noch mal der Apache-Error-Log:

Code: Select all
[Mon Mar 10 11:25:23 2014] [error] [client 93.191.48.12] File does not exist: /home/_
[Mon Mar 10 11:25:23 2014] [error] [client 93.191.48.12] File does not exist: /home/_
[Mon Mar 10 11:25:26 2014] [error] [client 93.191.48.12] File does not exist: /home/_
[Mon Mar 10 11:25:29 2014] [error] [client 93.191.48.12] File does not exist: /home/_
matz
 
Posts: 5
Joined: 10. March 2014 13:34
Operating System: Windows 8.1

Re: VirtualHost Home Directory

Postby Nobbie » 11. March 2014 11:24

matz wrote:Das mit den Tokens habe ich von einem bekannten gesagt bekommen ... ich bin - wie man sicherlich merkt - nicht allzu fit in solchen Belangen :)


Und schon haben wir die Fehleursache gefunden und die Fitness in solchen Belangen verbessert man in aller Regel damit, dass man die Dokumentation liest. Das musst Du sowieso, denn sonst weißt Du ja gar nicht, was Du da machst und Du willst sicherlich auch gezielt kontrollieren, wie diese Verzeichnisse nachher heißen:

http://httpd.apache.org/docs/2.4/mod/mo ... alias.html

P.S.: Insgesamt finde ich diese Anforderung etwas eigenartig, man kann das so machen, aber Du verbrätst natürlich tonnenweise Subdomains. Je nach Provider kann das Geld kosten. Eigentlich gibt es für diese Anforderung, dass jeder Benutzer auch Daten aus seinem Homeverzeichnis Online stellen kann, eine andere (bekannte) Lösung, über das Modul mod_userdir. In der Praxis läuft das dann darauf hinaus, dass man in der URL nicht eine eigene Domain angibt, sondern den Benutzernamen an die URL anhängt, wie ein normales Verzeichnis, aber mit einer Tilde "~" davor. Das würde dann so aussehen:

http://www.code-masters.org/~max

Das hast Du sicherlich schon einmal gesehen und im Prinzip ist das die Standardlösung, wie man es unter Apache einstellt, dass jeder User Daten aus seinem eigenen Verzeichnis Online stellt. Da sind also keine Subdomains und auch keine VirtualHosts notwendig. Sieht natürlich auch anders aus, aber das ist eigentlich ein Standard.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: VirtualHost Home Directory

Postby matz » 11. March 2014 12:31

Hallo Nobbie, besten Dank für die Erläuterung, über dieses Modul bin ich tatsächlich schon einmal gestoßen :)
Ich wollte es eigentlich mit den Subdomains/Virtual-Hosts so umsetzen, da ich mit dem Framework Laravel arbeite.
Dort mann dann, je nach "Projektaufruf", immer in das public Verzeichnis des Projektes gelinkt werden.
Also konkrekt:
Url: http://www.code-masters.org/~max/projekt1
soll dann in den Ordner /home/max/projekt1/public zeigen

Hast du dafür einen guten Tipp?

Dankeschön!
lg matz
matz
 
Posts: 5
Joined: 10. March 2014 13:34
Operating System: Windows 8.1

Re: VirtualHost Home Directory

Postby Nobbie » 11. March 2014 14:43

matz wrote:Ich wollte es eigentlich mit den Subdomains/Virtual-Hosts so umsetzen, da ich mit dem Framework Laravel arbeite.
Dort mann dann, je nach "Projektaufruf", immer in das public Verzeichnis des Projektes gelinkt werden.
Also konkrekt:
Url: http://www.code-masters.org/~max/projekt1
soll dann in den Ordner /home/max/projekt1/public zeigen


Kaputte Logik - und so oder so (egal oder mod_userdir oder VirtualHost), das ist nicht "einfach so" zu lösen. Im Grunde gesehen musst Du also einen Rewrite programmieren, der grundsätzlich die URL auf das Verzeichnis ./public umschreibt, aber natürlich NUR, wenn noch nicht ./public schon in der URL steht. Da kann man allerdings auch gleich auf mod_userdir verzichten und die ganze Logik mit Rewrite lösen.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: VirtualHost Home Directory

Postby matz » 12. March 2014 08:59

Hallo Nobbie, ja diese Konfiguration wurde mir so vorgeschlagen :(
Danke für deine hilfreichen Antwort bzw. deine Hilfe.
Habe jetzt auf dem Server Plesk installiert um es zu verwalten (für die paar Kleinigkeiten) und die Anzahl der Subdomains beschränkt.
Dennoch werde ich mich durch die von dir verlinkten Dokus lesen, finde das ganze sehr interessant :)
lg matz
matz
 
Posts: 5
Joined: 10. March 2014 13:34
Operating System: Windows 8.1

Re: VirtualHost Home Directory

Postby Nobbie » 12. March 2014 11:47

matz wrote:Dennoch werde ich mich durch die von dir verlinkten Dokus lesen, finde das ganze sehr interessant :)


Das ist eine gute Idee - eigentlich sollte das Dein "täglich Brot" werden. Das ist die originale Apache Dokumentation und wer einen eigenen Server (vServer ist ja genauso frei konfigurierbar) betreiben will, der sollte sich auch entsprechend in der Apache Konfiguration auskennen. Das ist ein und alles, was Du können musst.

Manchmal sind die Beispiele arg mau und wenig hilfreich, aber es gibt zum Glück noch tausende anderer Seiten, wo die Begriffe durch praktische Beispiele erläutert werden; ein simples Beispiel bewirkt meistens viel mehr als tausend Worte.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04

Re: VirtualHost Home Directory

Postby matz » 14. March 2014 13:04

Hallo Nobbie,
naja ich bin hauptberuflich Programmierer und überlasse solche Konfigurationen normalerweise den Systemintegratoren, jedoch möchte ich ja auch nicht wie der "Ochs vorm Berg" stehen.
Vielen Dank für die Hilfe hier!
matz
 
Posts: 5
Joined: 10. March 2014 13:34
Operating System: Windows 8.1

Re: VirtualHost Home Directory

Postby Nobbie » 14. March 2014 15:13

matz wrote:naja ich bin hauptberuflich Programmierer und überlasse solche Konfigurationen normalerweise den Systemintegratoren, jedoch möchte ich ja auch nicht wie der "Ochs vorm Berg" stehen.


Außerdem erhöht man seinen Marktwert... :)

Ich war ja auch viele Jahre in der Branche, aber ich könnte mir nicht vorstellen, "nur" Programmierer geblieben zu sein. Zum einen habe ich als Systemprogrammierer unter UNIX schon einen recht weitreichenden Job gehabt, zum anderen war das aber immer noch nicht genug, um alle Fragen zu beantworten, die sich unsere Kunden stellten.

Im Laufe der Jahre wird derjenige, der sich wirklich dafür interessiert, auch alle möglichen administrativen Aufgaben in verschiedenen Umgebungen (sei es Betriebssystem, sei es Webserver) zu erledigen. Wenn man dann auch noch viel Kundenkontakt hat und herumkommt (ich selbst bin im Laufe der Jahren vom Systemprogrammierer über den Support - auch das sollte man mal gemacht haben - zum "Senior Consultant" gewechselt), dann hat man es (wenn man seine Materie beherrscht) auch nicht schwer, gute Stellenangebote zu bekommen. Ich bin sehr oft von Kunden angesprochen worden, ob ich nicht wechseln möchte. Das beruhigt ungemein, wenn man weiß, dass man gefragt ist.

Ich habe auch in anderen Foren Programmierer kennengelernt, die haben überhaupt kein Interesse daran, über ihre Windows-Welt hinauszuschauen. Die haben dann auch nur ein durchschnittliches Programmierergehalt (das ist gerade heutzutage nicht mehr so der Oberbrüller), weil es davon viele gibt. Und "nur" Systemadmin - o Gott, das fände ich noch schlimmer. Ich habe mir auch nebenher soviel selbst beigebracht (beispielsweise brauchte ich eigentlich keine SQL Kenntnisse für unsere Software - habe ich aber trotzdem gelernt, weil ich das interessant finde).

Ich finde wirklich nichts elender, als solche Fragen, wie sie typischerweise hier gestellt werden, nicht selbst herauszubekommen. Und mit jedem Problem, das man gelöst hat, kann man mehr. Diese einseitige Orientierung nur Programmierer oder nur Systemfuzzi, das ist vielleicht bequem, aber sehr weit kommt man mit seiner Karriere da nicht.

Deswegen: lesen, nachschlagen, lernen, selbst machen. Ist immer besser, als andere zu fragen und machen zu lassen. Wie genial ist das denn heute, wo man wirklich alles per Knopfdruck im Internet findet? Das gab es "zu meiner Zeit" nicht.
Nobbie
 
Posts: 8768
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 5 guests