Я попытался использовать функцию 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, чтобы убедиться, что мой веб-сервер работает нормально. Кто-нибудь получил за это право?
Спасибо за ваш ответ, но я понял это. Проблема, которую я получаю, заключается в том, что когда у меня/var/www есть chown ** www-data: www-data **, php-функции работают нормально, но я получаю разрешения на отказ при использовании FileZilla. Поэтому прямо сейчас я должен менять разрешения на ** root: www-data ** каждый раз, когда мне нужно что-то передать через FileZilla, а затем вернуться к ** www-data: www-data **, чтобы убедиться, что мой веб-сервер работает нормально. У вас есть какое-то решение? –
Попробуйте дать разрешение acl. setfacl -m u: www-data: rwx/var/www. И сохраните фактический корень владения: www-data. –