[Debian] Apache vhosts + zugriffsprobleme

tramper

New Member
hi zusammen,

folgende situation:
ich richte mir grade nen webserver mit debian lenny ein. ich möchte dabei einen privaten bereich und einen öffentlichen bereich haben. das hab ich bereits mit vhosts umgesetzt.
privater bereich meint hier ein verzeichnis des weservers, auf dass ich nur mittel einer ausgedachten domain drauf komme die in der hosts-datei des servers und meines rechners zuhause eingetragen ist.

hier die vhost konfigurationen die ich im apache im verzeichnis sites-available eingerichtet hab:

default
Code:
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/web/public
        <Directory /home/web/public>
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/web/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                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 /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>

default-ssl
Code:
<VirtualHost x.x.x.x:443>
        ServerName x.x.x.x
        ServerAdmin webmaster@localhost
        DocumentRoot /home/web/public
        <Directory /home/web/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/default-ssl-error.log

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

        CustomLog /var/log/apache2/ssl_access.log combined

        SSLEngine On
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

private
Code:
<VirtualHost ausgedacht.com:443>
        ServerName ausgedacht.com
        DocumentRoot /home/web/private

        SSLEngine On
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
        ErrorLog /var/log/apache2/flux-error.log
        CustomLog /var/log/apache2/flux_access.log combined
        ErrorDocument 500 "<center><size=5>500</size></center>"
        ErrorDocument 404 "<center><size=5>404</size></center>"
        ErrorDocument 404 "<center><size=5>404</size></center>"
        ErrorDocument 402 "<center><size=5>402</size></center>"

        <Directory /home/web/private>
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/web/private>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                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 /var/log/apache2/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>


Code:
NameVirtualHost x.x.x.x:443
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /home/web/public
        <Directory /home/web/public>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog /var/log/apache2/default-ssl-error.log

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

        CustomLog /var/log/apache2/ssl_access.log combined

        SSLEngine On
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

</VirtualHost>

die verzeichnisstruktur ist -wie in den vhosts erkennbar- folgendermaßen:

/home/web/private
/home/web/public

web und darunter hat 777.

php5, mysql, phpmyadmin ist natürlich auch alles installiert. greife ich nun auf zb den öffentlichen bvereich zu, bekomme ich ganz normal eine leeres verzeichnis. nachdem ich den phpmyadmin ordner ins öffentliche verzeichnis kopiert hatte (nach der installation von phpmyadmin mit aptitude befand es sich in /usr/share), wird dieser auch angezeigt. er hat ebenfalls 777. will ich darauf zugreifen, bekomme ich folgende meldung:

Code:
Not Found

The requested URL /phpmyadmin/ was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny4 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0 Server at

und hier hänge ich, mein latein ist am ende. dass error.log des apache hilft mir nur zum teil:

Code:
[Tue Dec 01 14:56:03 2009] [error] [client x.x.x.x] File does not exist: /usr/share/phpmyadmin, referer: http://x.x.x.x/

er zeigt den verzeichnisinhalt von /home/web/public (vhost: default) korrekt an. warum aber will er dan wieder nach /usr/share/ zugreifen um den phpmyadminordner zu öffnen der sich doch in /home/web/public befindet. :confused:

ich hab den docroot doch in den vhost gesetzt und in der apache2.conf keinen weiteren eintrag dazu gefunden. was hab ich vergessen?
 
Falls phpmyadmin als Debian Package installiert wurde:
/etc/phpmyadmin/apache.conf

Falls Source Installation musst du mal schauen, bin nicht sicher in welchem Pfad sich die .conf dann befindet (denke aber mal im Gleichen).
;)
 
Last edited by a moderator:
Back
Top