Forum Webscript.Ru

Программирование => PHP => Тема начата: alex-party от 23 Июля 2003, 21:47:26

Название: mkdir() проблема
Отправлено: alex-party от 23 Июля 2003, 21:47:26
Привет,
Может кто нибуть сталкивался с проблемой создания каталогов на сервере...Я проверил ROOT на право доступа и вот что мне выдал script:

/home/alex/public_html - is a directory
/home/alex/public_html - is readable
/home/alex/public_html - is NOT writable    :( ?? хмм, ручным через FTP все права есть, а через Script не идет...
/home/alex/public_html - is executable

Я запускаю функцию:

$dir_to_create = "/home/alex/public_html/xxxxx "
  if(!is_dir($dir_to_create)) {  mkdir($dir_to_create, 0700); }
?>

А она пишет:
Warning: mkdir(/home/alex/public_html/xxxxx)[function.mkdir]: Permission denied

Может у кого есть идея в чем ошибка? Весь день мучаюсь, скоро php.net во сне буду видеть :insane:

Спасибо
Название: mkdir() проблема
Отправлено: nagash от 23 Июля 2003, 22:13:00
эм...
у меня есть идея что ошибка в том что у твоего скрипта прав доступа маловато =))))
поставь ты chmod на public_html 777 и создавай что хочешь
Название: mkdir() проблема
Отправлено: FreeSpace от 24 Июля 2003, 00:34:52
Цитировать
nagash:
поставь ты chmod на public_html 777 и создавай что хочешь

Я бы так не делал.
Лучше создай внутри public_html другую папку и уже на неё поставь права 777.
Название: mkdir() проблема
Отправлено: alex-party от 24 Июля 2003, 00:42:29
А вот что он пишет когда я пытаюсь ето сделать....

Warning: chmod() [function.chmod]: Operation not permitted

Может мне к провайдеру обратится.....если ето не ошибка в самом коде :(
Название: mkdir() проблема
Отправлено: FreeSpace от 24 Июля 2003, 01:25:16
Да ты через FTP каталог создай сначала и там же ему права выстави!
Название: mkdir() проблема
Отправлено: nagash от 24 Июля 2003, 01:40:57
=)
Цитировать
Может мне к провайдеру обратится.....если ето не ошибка в самом коде

да! лутше тебе к провайдеру обратиться...
скажи что интернет который они тебе предоставляют не обладает достаточными правами для создания директорий на других серверах...
а потом к хостеру сходи...
и скажи что провайдер тебе плохой интернет поставляет и не мог бы он (хостер) создать тебе директорию и поставить ей права доступа 777
=)
Название: mkdir() проблема
Отправлено: FreeSpace от 24 Июля 2003, 01:47:19
[off]nagash
Шутка почти удалась :)
Хостинг - это ведь Hosting Provider ;)[/off]
Название: mkdir() проблема
Отправлено: nagash от 24 Июля 2003, 02:01:56
[OFF]ну если вдаваться в подробности то не будет смешно =)[/OFF]
Название: mkdir() проблема
Отправлено: n0name от 24 Июля 2003, 09:41:47
На фтп ты создаешь папку от себя, т.е. alex-party:users, а httpd запущен наверно как nobody:nogroup и естественно из скрипта создать папку не получится.
Название: mkdir() проблема
Отправлено: Yukko от 24 Июля 2003, 12:29:33
а если поменять владельца??? :) или не судьба?
Название: mkdir() проблема
Отправлено: FreeSpace от 24 Июля 2003, 13:27:46
n0name
Можно и владельца поменять, и 777 на папку поставить - всё в твоих руках.
Название: mkdir() проблема
Отправлено: n0name от 24 Июля 2003, 14:01:37
Вопрос не для меня :) И apache в моих руках и php.ini/safe_mode=Off тоже, просто человеку хотел объяснить, почему
Цитировать
Warning: chmod() [function.chmod]: Operation not permitted
только и всего :)
Название: mkdir() проблема
Отправлено: alex-party от 24 Июля 2003, 16:57:14
Седня написал писмо проваидеру, подождем ответа :)

Так дело то в том, что я делаю CMS - "Administrator Console" для управления контекстом сайта и хотелось бы что бы она работала не толко у етого провайдера, так что мне надо будет к каждому бегать за правами что бы програма работала?

Тут было предложенийе делать Folder церез FTP...вообще-то идея....

Я вот так попробовал:

  $ftp_server=\'post.infoseka.lt\'
  $conn_id = ftp_connect($ftp_server);

   // login with username and password
   $user="xxxxx";//username
   $passwd="xxxxx";//password
   $login_result = ftp_login($conn_id, $user, $passwd);

  $folder="alex";
  ftp_chdir($conn_id,"www.infoseka.lt");
  if(ftp_mkdir($conn_id,$folder)) print ("Folder is created!");

ftp_close($conn_id);
?>


А он вот че выдал: Fatal error: Call to undefined function: ftp_connect() - ета ф-ия на (PHP 3>= 3.0.13, PHP 4 )

А у них должна работать, потому-что:
phpinfo() - > User/Group  nobody(99)/98
                   safe_mode = off
                   Server_Software = Apache/1.3.27 (Unix) PHP/4.3.1
Название: mkdir() проблема
Отправлено: FreeSpace от 24 Июля 2003, 19:14:12
Цитировать
alex-party:
так что мне надо будет к каждому бегать за правами что бы програма работала?

Удивлю тебя: представь себе, прийдется!
Скажу больше - так ВСЕ делают :)
Просто в README или INSTALL напиши, что нужно создать такие-то папки с такими-то правами.
Название: mkdir() проблема
Отправлено: alex-party от 24 Июля 2003, 19:59:39
А если они создадут папку с правами, в ней можно будет создавать другие папки и документы иэ скрипта я так понимаю....а?
Название: mkdir() проблема
Отправлено: Yukko от 24 Июля 2003, 20:51:39
да
Название: mkdir() проблема
Отправлено: alex-party от 24 Июля 2003, 21:33:05
А какой чмод мне у них просить?
Название: mkdir() проблема
Отправлено: Yukko от 25 Июля 2003, 14:34:25
Цитировать
FreeSpace:
 и уже на неё поставь права 777.
а вообще потом скриптом можешь ставить какие хочешь права, оставь только правильные права для владельца. Если скрипт создал файл или директорию, то пользователь nobody от которого бегает апач, и будет владельцем этого файла, а значит остальным ты вообще можешь доступ закрыть :), а оставить нужные права только скрипту, это будет 700.
Название: mkdir() проблема
Отправлено: alex-party от 25 Июля 2003, 15:02:19
Спасибо всем, очень благодарен за помощь, буду далше мучатъ код...