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

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

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

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

Итак, мои сомнения:

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

РЕДАКТИРОВАТЬ1

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
816
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

Спасибо. Из принятого ответа в предоставленной вами ссылке я понимаю, что могу легко определить любую папку и сделать ее владельцем apache2 (www-data). Должен ли я после этого устанавливать разрешения для файлов и каталогов?

umbe1987 16.12.2018 15:51

Зависит от. Если вы хотите защитить все файлы, просто следуйте этому ответу. По умолчанию разрешения установлены правильно (если я не ошибаюсь). Если он установлен неправильно, попробуйте ls -l и установите разрешения, как указано в этой ссылке. Это лучший способ начать.

Giorgi Lagidze 16.12.2018 15:53

Еще раз спасибо, у меня была возможность протестировать предлагаемое решение по указанной вами ссылке, и оно было действительно полезно!

umbe1987 24.12.2018 16:09

Другие вопросы по теме