Zní to hrozně, ale je tomu tak.
Aby mohl program v php nahrávat soubory na server, potřebuje přístup do složky. Na localhostu jsem toto řešil prostě chownutím souboru správnému uživateli a skupině. Na serveru potom otravováním admina, což je velice nepraktické. Udělal jsem si proto jednoduchý prográmek s mkdir funkcí
mkdir(nazev, 0775)
Vytvořený soubor ovšem neměl práva 775, jak by se mohlo zdát ale pouze 755. A teď to příjde - koukl jsem po netu a našel Hulánův článek o tom, že se aplikuje *nixová maska 0022 a tím pádem je potřebné použít ještě příkaz
umask(0000)
Dva .php soubory, jeden vytvoří složku s příslušnými právy, druhý ji případně smaže.
Důležitá poznámka je, že v příslušném adresáři, kde se složka vytváří, musí mít server právo zápisu. Tedy na tu chvilku vytváření použít
chmod a+w .
A nezapomenout po vytvoření (smazání složky) na
chmod o-w .
<?
//Vytvoreni slozky
$file = "obr";
if(file_exists($file)) {
echo "<h1>Soubor jiz existuje…</h1>";
}
else {
umask(0000);
mkdir($file, 0775);
if(!file_exists($file)) {
echo "<h1>Soubor NEBYL vytvořen
</h1>";
}
else {
echo "<h1>Soubor vytvořen…</h1>";
}
}
?>
<?
//Smazani slozky
$file = "obr";
if(!file_exists($file)) {
echo "<h1>Soubor jiz neexistoval…</h1>";
}
else {
rmdir($file);
if(!file_exists($file)) {
echo "<h1>Soubor smazán…</h1>";
}
else {
echo "<h1>Soubor NEBYL smazán
</h1>";
}
}
?>