2016-08-21 3 views
1

Я попытался использовать функцию chmod в php для временного изменения прав доступа 777, загрузить файл, а затем изменить его на 755. Но это не сработало, поскольку оно не позволяет мне использовать функцию chmod через php.Предоставление разрешений на веб-сервер без изменения разрешений на доступ к папке 777

if(chmod($path, 0777)) { 
    if(!move_uploaded_file($oldfile, $newfileloc)) { 
     return false; 
    } 
    chmod($path, 0755); 
    return true; 
} 
else 
    return false; 

У меня было это работает на моем предыдущем сервере с 755 правами доступа к папке.

Я не уверен, как работают разрешения, поэтому, пожалуйста, помогите, спасибо!

EDIT: Какие права должны моя папка /вар/WWW есть так, что веб-сервер может записывать файлы?

EDIT 2: Хорошо, я понял это. Мне просто нужно предоставить разрешения на www-data: www-data, чтобы убедиться, что у веб-сервера есть все необходимые разрешения. Но проблема в том, что когда у меня/var/www есть chown www-data: www-data, функции php работают нормально, но при использовании FileZilla я получаю разрешения на отказ от ошибок. Поэтому прямо сейчас мне нужно изменить разрешения на root: www-data каждый раз мне нужно что-то передать через FileZilla, а затем обратно на www-data: www-data, чтобы убедиться, что мой веб-сервер работает нормально. Кто-нибудь получил за это право?

ответ

1

вы можете дать разрешение 755. Но вы должны изменить владельца и группу для/var/www/folder. Он должен иметь право собственности на www-data и групповое владение. Сначала проверьте, какой пользователь имеет право собственности и групповое владение для этой папки. выполните эту команду ниже.

Л.Л./вар/WWW/

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

drwxr-xr-x. 2 корень root 23 Mar 21 17:33 html

изменить владельца и владельца группы на пользователя www-data, используя команду ниже.

Чаун -R WWW-данные: www.data/вар/WWW

Вы можете сохранить разрешение папки 755. -R вариант использовать для выдачи разрешения рекурсивно его дочерних папок и файлов ,

+0

Спасибо за ваш ответ, но я понял это. Проблема, которую я получаю, заключается в том, что когда у меня/var/www есть chown ** www-data: www-data **, php-функции работают нормально, но я получаю разрешения на отказ при использовании FileZilla. Поэтому прямо сейчас я должен менять разрешения на ** root: www-data ** каждый раз, когда мне нужно что-то передать через FileZilla, а затем вернуться к ** www-data: www-data **, чтобы убедиться, что мой веб-сервер работает нормально. У вас есть какое-то решение? –

+0

Попробуйте дать разрешение acl. setfacl -m u: www-data: rwx/var/www. И сохраните фактический корень владения: www-data. –

Смежные вопросы