Этот вопрос проистекает из моих слабых знаний о веб-разработке на стороне сервера, но я постараюсь сделать это как можно более понятным, чтобы не допустить ошибок в конфигурации моего сервера.
У меня есть веб-приложение, которое при нажатии кнопки «Скачать» должно запускать php, который, в свою очередь, запишет файл в каталог и позволит пользователю, щелкнувшему по нему, загрузить этот файл.
Этот каталог будет хранить временные файлы и должен периодически очищаться.
Так что мои сомнения:
/var/www/<my_app>/tmp
?)www-data
) права на чтение и запись в этой папке?EDIT1
Только что видел php passthruw команда. Будет ли этого достаточно для заархивированных файлов и позвольте мне не думать о папке и разрешении tmp?
1) эта временная папка может быть создана где угодно.
2) когда у вас есть скрипт php, а пользователь нажимает какую-то кнопку в приложении переднего плана и запускает этот скрипт php, этот скрипт php запускается от имени пользователя apache2, что, в свою очередь, является «разрешением другого мира». (Есть пользователи, группы и другие). Таким образом, вы должны предоставить разрешение на запись другим пользователям, чтобы пользователь apache2 (www-data) мог писать в этот каталог.
Таким образом, вы не можете загрузить файл через ftp, sftp или что-то еще, потому что с ftp ваш пользователь не будет www-data. и помни, что ты сделал. Вы дали разрешение на запись только для www-данных.
Чтобы лучше понять эту концепцию, я бы посоветовал вам прочитать следующую ссылку и ответ тоже. Файловые права для Laravel 5 (и другие)
Других решений пока нет …