Страница 1 из 1

не могу создать каталог mkdir()

Добавлено: 2007-11-04 7:21:17
radiofannat
написал скриптик на php в денвере всё работало прекрасно, а когда слил на сервант не хочет работать!
вот очередной прикол:

Код: Выделить всё

<?php
mkdir("testdir");
?>

Код: Выделить всё

Warning: mkdir() [function.mkdir]: Permission denied in /usr/local/www/data/test.php on line 2
что я не так делаю? php.ini или chown ?????
php5 ставил из портов + apache2

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 9:52:39
kmb
прав нету папку создать...

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 10:07:13
radiofannat
блин с созданием файлов тоже самое

Код: Выделить всё

<?
fopen("my.txt", "w");
?>
Warning: fopen(my.txt) [function.fopen]: failed to open stream: Permission denied in /usr/local/www/data/test.php on line 2
я чтото не понемаю, что с правами зделать где прописать??? в файле с скриптом стоит 664.

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 13:25:08
Alex Keda
права на директорию внутри которой создаёшь, юзеру от которого выполняется php

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 16:57:34
radiofannat
дапустим у меня создан юзер inet и в его директории /usr/home/inet/ создан каталог /www/ какие права ставить на директорию /www/ и /data/ ?

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 17:17:52
serge
radiofannat писал(а):какие права ставить на директорию /www/ и /data/ ?
А подумать?
Если НЕ нужно создавать файлы и каталоги, то достаточно прав на чтение для юзера от которого работает php.
Если нужно создавать, то + право на запись для соответствующего юзера.

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 19:27:18
radiofannat
ну вот выставил права на папки пользователь и группа "www", но теперь другой прикол, когда захожу по фтп доступа к каталогам и файлам на запись которые создавались с помошью php нет они создаются с правами "www"

Код: Выделить всё

mkdir("test",0775);
у юзера на фтп "inet" стоит группа "wheel", прочитал handbook пытался поексперементировать с файлом group тоже не вышло,что теперь я делаю не так? уже замучался чесно говоря... подскажите литературу или расскажите на пальцах, как сделать полные права узеру "inet" в группе "www" :(

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 19:47:20
serge
Весь сайт - литература по теме + хандбук с оффсайта фри.
Если на пальцах, то в случае хостинга очень удобно создавать пользователю учетку и от нее выполнять php и под ней же пускать на ftp. Тогда разногласий с владельцами файлов у тя не станет.
Для твоего варианта, на вскидку, chmod 777 на рабочие каталоги сайта. Или пользователей ftp и www в одну группу и chmod 77х на каталоги.

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 19:59:43
radiofannat

Код: Выделить всё

/etc/group
www:*:80:inet
так я даю права для узера "inet"?
и как мне выполнять php из под этого юзера?

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 20:14:23
serge
radiofannat писал(а):

Код: Выделить всё

/etc/group
www:*:80:inet
так я даю права для узера "inet"?
Так ты добавляешь пользователя inet в группу www. Права задаются chmod. Т.е. если у тя права на файлах х7х, то члены группы имеют полный доступ к ним. Соответственно у файлов должныв стоять группа www.
radiofannat писал(а):и как мне выполнять php из под этого юзера?
Читай статьи на этом сайте по организации хостинга. Т.е. suexec, php-fcgi и т.д.

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 20:24:10
Alex Keda
поддерживаю serge
переходи на ситый cgi или fast-cgi

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 20:41:34
radiofannat
так ведь пользователь один, который просто шарит по фтп где собственно и лежит директория www, нет никаких виртуальных хостов всё намного проще, наверно проще зделать доступ по фтп пользователю www :mrgreen: но это же не правельно или запускать апачь от пользователя "inet"???, для suexec мне надо пересобирать апачь а это лишнее... есть ещё какой то метод? :roll:

Re: не могу создать каталог mkdir()

Добавлено: 2007-11-04 21:05:18
Alex Keda
дать рута тому юзеру.
правильно - суэкзек.