Загрузка данных


Вот сокращенное решение индивидуального задания без потери основного смысла.

### Решение индивидуального задания

#### Часть 1. Диагностика ошибки веб-сервера (403 Forbidden)
**Анализ лога:**
Строка `GET /downloads/report.pdf ... 403` в `access.log` показывает, что запрос к файлу отклонен с кодом «Запрещено».

**Причина:** Сервер не может получить доступ к файлу или каталогу из-за некорректных прав доступа (например, на каталоге `/downloads/` отсутствует флаг "выполнения" для пользователя сервера).

**Решение:** Установить права доступа `755` (`rwxr-xr-x`) на каталог `/downloads/` и его родительские директории командой `chmod`.

---

#### Часть 2. Диагностика сбоя системной службы (PostgreSQL)
**Проверка статуса:**
Команда `systemctl status postgresql` показывает статус `failed (Result: exit-code)`.

**Анализ логов:**
Журнал `journalctl -u postgresql.service` содержит ошибку `FATAL: could not create shared memory segment: Cannot allocate memory`.

**Причина:** Нехватка оперативной памяти на сервере для запуска базы данных.

**План устранения:**
1.  **Краткосрочно:** Перезапустить службу `sudo systemctl restart postgresql`.
2.  **Долгосрочно:** Проанализировать потребление памяти (`free -h`, `top`), оптимизировать конфигурацию PostgreSQL или увеличить объем RAM на сервере.

---

#### Часть 3. Анализ логов приложения (PHP-FPM)
**Симптом:** Пользователи видят «белый экран смерти» (пустой ответ от сервера).

**Анализ лога:**
В логе PHP-FPM присутствует предупреждение `[pool www] server reached pm.max_children setting (5)`.

**Причина:** Все рабочие процессы PHP заняты обработкой запросов. Новые запросы отбрасываются, так как очередь переполнена.

**Решение:**
Отредактировать конфиг пула `/etc/php/*/fpm/pool.d/www.conf`, увеличив параметр `pm.max_children` при наличии свободной памяти, и перезапустить сервис `php-fpm`.