Я только что установил Ubuntu Server 16.04.3 и ISPConfig 3.1, следуя этому официальному руководству здесь: https://www.howtoforge.com/tutorial/perfect-server-ubuntu-16.04-with-apache-php -myqsl-pureftpd-bind-postfix-doveot-and-ispconfig /
Все работает, как и ожидалось, но я сталкиваюсь с проблемой принадлежности файла / каталога. Чтобы объяснить проблему, мне нужно написать пример:
/images/
. /images/
0777, иначе скрипт PHP вернет ошибку «Отказано в доступе», когда какой-либо посетитель попытается загрузить изображение. При проверке содержимого каталога /images/
с помощью ls -l images
возвращается:
-rw-r--r-- 1 www-data www-data 69455 Dec 12 13:03 755675678.tmp
Файл .tmp в этом случае является файлом, загруженным с помощью chmod 0777. Он предлагает что скрипт выполняется с помощью www-data.
Однако, проверяя сам каталог с помощью ls -l
, он возвращает:
drwxr-xr-x 2 web1 client1 4096 Dec 12 13:03 images
Так что это объясняет, почему каталог должен быть 0777, чтобы www-данные могли писать в него. Проводя дальнейшее исследование, я проверил группу client1 с помощью:
getent group client1 | awk -F: '{print $4}'
и она возвращает: www-data
На данный момент я потерялся. Я все еще очень плохо знаком с Linux и Ubuntu. Я не понимаю, как работают группы и члены этих групп. Но мне кажется логичным, что www-данные будут иметь все необходимые разрешения, потому что они являются членом client1. Хотя я могу быть совершенно неправ в этом, поэтому, если кто-нибудь сможет объяснить мне, почему я сталкиваюсь с этой проблемой и как ее исправить, я был бы очень благодарен:)