Как я могу предоставить папку для записи и загрузки временных файлов из веб-приложения?

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

У меня есть веб-приложение, которое при нажатии кнопки «Скачать» должно запускать php, который, в свою очередь, запишет файл в каталог и позволит пользователю, щелкнувшему по нему, загрузить этот файл.

Этот каталог будет хранить временные файлы и должен периодически очищаться.

Так что мои сомнения:

  1. Где хорошее место для хранения этих временных файлов (в /var/www/<my_app>/tmp?)
  2. Должен ли я предоставить пользователю apache2 (www-data) права на чтение и запись в этой папке?
  3. Я что-то пропустил?

EDIT1

Только что видел php passthruw команда. Будет ли этого достаточно для заархивированных файлов и позвольте мне не думать о папке и разрешении tmp?

0

Решение

1) эта временная папка может быть создана где угодно.

2) когда у вас есть скрипт php, а пользователь нажимает какую-то кнопку в приложении переднего плана и запускает этот скрипт php, этот скрипт php запускается от имени пользователя apache2, что, в свою очередь, является «разрешением другого мира». (Есть пользователи, группы и другие). Таким образом, вы должны предоставить разрешение на запись другим пользователям, чтобы пользователь apache2 (www-data) мог писать в этот каталог.

Таким образом, вы не можете загрузить файл через ftp, sftp или что-то еще, потому что с ftp ваш пользователь не будет www-data. и помни, что ты сделал. Вы дали разрешение на запись только для www-данных.

Чтобы лучше понять эту концепцию, я бы посоветовал вам прочитать следующую ссылку и ответ тоже. Файловые права для Laravel 5 (и другие)

3

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

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

По вопросам рекламы [email protected]