Предоставить серверу доступ для записи в папки

Я размещаю экземпляр LAMP EC2 через Amazon AWS.

Часть моего сайта позволяет пользователям загружать файлы. К сожалению, сервер не может хранить постоянные копии в папке «uploads», поскольку ему не хватает необходимых разрешений.

Вызывается PHP-скрипт, который будет хранить файл в папке «uploads». Загрузка не удастся, пока папка загрузки имеет стандартные 755 а также 775 разрешения. Тем не менее, когда я изменяю права доступа к папке 777 (мировые разрешения), это работает.

По понятным причинам я не хочу использовать 777 мировые разрешения. Как я могу сделать так, чтобы сервер имел разрешение на запись файлов в папку «uploads»?

Спасибо, парни.

0

Решение

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

     ls -l
Пример вывода:
-rw-r - r-- 1 root root 0 авг 31 05:48 demo.txt

.
Здесь видно, что как пользователь файла является пользователем root, так и группа файлов является пользователем root.
Выполнение этой команды в каталоге покажет права доступа и владение всеми файлами и папками в этой папке.
Теперь со стеком LAMP вы должны убедиться, что
Apache User, т.е. www-data и Apache Group снова www-data.
Это можно сделать, перейдя в корневую папку вашего приложения и выполнив команду

 chown -R www-data: www-data
Пример вывода:
-rw-r - r-- 1 www-data www-data 0 31 августа, 05:48 demo.txt

Это рекурсивно изменит владельца всех файлов и папок в корневом каталоге на пользователя и группу Apache.
Распространенной причиной этой проблемы является то, что когда вы загрузили пакет или файлы, вы, очевидно, сделали это как локальный пользователь или пользователь root, и Apache не имеет прав для этого. Или вы создали каталог вручную.
Это основная идея для решения проблемы, вам также может понадобиться выполнить эту команду и изменить владельца только своего каталога «uploads».

0

Другие решения

Других решений пока нет …