Vytvoření adresáře, nastavení práv
Adresář vytvoříte jednoduše pomocí funkce mkdir()
. První parametr obsahuje název adresáře, druhý nepovinný parametr obsahuje požadovaná práva (v oktalové interpretaci). Na tato práva se může aplikovat maska a výsledná práva tím ovlivnit. Masku změníte příkazem umask()
.
<?php
umask (0022);
mkdir ("adresar1"); //vysledna prava 0755
mkdir ("adresar2", 0777); //vysledna prava 0755
mkdir ("adresar3", 0755); //vysledna prava 0755
umask (0);
mkdir ("adresar4"); //vysledna prava 0777
mkdir ("adresar5", 0777); //vysledna prava 0777
mkdir ("adresar6", 0755); //vysledna prava 0755
umask (0007);
mkdir ("adresar7"); //vysledna prava 0770
mkdir ("adresar8", 0777); //vysledna prava 0770
?>
Maska v podstatě "odečítá" nastavenou hodnotu od zadaných práv v případě, kdy by překročily maskou stanovená práva. Nechcete-li, aby byla oprávnění maskou jakkoliv ovlivňována, vynulujte ji pomocí umask(0);
.
U našich webserverů jsou všechny soubory/adresáře vlastněny stejným uživatelem, ať už byly vytvořeny v PHP nebo přes FTP. Pro čtení/zápis prostřednictvím PHP postačují i práva 700 (adresář) nebo 600 (soubor). Pokud má být soubor čitelný pro internetové prohlížeče (tedy přes http), nastavte souboru 644.
Na soubory s koncovkou .php (a ty, se kterými skript pracuje) se vztahuje pozice user (600), pro ostatní soubory volané přes http platí pozice others (004).
Podrobnější informace k popisovaným funkcím naleznete v dokumentaci PHP