Apache2 Verzeichnisse + Freigbaen + Rechte

K

KGBschnik

Grünschnabel
Hallo,

ich habe jetzt Apache2, Mysql und PHP4 auf Debian Sarge installiert.

Als nächstes würde ich gerne wissen, wie man die Verzeichnisstruktur anlegt...sprich wo welche Ordner für meinen Code und welche Rechte diese haben müssen.

Ich habe jetzt mal testeshalber so gemacht:

/var/www/VHOST/domain.de <- da drin das HTML-Zeugs

Welche Rechte muss ich setzen? (Für das Verzeichnis + Dateien) Wer ist soll der Eigentümmer sein?

FTP-Server ist auch eingerichtet. Funktioniert soweit auch. Wenn ich DAteien hochlade ist der Eigentümmer der FTP-User. Soll das so sein?

Wenn ich jetzt nämlich die IP aufrufe wird mir eine leere Seite angezeigt.
/var/log/apach2/error.log zeigt nichts aussergewöhnliches an...

bin irgendwie ratlos

Wo kann man den nachlesen welche Rechte man am besten setzen sollte und wie man die Verzeichnisse am besten aufbaut auch in Hinblick auf die Zukunft, wenn weitere Internetseiten auf dem Server laufen sollen??
 
Hallo

Sorry, klingt altbacken, aber entweder du hast ein gutes Buch, oder du liest das in der Dokumentation zu Apache nach.
Die Verzeichnisse sollten normalerweise dem Apache-User gehören, es sei denn du lässt ihn in einer chroot-Umgebung für die User laufen.
Der default Apache-User unterscheidet sich von System zu System.
Wenn du als root ein Verzeichnis innerhalb des documentroot anlegst, achte darauf dass es dem Apache-User gehört.
Wenn du eine leere Seite bekommst, und keine Fehler auftreten, könnte es sein dass die Indexierung aus ist.
Zumindest musst du den Returncode in der Apache-log sehen.

Gruß Wolfgang
 
Hallo

Sorry, klingt altbacken, aber entweder du hast ein gutes Buch, oder du liest das in der Dokumentation zu Apache nach.
Die Verzeichnisse sollten normalerweise dem Apache-User gehören, es sei denn du lässt ihn in einer chroot-Umgebung für die User laufen.
Der default Apache-User unterscheidet sich von System zu System.
Wenn du als root ein Verzeichnis innerhalb des documentroot anlegst, achte darauf dass es dem Apache-User gehört.
Wenn du eine leere Seite bekommst, und keine Fehler auftreten, könnte es sein dass die Indexierung aus ist.
Zumindest musst du den Returncode in der Apache-log sehen.

Gruß Wolfgang

Ok, werde mich mal an die Doku machen. Habe so durch Suchmaschinen nichts brauchbares gefunden deshalb die Frage im Forum.

Indexierung aus? -> IP/index.php zeigt ebenfalls eine leere Seite an.

Der Apache-User ist www-data. Wenn ich jetzt aber über FTP Dateien hochlade, ändert sich doch der Eigentümer und die Gruppe auf ftpuser und ftp...!?!?
 
Zuletzt bearbeitet:
Und was steht in der Apache-Log? (http-Errorcode)
Was steht denn in der index.php?
Mit Indexierung meinte ich übrigens, die automatische Indexierung, wenn im Verzeichnis keine default index (html perl php ...) gefunden wird.

Gruß Wolfgang
 
Und was steht in der Apache-Log? (http-Errorcode)
Was steht denn in der index.php?
Mit Indexierung meinte ich übrigens, die automatische Indexierung, wenn im Verzeichnis keine default index (html perl php ...) gefunden wird.

Gruß Wolfgang

In der index.php steht einfacher Code, nichts kompliziertes.... eine Tabbelle.
(Seitenquelltext steht übrigens <html><body></body></html>)

access.log:
Code:
Meine-IP - - [23/Sep/2006:14:04:58 +0200] "GET / HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.10) Gecko/20050805 Firefox/1.0.6 (MOOX M3)"

error.log:
Code:
[Sat Sep 23 14:04:55 2006] [notice] Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-16 mod_perl/1.999.21 Perl/v5.8.4 configured -- resuming normal operations
[Sat Sep 23 14:04:58 2006] [error] [client 84.130.238.2] File does not exist: /var/www/VHOST/domain.de/favicon.ico

Der Apache-User ist www-data. Wenn ich jetzt aber über FTP Dateien hochlade, ändert sich doch der Eigentümer und die Gruppe auf ftpuser und ftp...!?!?

Also nichts auffälliges... Ich kann mir nur denken, dass es an den Rechten liegt...
 
Hallo

Ruf doch mal die Datei direkt auf.
Also mit trailing Filename /index.php.
Wenn es an der Rechten liegt, bekommst du aber IMHO einen Eintrag im error_log.
Leg doch mal eine simple index.html in das Verzeichnis, und ruf diese auf.
Vermutlich ist die Reihenfolge der default index nicht in deinem Sinn, oder *php garnicht enthalten.
Auf was steht denn dein DirectoryIndex?

Gruß Wolfgang
 
Hallo

