Apache und virtual Hosts

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

Apache und virtual Hosts

Postby aahfinsr » 16. November 2013 11:57

Code: Select all
<VirtualHost *:80>
ServerName meinservername.de
DocumentRoot /var/www/


Alias /script1 /usr/share/script1/
ScriptAlias /cgi-bin/script1 /usr/lib/cgi-bin/script1
ScriptAlias /script1/cgi-bin /usr/lib/cgi-bin/script1

   <DirectoryMatch (/usr/share/script1/htdocs|/usr/lib/cgi-bin/script1|/etc/script1/stylesheets)>
   Options FollowSymLinks
   DirectoryIndex index.php index.html
   AllowOverride AuthConfig
   Order Allow,Deny
   Allow From All
   AuthName "script1 Access"
   AuthType Basic
   AuthUserFile /etc/script1/htpasswd.users
   require valid-user
   </DirectoryMatch>

   <Directory /usr/share/script1/htdocs>
   Options   +ExecCGI   
    </Directory>

Alias /script2 "/usr/local/script2"

<Directory "/usr/local/script2">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all

   AuthName "script1 Access"
   AuthType Basic
   AuthUserFile /etc/script1/htpasswd.users
   
   
   Require valid-user
</Directory>


Alias /javascript /usr/share/javascript/
<Directory "/usr/share/javascript/">
   Options FollowSymLinks MultiViews
</Directory>

</VirtualHost>


Dateiebene sieht so aus:
Code: Select all
/var/www/script3
/var/www/script4
in /var/www liegen keine Dateien. Die Verzeichnisse script3 und script4 enthalten Dateien + Unterordner



Wie konfiguriere ich den Apache am besten, so dass wenn man auf "meinservername.de" surft sofort das "script2" aufgerufen wird (sprich /usr/local/programm2)?

Ich habe folgendes probiert:
1. Alias /script2 "/usr/local/script2" geändert in Alias / "/usr/local/script2" --> funktioniert nicht
2. php Datei angelegt, die weiterleitet --> funktioniert aber dann steht als URL logischerweise "meinservername.de/script2" was ich nicht möchte
3. DocumentRoot /var/www/ geändert in DocumentRoot /usr/local/script2 --> Zugriff verweigert ertscheint dann im Browser. Problem wäre dann auch, dass ich dann unter "meinservername.de/script3 oder meinservername.de/script4" nicht mehr script3 und script4 erreichen würde da die unter /var/www liegen.

Was kann ich tun? Ich möchte das Problem in der Apache-Konfiguration lösen.

Danke für eure Hilfe
aahfinsr
 
Posts: 1
Joined: 16. November 2013 11:32
Operating System: Linux

Re: Apache und virtual Hosts

Postby Altrea » 16. November 2013 13:29

Hallo aahfinsr,

Ich habe deinen Beitrag mal von dem Originalbeitrag abgetrennt, denn dein Thema hat absolut Null mit dem Originalthema zu tun.

Apache bietet unterschiedlichste Direktiven um Ressourcen-Routing zu konfigurieren.
Die gängigste Methode wäre den DocumentRoot (von einem VHost) auf das Hauptverzeichnis script2 zu legen und externe Ressourcen über Alias und Directory Zugriffsregeln freizugeben.
Du kannst auch mit rewrites arbeiten, das macht in meinen Augen aber keinen Sinn.

Am wahrscheinlichsten ist jedoch, dass deine jetzige Ordnerstruktur überarbeitet werden sollte. Dann hättest du die meisten deiner jetzigen Porbleme garnicht erst.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 8297
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: Apache und virtual Hosts

Postby Nobbie » 16. November 2013 16:52

aahfinsr wrote:3. DocumentRoot /var/www/ geändert in DocumentRoot /usr/local/script2 --> Zugriff verweigert ertscheint dann im Browser.


Dann musst die Ursache finden (fehlende Berechtigung im Dateisystem und/oder fehlende Allow Klausel in Apache Konfiguration). Denn grundsätzlich ist das die einzige (sinnvolle) Möglichkeit, den DocumentRoot direkt so festzulegen.

aahfinsr wrote:Problem wäre dann auch, dass ich dann unter "meinservername.de/script3 oder meinservername.de/script4" nicht mehr script3 und script4 erreichen würde da die unter /var/www liegen.


Dafür musst Du dann jeweils einen Alias anlegen. Oder (wenn es nicht zwingend eine Lösung innerhalb der Apache Konfiguration sein muss) Du kannst auch einfach symbolic Links in /var/www anlegen, die auf auf /usr/local verweisen (also /var/www/script1 => /usr/local/script1 usw.) und natürlich FollowSymlinks in der Apache Konfiguration angeben.
Nobbie
 
Posts: 8779
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests