Эти вопросы возникают из-за того, что я плохо разбираюсь в серверной веб-разработке, но я постараюсь сделать его как можно более ясным, чтобы не допустить ошибок в конфигурации моего сервера.
У меня есть веб-приложение, которое при нажатии кнопки «Загрузить» должно запускать php, который, в свою очередь, записывает файл в каталог и позволяет пользователю, щелкнувшему по нему, загрузить этот файл.
В этом каталоге будут храниться временные файлы, и его следует периодически очищать.
Итак, мои сомнения:
/var/www/<my_app>/tmp?)www-data) права на чтение и запись в эту папку?РЕДАКТИРОВАТЬ1
Только что видел команду php Passthruw. Будет ли этого достаточно для заархивированных файлов и позволит мне не думать о папке tmp и разрешениях?






1) эту временную папку можно создать где угодно.
2) когда у вас есть php-скрипт, и пользователь нажимает какую-либо кнопку во внешнем приложении и запускает этот php-скрипт для запуска, этот php-скрипт выполняется от имени пользователя apache2, который, в свою очередь, является «разрешением другого мира». (Есть пользователи, группы и др.). Таким образом, вы должны предоставить разрешение на запись другим пользователям, чтобы пользователь apache2 (www-data) мог писать в этот каталог.
Таким образом, вы не сможете загрузить файл через ftp, sftp или что-то еще, потому что с ftp ваш пользователь не будет www-data. и вспомни, что ты сделал. вы дали разрешение на запись только www-data.
Чтобы лучше понять эту концепцию, я бы посоветовал вам прочитать следующую ссылку и ответ. Права доступа к файлам для Laravel 5 (и других)
Зависит от. Если вы хотите защитить все файлы, просто следуйте этому ответу. По умолчанию разрешения установлены правильно (если я не ошибаюсь). Если он установлен неправильно, попробуйте ls -l и установите разрешения, как указано в этой ссылке. Это лучший способ начать.
Еще раз спасибо, у меня была возможность протестировать предлагаемое решение по указанной вами ссылке, и оно было действительно полезно!
Спасибо. Из принятого ответа в предоставленной вами ссылке я понимаю, что могу легко определить любую папку и сделать ее владельцем apache2 (www-data). Должен ли я после этого устанавливать разрешения для файлов и каталогов?