PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP kann nicht schreiben / Rechte bei Apache



robertoZ
04.01.09, 20:51
Hallo!

Ich hab schon hundert Posts in verschiedenen Foren gelesen heute - und komm einfach nicht ans Ziel. Nur ETWAS trennt mich vom Glück!

Ich habe meinen eigenen Linux Server neu installiert und zwar mit openSUSE 11.0 (schon ein paar Wochen her). Ich habe darauf geachtet, möglichst nichts manuall zu befummeln und habe mit YAST praktisch alles hinbekommen: Apache2, MySQL, PHP5 alles wie "aus der Box/ von der DVD", abgesehen von den Patches die mir von LINUX eingespielt wurden - da bin ich momentan aktuell.

Funktioniert *fast* alles... ausser PHP, das nicht schreiben kann.

Ich habe eine PHP Anwendung installiert (Joomla 1.5) und zwar (wie in deren Anleitung optional vorgesehen) direkt an der Konsole (als root). Da werden dann in einem Verzeichnis unter /srv/www/htdocs einfach die zugehörigen Dateien aus einem ZIP hinentpackt. Alle diese Dateien haben den Modus 775 (root/users/all).

Die Anwendung startet sauber und kann auch auf die MySQL DB zugreifen. Aber sobald sie versucht, eine Datei zu verändern (zu schreiben) - ist sense und es kommt eine Meldung (xxx unwritable).

Als root, mit meiner regulären User-Anmeldung, sogar über FTP kann ich dort Dateien hinschreiben - aber PHP kann das offenbar nicht.

Dazu kommt noch eine andere Sache. Ich habe versucht, probehalber alle diese Dateien auf 777 zu setzen. Geht nicht - das bleibt wirkungslos, wie wenn "etwas" den Modus gleich wieder auf 775 zurücksetzen würde. Ich kann auch nicht den Owner der Dateien ändern. Dies ist nicht nur für die Dateien der PHP-Anwendung der Fall, sondern im ganzen htdocs.

Kann mir jemand helfen???

Am liebsten würd ich so wenig wie möglich manuell verbasteln. Ich bin kein LINUX-Crack.

cane
04.01.09, 21:21
Lies dir die Joomla Doku durch - dort sollte stehen welche Files dem Webserver User gehören müssen, diese dann einfach per chown dem Benutzer unter dessen Kennung der Webserver läuft überschreiben.

mfg
cane

robertoZ
05.01.09, 08:53
Lies dir die Joomla Doku durch - dort sollte stehen welche Files dem Webserver User gehören müssen, diese dann einfach per chown dem Benutzer unter dessen Kennung der Webserver läuft überschreiben.

Danke - die Anleitungen für Joomla hab ich durchgelesen bis mir der Kopf auf die Tastatur geknallt ist und auch die Foren konsultiert. Das Problem haben viele, aber eine gute Lösung hat niemand von denen gefunden. Einer - der "lustigste" - hat als Lösung angegeben, jedesmal alle Dateien mit FTP runterzuladen, anzupassen und wieder raufzuladen...

Und wie gesagt - das Problem bezieht sich nicht nur auf Joomla, sondern auf PHP (dasselbe hatte ich z.B. auch mit phpopenchat auf dem alten Server). Es muss etwas mit dem Einsatz von Apache2 zu tun haben.

chown funktioniert eben nicht! Das System erlaubt nicht, dass die Ownership dieser Dateien geändert wird! Diese Dateien unter htdocs verhalten sich anders als die andern - ich kann mir das nicht erklären.

Ich hab sogar schon versucht, wwwrun und sogar nobody zu Mitglieder von users zu machen - hilft alles nicht...

Nachdem das so "aus der Box" kommt, kann ich mir nicht erklären, warum NUR ICH dieses Problem haben sollte......

Kann jemand mal versuchen, ob er (natürlich wenn APACHE2 läuft) als root eine Datei unter /srv/www/htdocs erzeugen und von der nachher die Rechte und den Owner verändern kann???

cane
05.01.09, 10:05
Als root kann man JEDE Datei beliebig umchownen, es sei denn es laufen Sicherheitserweiterungen die das verbieten (SElinux, AppArmor, ...).

--> Bist Du root?

mfg
cane

robertoZ
05.01.09, 12:01
Als root kann man JEDE Datei beliebig umchownen, es sei denn es laufen Sicherheitserweiterungen die das verbieten (SElinux, AppArmor, ...).

--> Bist Du root?

Ich bin voll krass root! Es ist mein Server, der unter meinem Tisch steht - und ich habe das natürlich (zumindest als es anders nicht ging) als root versucht. Als root hab ich ja das ganze Zeugs auch draufkopiert.

Sicherheitserweiterungen tönt interessant. Wie find ich raus, ob sowas läuft? Ist das denn default (wenn man den Apache2 per YAST zum Leben erweckt).

Apache2 macht selbst nicht sowas??

