Autor | Zpráva | ||
---|---|---|---|
Pavel Kr. Profil * |
#1 · Zasláno: 11. 3. 2015, 22:09:39
Používám normálně funkci
file_put_contents("soubor.txt","ahoj")
na localhostu nebo na hostingu od wedosu normálně nahraje soubor do složky kde skript spustím. Na serveru mám povolené file_uploads, ale nenahraje nic. Nevíte kde by mohl být zakopaný pes? Díky. |
||
juriad Profil |
Ukázal jsi použití, které funguje. Ukaž co ti nefunguje. Nesnažíš se o něco jako:
file_put_contents('http://server.tld/adresar/soubor.txt', 'ahoj') |
||
Pavel Kr. Profil * |
#3 · Zasláno: 11. 3. 2015, 22:16:57
juriad:
používám přesně co jsem napsal. Vím, že to funguje, ale na můj server to prostě nic nenahraje. Nevím, jestli je potřeba něco třeba ještě někde nastavit nebo co zkontrolovat jestli je nastavené. file_uploads je ON. |
||
Davex Profil |
#4 · Zasláno: 11. 3. 2015, 22:18:17
Pavel Kr.:
Třeba není do adresáře povolen zápis a je zapotřebí upravit práva. |
||
juriad Profil |
Takže jsi to jen špatně formuloval. Frází „nahrát na server“ se obvykle myslí nahrát odněkud odjinud (zvenku). Nedaří se ti tedy uložit text do souboru na serveru.
Zkontroluj si oprávnění (chmod). |
||
Pavel Kr. Profil * |
#6 · Zasláno: 11. 3. 2015, 22:21:01
Práva uživatel, skupina, ostatní
pro zápis má jen uživatel, musí je mít všichni? |
||
juriad Profil |
#7 · Zasláno: 11. 3. 2015, 22:25:28
To záleží na tom, pod kterým uživatelem a skupinou běží webový server (asi apache).
Běží-li pod stejným uživatelem, stačí nastavit uživateli oprávnění k zápisu. Běží-li pod stejnou skupinou, stačí nastavit skupině oprávnění k zápisu. Jinak nastav oprávnění všem ostatním. Další možností je změnit vlastníka nebo skupinu souboru, tak aby vlastníkem byl webový server nebo byl alespoň ve stejné skupině. Nastavovat to asi chceš adresáři a všem souborům v něm. |
||
Pavel Kr. Profil * |
#8 · Zasláno: 11. 3. 2015, 22:41:10
Díky byly to ty práva. Můžete mi prosím ještě osvětlit co přesně znamená když jsem dal práva pro zápis všem ostatním? Kdo je teda vlastně má?
|
||
Keeehi Profil |
Pavel Kr.:
„Kdo je teda vlastně má?“ /etc/passwd .juriad to popsal přesněji. Asi by se hodilo změnit vlastníka nabo alespoň skupinu tomu souboru. Pomocí <?php $processUser = posix_getpwuid(posix_geteuid()); print $processUser['name']; |
||
juriad Profil |
#10 · Zasláno: 11. 3. 2015, 22:56:07
Kdokoli má přístup k tomu adresáři, může do něj zapsat (vytvořit soubor). Kdo má přístup záleží na tom, zda nadřazené adresáře mají search (eXecute bit) pro přistupujícího uživatele (něj, jeho skupinu či ostatní).
Práva jsou aditivní. Jakmile něco nastavíš skupině, týká se to i uživatele, pokud je v té skupině. Obdobně, pokud něco nastavíš ostatním, týká se to úplně všech, včetně skupiny a vlastníka. Keeehi: Přesněji - najdeš pomocí getent passwd , pokud pracuješ na stroji, kde jsou uživatelské účty spravovány centrálně třeba pomocí LDAP.
|
||
Časová prodleva: 9 let
|
0