Autor Zpráva
blizzboz
Profil
Do môjho CMS som pridal inštalačný skript ktorý vždy pri inštalovaní CMS na server nastaví automaticky niektorým adresárom potrebné prístupové práva (napr. adresáre config a upload na 777) zistil som ale že php funkcia chmod je kompatibilná len s liuxom a unixovými systémami a ak nastavím vo Windows súborom atribút 777 tak sa to Windows interpretuje ako Read Only súbory. Existuje nejaká php funkcia ktorá nastavuje súborom atribúty aj vo Windows? A existuje v PHP funkcia ktorá mi zistí operačný systém?
Davex
Profil
blizzboz:
ak nastavím vo Windows súborom atribút 777 tak sa to Windows interpretuje ako Read Only súbory
Správně bys měl nastavovat práva v osmičkové soustavě 0777.
blizzboz
Profil
Davex:
jj to nastavujem
Medvídek
Profil
A nejlépe přes ftp_chmod()
Davex
Profil
Volání funkce chmod('soubor', 0777) atribut read-only na Apache s PHP 5.3.1 pod Windows XP nenastavuje. Možná máš práva 0777 v uvozovkách nebo apostrofech, těžko říct.
AM_
Profil
chmod pod windows nastavovat nejde, protože oprávnění ve windows jsou řešena úplně jinak, než v unixu, a 0777 na windowsech nemá žádný smysl.
Koneckonců ve windows jsou dvě odlišné věci atributy (system, hidden, read-only, archive a nově komprimovat, šifrovat) a oprávnění (uživatel/oprávnění k akci na souboru). Že by PHP mělo vestavěný nástroj pro konfiguraci oprávnění ve windows nevím, ale na druhou stranu na windows serverech bývá většinou zápis do souborů pro PHP povolen.
František Hliva
Profil
Mno tak so prišiel na to že som sa mýlil chmod je kompatibilný aj s Windows, len ja som atribúty načítaval z XMLka takže som ich nezadával v osmičkovej sústave ale stringy sa konvertovali do 10tkovej aj keď bola na začiatku nula. Vyriešil som to funkciu octdec.

chmod('test2', octdec($atribut));


AM:
Ja som si to tiež myslel, ale kupodivu unixový chmod je komatibilný s windows teraz som to odtestoval. 0777 windows interpretuje ako atribút -a--

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0