Zumindest bei chmod ist mir aufgefallen, dass ich (wenn ich versuche 777 zu setzen) eine Erfolgsmeldung bekomme - und der Eindruck ist, dass - hui! - der Modus "von Geisterhand" grad wieder zurückgesetzt wird. (Während bei chown eine Meldung kommt, das sei nicht erlaubt.)

marce
05.01.09, 12:05
poste doch auch einfach mal ein konkretes Beispiel - ls -la vorher, konkreter Befehl, exakte Ausgabe, ls -la nachher. [code]-Tags nicht vergessen.

fubar
05.01.09, 12:07
Mach doch mal ein voll krasses

ls -l /srv/www/htdocs

regards

//NACHTRAG:
Da war wohl jemand schneller... ;-)

robertoZ
05.01.09, 20:01
Also hier ein Beispiel mit chown:

ROBLINUX:/srv/www/htdocs # ls -l
insgesamt 176
drwxrwxr-x 4 root users 16384 9. Apr 2006 backups
drwxrwxr-x 2 root users 16384 30. Dez 23:13 Files
drwxrwxr-x 2 root users 16384 1. Nov 13:25 gif
drwxrwxr-x 8 root users 16384 4. Jan 15:52 haeschen
-rwxrwxr-x 1 root users 44 1. Nov 13:24 index_org.html
drwxrwxr-x 4 root users 16384 2. Nov 15:48 .Trash-0
drwxrwxr-x 2 root users 65536 20. Aug 19:20 .Trash-root
drwxrwxr-x 5 root users 16384 16. Apr 2006 ulrikeberthold
ROBLINUX:/srv/www/htdocs # chown -v wwwrun haeschen
chown: Ändern des Eigentümers von „haeschen“: Die Operation ist nicht erlaubt
Wechsel des Eigentümers von „haeschen“ in wwwrun fehlgeschlagen
ROBLINUX:/srv/www/htdocs # ls -l
insgesamt 176
drwxrwxr-x 4 root users 16384 9. Apr 2006 backups
drwxrwxr-x 2 root users 16384 30. Dez 23:13 Files
drwxrwxr-x 2 root users 16384 1. Nov 13:25 gif
drwxrwxr-x 8 root users 16384 4. Jan 15:52 haeschen
-rwxrwxr-x 1 root users 44 1. Nov 13:24 index_org.html
drwxrwxr-x 4 root users 16384 2. Nov 15:48 .Trash-0
drwxrwxr-x 2 root users 65536 20. Aug 19:20 .Trash-root
drwxrwxr-x 5 root users 16384 16. Apr 2006 ulrikeberthold

und hier eins mit chmod:

ROBLINUX:/srv/www/htdocs # ls -l
insgesamt 176
drwxrwxr-x 4 root users 16384 9. Apr 2006 backups
drwxrwxr-x 2 root users 16384 30. Dez 23:13 Files
drwxrwxr-x 2 root users 16384 1. Nov 13:25 gif
drwxrwxr-x 8 root users 16384 4. Jan 15:52 haeschen
-rwxrwxr-x 1 root users 44 1. Nov 13:24 index_org.html
drwxrwxr-x 4 root users 16384 2. Nov 15:48 .Trash-0
drwxrwxr-x 2 root users 65536 20. Aug 19:20 .Trash-root
drwxrwxr-x 5 root users 16384 16. Apr 2006 ulrikeberthold
ROBLINUX:/srv/www/htdocs # chmod -v 777 haeschen
Modus von „haeschen“ nach 0777 (rwxrwxrwx) geändert
ROBLINUX:/srv/www/htdocs # ls -l
insgesamt 176
drwxrwxr-x 4 root users 16384 9. Apr 2006 backups
drwxrwxr-x 2 root users 16384 30. Dez 23:13 Files
drwxrwxr-x 2 root users 16384 1. Nov 13:25 gif
drwxrwxr-x 8 root users 16384 4. Jan 15:52 haeschen
-rwxrwxr-x 1 root users 44 1. Nov 13:24 index_org.html
drwxrwxr-x 4 root users 16384 2. Nov 15:48 .Trash-0
drwxrwxr-x 2 root users 65536 20. Aug 19:20 .Trash-root
drwxrwxr-x 5 root users 16384 16. Apr 2006 ulrikeberthold

Was sind [code]-Tags??

robertoZ
05.01.09, 20:13
So sollte es sein, hier dasselbe in /root/Documents:

chmod

ROBLINUX:~/Documents # ls -l
insgesamt 20
drwxr-xr-x 2 root root 4096 5. Jan 21:08 haeschen
-rw-r--r-- 1 root root 6943 1. Nov 13:20 New Document.ott
-rw-r--r-- 1 root root 6391 1. Nov 13:20 New Spreadsheet.ots
ROBLINUX:~/Documents # chmod -v 777 haeschen
Modus von „haeschen“ nach 0777 (rwxrwxrwx) geändert
ROBLINUX:~/Documents # ls -l
insgesamt 20
drwxrwxrwx 2 root root 4096 5. Jan 21:08 haeschen
-rw-r--r-- 1 root root 6943 1. Nov 13:20 New Document.ott
-rw-r--r-- 1 root root 6391 1. Nov 13:20 New Spreadsheet.ots