Ruf doch mal die Datei direkt auf.
Also mit trailing Filename /index.php.
Wenn es an der Rechten liegt, bekommst du aber IMHO einen Eintrag im error_log.
Leg doch mal eine simple index.html in das Verzeichnis, und ruf diese auf.
Vermutlich ist die Reihenfolge der default index nicht in deinem Sinn, oder *php garnicht enthalten.
Auf was steht denn dein DirectoryIndex?

Gruß Wolfgang

Wir kommen dem Fehler näher:

Ich habe jetzt 2 Sachen gemacht:

1.) eine index.html angelegt als root direkt auf dem Server
2.) meine index.php gelöscht und eine neue auch als root angelegt.

Ergebnis:

Ich gebe IP in den Browser ein und die PHP-seite wird angezeigt. Bei direkter Eingabe der index.html wird diese dann auch angezeigt. Die anderen per FTP hochgeladenen PHP-Files werden aber immer noch nicht angezeigt.

Also Rechte?!?? Aber wie soll ich die setzen und vor allem habe ich immer noch den FTP Upload im Hinterkopf :)

PS: DirectoryIndex index.php index.html index.htm
 
Hallo

Was sagt denn deine error-log, wenn du eine per ftp erzeugte (hochgeladene) Datei direkt aufrufst?
Welche Rechte hat denn diese Datei?
Ein Würgaround wäre, den ftp-User zu der Gruppe des Apache hinzuzufügen. Ist das ein im Netz stehender Server oder nur im Lan? Ich hoffe mal nur im Lan, denn dazu sollte der Admin schon wissen was er tut. ;)
Oder du legst einen Apache User für deinen ftp-Server an, der die entsprechenden Rechte hat.
Ein HTTP-Server mit ftp-Zugriff ist immer so eine Sache, wo man genau aufpassen sollte, wer was darf.
Anonymer Zugriff auf den ftp verbietet sich da von selbst.
Besser wär es, die Vhost unter den User laufen zu lassen und zu chrooten.
Dann könntest du für jedes Vhost-root einen ftp-User erstellen.

Gruß Wolfgang
 
Hallo

Was sagt denn deine error-log, wenn du eine per ftp erzeugte (hochgeladene) Datei direkt aufrufst?
Welche Rechte hat denn diese Datei?
Ein Würgaround wäre, den ftp-User zu der Gruppe des Apache hinzuzufügen. Ist das ein im Netz stehender Server oder nur im Lan? Ich hoffe mal nur im Lan, denn dazu sollte der Admin schon wissen was er tut. ;)
Oder du legst einen Apache User für deinen ftp-Server an, der die entsprechenden Rechte hat.
Ein HTTP-Server mit ftp-Zugriff ist immer so eine Sache, wo man genau aufpassen sollte, wer was darf.
Anonymer Zugriff auf den ftp verbietet sich da von selbst.
Besser wär es, die Vhost unter den User laufen zu lassen und zu chrooten.
Dann könntest du für jedes Vhost-root einen ftp-User erstellen.

Gruß Wolfgang

Wird angezeigt:
-rw-r--r-- 1 root root 40 2006-09-23 14:46 index.html
-rw-r--r-- 1 ftp ftp 40 2006-09-23 14:46 index.html

Wird nicht angezeigt:
-rw-r--r-- 1 ftp-user ftp 5272 2006-09-23 16:54 index.php

Kannst du mir das Vorgehen erläutern?

Es werden quasi nur Dateien angezeigt, die ich local auf dem Server erstellt habe... ich versteh das nicht... obwohl die Rechte an sich gleich sind.
 
Zuletzt bearbeitet:
Ich habe es raus...Es lag weder an den Rechten noch an dem Besitz der Dateien.

Ich habe mal einfach an den Kop meiner PHP-Indexseite ein echo 'test'; geschrieben und sie da es wurde angezeigt. Jetzt frage ich mich aber warum der Rest nicht angezeigt wird.

Fehler mir irgendwelche Pakete?

wie bekomme ich das raus?
 
Hallo

Das hat dann aber sicher etwas mit dem PHP selbst zu tun.
Insofern ist das eine PHP-Frage.
Du könntes dir ja mal den Telnet-Dialog ansehen, da bekommst du u.U. mehr Infos. (Header usw.)
Prüfe deinen php-Code auch nochmal.
Gruß Wolfgang
 
PHP-Code ist in Ordnung. Die Seite wird auf einem anderen Server perfekt angezeigt.

Das mit dem Telnet-Dialog kenne ich bisher auch noch nicht.

Kann es sein, dass mir Pakete fehlen? Wenn ja welche?
 
Dann Informier dich mal darüber. Als Serveradmin ist das Basiswissen.


Woher soll das hier jemand wissen?
Was du für Pakete installiert hast, kannst nur du selbst wissen.

Eventuell wär ja auch mal ein phpinfo ganz nützlich.


Gruß Wolfgang

Ok ich habe mich informiert und es wurde mir als Antwort ein "OK" geliefert.

Was wären denn Variablen die falsch gesetzt sein könntne in der php.ini? Ist alles auf Standart bisher
 

Ähnliche Themen

Problem mit Apache2 + MySQL Server

Habe da ein Problem was nicht wegbekomme

Apache2 + php-fcgi Fehler

Zurück
Oben