mkdir & safe_mode

  • Автор темы Автор темы Alister
  • Дата начала Дата начала

Alister

Новичок
mkdir & safe_mode

safe mode на хостинге не дает делать mkdir

делает директорию (ругаясь (SAFE MODE Restriction in effect))
выставляет на нее права 755, эту директорию можно тока удалить и все.

PHP:
$dir=getenv("DOCUMENT_ROOT")."/groups/files/"."nat".$_POST['gid']."/";
mkdir($dir,0777);

так директорию делаю. есть какие варианты преодоления этой ситуации ?
 
2Фанат
не много, но по мере размещения сайтов у разных региональных хостеров, небольшой опыт приобрел
 
опыт надо приобретать в процессе чтения документации.
В которой ясно написано, что проблема ПРАВ ДОСТУПА к ограничениям сейф моды не имеет ни малейшего отношения.
 
хорошо, немного подругому
встречал(чаще при включенном SAFE), когда mkdir($dir,0777);

выдовал тотже результат что и в примере

а unmask();mkdir($dir);
нужный эффект,
поэтому решил просто поделится опытом (не знаниями :) )
 
yaniks
запомни.
Если mkdir выдает ХОТЬ КАКОЙ-ТО результат, кроме ошибки, то никакого SAFE MODE на хосте нет.
 
внесу ясность

я делаю скрипт который при добавлении записи в БД
делает директорию, в нее пишет некоторое количество файлов.


пишу в бд
создаю директорию
загружаю в нее файлы

error_log пишет ошибку, тока когда я пытаюсь писать файлы в созданную директорию.

но т.к при safe_mode mkdir() генерит директорию, с которой много дел не сделаешь то тут
SAFE MODE Restriction in effect
и вылезает

проводил эсперименты, safe mode не полностью строгий
а такой как в мане в примере
<Directory /docroot>
php_admin_value open_basedir /docroot
</Directory>
тоесть работать можно, но тяжко

про umask попробую попытка не пытка, хотя если я через ftp не могу атрибуты выставить то umask тоже не поможет

можно попробывать chdir() в директорию но в safe_mode в ограничение подпадает и эта ф-я.

кстати, про ftp можно заходить через FTP functions заходить делать директорию ну т.д
 
2 Фанат из все того же мануала
Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID, как и выполняемый скрипт.
2 yaniks были приколы как с umask, так и с правами в передаваемыми в функцию.

неокторые хостинги лечатся так:
PHP:
umask(0777);
mkdir('/path/to/dir/newdir');
chmod('/path/to/dir/newdir', 0777);

Alister надеюсь папка в которой ты создаешь подпапки 0777 ?
 
PHP:
ftp_mkdir ($conn_id, $dir);
$string="chmod 777 $dir";
ftp_site($conn_id,$string);
так сделал и все, потому что никаких выходов небыло
а system отрезан.
 
Alister
А почему бы тебе и файлы не ложить в БД? В отдельную табличку?
 
Сверху