und chown

ROBLINUX:~/Documents # ls -l
insgesamt 20
drwxrwxrwx 2 root root 4096 5. Jan 21:08 haeschen
-rw-r--r-- 1 root root 6943 1. Nov 13:20 New Document.ott
-rw-r--r-- 1 root root 6391 1. Nov 13:20 New Spreadsheet.ots
ROBLINUX:~/Documents # chown -v wwwrun haeschen
Eigentümer von „haeschen“ in wwwrun geändert
ROBLINUX:~/Documents # ls -l
insgesamt 20
drwxrwxrwx 2 wwwrun root 4096 5. Jan 21:08 haeschen
-rw-r--r-- 1 root root 6943 1. Nov 13:20 New Document.ott
-rw-r--r-- 1 root root 6391 1. Nov 13:20 New Spreadsheet.ots

Flex6
05.01.09, 21:25
hast du mal nach safe_mode in der php.ini oder http.conf geschaut und kontrolliert. estimmte Anwendungen haben mit safe_mode probs und können nicht schreiben oder Änderungen übernehmen. Wenn, dann schmeiß Joomla einfach weg und benutz was ordentliches.

Das alles unter root mit chmod 777 laufen zu lassen ist keine gute Idee und wird dir auch nichts bringen.

Wene
05.01.09, 21:38
Ich hab jetzt nen ganz üblen verdacht. Bevor ich weiter darauf eingehe poste doch bitte mal die Ausgabe von "mount" unter verwendung der [code]- Tage. (Das schwarze #- Symbol in der Symbolleiste hier im Forumseditor)

drcux
05.01.09, 23:05
yeeehaaaaaa, vfat rulez! :D

Wene
06.01.09, 10:16
yeeehaaaaaa, vfat rulez! :D
Wenn ich einen Tipp abgeben soll würde ich sagen NTFS... :ugly:

robertoZ
06.01.09, 17:43
Ne, VFAT.

Habt's ihr mich erwischt! So ganz neu hab ich den Server gar nicht installiert - jetzt dämmert's mir wieder :D - den 2. Disk hab ich einfach wieder drangehängt. Und den hab ich früher unter openSUSE 10.0 wohl mit VFAT formatiert.



ROBLINUX:/ # mount
/dev/sda2 on / type ext3 (rw,acl,user_xattr)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
debugfs on /sys/kernel/debug type debugfs (rw)
udev on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
/dev/sdb1 on /srv/www/htdocs type vfat (rw,noexec,nosuid,nodev,gid=100,umask=0002,utf8=tr ue)
securityfs on /sys/kernel/security type securityfs (rw)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
ROBNAS:/xxxxx on /root/ROBNAS_xxxx type nfs (rw,addr=192.168.1.10,nfsvers=3,proto=udp,mountpro to=udp)
ROBNAS:/xxxxx on /root/ROBNAS_xxxx type nfs (rw,addr=192.168.1.10,nfsvers=3,proto=udp,mountpro to=udp)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
proc on /var/lib/ntp/proc type proc (ro)
/dev/sr1 on /media/SU1100.001 type iso9660 (ro,nosuid,nodev,uid=1000)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)


Weiss nicht mehr, wieso ich das vor über 2 Jahren gemacht hab - hat wohl am ehesten nach Windows getönt und ich habe ja sonst keine Ahnung. Aber ich entnehme euren Statements mal, dass das nicht gut ist... mit soviel no... tönt ja schon nicht gut.

Ich geh mal hin und kopier das runter und häng den Disk ab... gute Idee:confused:

drcux
06.01.09, 17:53
Ich geh mal hin und kopier das runter und häng den Disk ab... gute Idee:confused:

Warum abhängen, warum nicht:
BackUp
Disk mit ext3 formatieren
BackUp zurückspielen
fstab anpassen
?

robertoZ
06.01.09, 18:19
Warum abhängen, warum nicht:
BackUp
Disk mit ext3 formatieren
BackUp zurückspielen
fstab anpassen
?

Ja... jedenfalls hab ich das ganze verzeichnis auf den 1. Disk kopiert und jetzt kann ich auch chown machen nach wwwrun und - ES FUNKTIONIERT! :o

Gelobt sei euer Name resp. eure ID!:cool: Das hätt ich nie im Leben rausgefunden - selbst.

Jetzt wo die Gelegenheit günstig ist, bau ich vielleicht grad bissl grösseren Disk ein und vielleicht grad bissl RAID1. Weil das Gerät da wo ich alles nauftu ist bissl alt und hat nur 2x 20GB disken drin.

Wene
06.01.09, 22:19
Habt's ihr mich erwischt! So ganz neu hab ich den Server gar nicht installiert - jetzt dämmert's mir wieder :D - den 2. Disk hab ich einfach wieder drangehängt. Und den hab ich früher unter openSUSE 10.0 wohl mit VFAT formatiert.

Na das war ja dann wohl mein "Schuss ins Blaue des Monats"! :D Freut mich dass es geholfen hat.