WordPress: «Временная папка не найдена» — как найти причину и исправить

При загрузке изображения, ZIP-архива плагина или темы WordPress может показать ошибку «Временная папка не найдена».

Иногда её пытаются исправить очисткой кеша, изменением прав на wp-content/uploads или добавлением новой папки внутри WordPress. Но при этой конкретной ошибке проблема обычно возникает раньше: PHP не смог нормально использовать временный каталог, в который файл должен попасть до передачи WordPress.

Поэтому правильная диагностика начинается не с медиатеки и не с плагинов, а с конфигурации PHP и временного каталога сервера.

Если нужен быстрый и безопасный путь

Если сайт находится на обычном виртуальном хостинге и у вас нет уверенного доступа к настройкам PHP:

  1. Попробуйте загрузить небольшой файл ещё раз и убедитесь, что появляется именно сообщение «Временная папка не найдена».
  2. Не выставляйте 777 на каталоги и не меняйте права наугад.
  3. Не начинайте с удаления плагинов или темы.
  4. Передайте в поддержку хостинга точный текст ошибки и попросите проверить временный каталог PHP для вашего сайта.

Можно написать:

При загрузке файла WordPress получает PHP upload error code 6 — UPLOAD_ERR_NO_TMP_DIR (Missing a temporary folder). Проверьте, пожалуйста, эффективное значение upload_tmp_dir для PHP сайта, доступность системного временного каталога и ограничения open_basedir.

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

↑ К оглавлению

1. Что означает ошибка «Временная папка не найдена»

При стандартной загрузке файла PHP передаёт WordPress не только имя и размер файла, но и код результата загрузки.

Для отсутствующего временного каталога PHP использует ошибку:

UPLOAD_ERR_NO_TMP_DIR

Её числовой код:

6

WordPress распознаёт этот код и выводит сообщение:

«Missing a temporary folder» / «Временная папка не найдена».

Это важное отличие от других ошибок загрузки.

Например:

  • слишком большой файл — другая ошибка;
  • файл загрузился частично — другая ошибка;
  • PHP не смог записать файл на диск — другая ошибка;
  • загрузку остановило PHP-расширение — тоже другая ошибка.

Поэтому увеличение upload_max_filesize само по себе ошибку №6 не исправляет.

↑ К оглавлению

2. На каком этапе ломается загрузка

Упрощённо обычная загрузка файла выглядит так:

браузер → веб-сервер → PHP → временный файл → WordPress → постоянный каталог

Например, когда вы загружаете изображение в медиатеку, PHP сначала должен принять его и временно сохранить на сервере.

Только после этого WordPress получает временное имя файла, проверяет загрузку и продолжает обработку.

Если PHP не может выполнить временный этап, WordPress уже получает ошибку №6.

Поэтому при сообщении «Временная папка не найдена» в первую очередь нужно проверять:

  • настройки временного каталога PHP;
  • существует ли этот каталог;
  • может ли PHP его использовать;
  • доступен ли системный временный каталог;
  • не мешают ли ограничения open_basedir.

А вот каталог:

wp-content/uploads

на этом этапе ещё не является главным подозреваемым.

↑ К оглавлению

3. Проверка upload_tmp_dir

За временный каталог HTTP-загрузок в PHP отвечает директива:

upload_tmp_dir

Она может выглядеть, например, так:

upload_tmp_dir = /var/tmp/php-upload

Конкретный путь зависит от сервера и хостинга. Копировать пример выше в свою конфигурацию без проверки не нужно.

Нас интересует фактическое значение upload_tmp_dir именно для того PHP, которым обслуживается сайт.

Посмотреть его можно:

  • в разделе информации о PHP в панели хостинга;
  • в настройках PHP домена;
  • через конфигурацию PHP-FPM на собственном сервере;
  • через диагностические средства хостинга.

Если используется VPS, важно помнить: настройки PHP в командной строке и настройки PHP-FPM, который обслуживает сайт, могут отличаться.

Поэтому команда вида:

php -i

полезна для диагностики, но сама по себе ещё не доказывает, что сайт использует абсолютно те же параметры.

Нужно проверять конфигурацию того PHP handler / PHP-FPM pool, через который реально работает домен.

↑ К оглавлению

4. Что означает пустой upload_tmp_dir

Пустое значение upload_tmp_dir само по себе не является ошибкой.

Если отдельный каталог не задан, PHP использует системный временный каталог.

Поэтому неправильный вывод:

upload_tmp_dir пустой → обязательно нужно вписать собственную папку.

Нет.

Сначала нужно выяснить, работает ли системный временный каталог.

На Linux это часто /tmp, но конкретную конфигурацию сервера лучше не предполагать.

Проблема появляется, если временного каталога действительно нет, он недоступен для PHP либо его использование ограничено конфигурацией сервера.

↑ К оглавлению

5. Проверка существования и доступа к каталогу

Если upload_tmp_dir явно указывает путь, нужно проверить две вещи:

1. Каталог действительно существует.

Если в конфигурации указан старый или удалённый путь, PHP не сможет нормально использовать его для загрузки.

2. PHP имеет право работать с этим каталогом.

Временный каталог должен быть доступен пользователю, от имени которого работает PHP.

На собственном Linux-сервере наличие и права каталога можно посмотреть, например:

ls -ld /путь/к/временному/каталогу

Но не нужно сразу выполнять:

chmod -R 777 ...

Это плохой способ диагностики.

Для общей системной /tmp и для отдельного временного каталога конкретного сайта могут использоваться разные владельцы и режимы доступа.

Правильная задача — не сделать каталог доступным всем, а обеспечить необходимую запись именно для PHP в рамках конфигурации сервера.

Если сервером управляет хостинг, безопаснее передать эту проверку его поддержке.

↑ К оглавлению

6. Проверка open_basedir

Ещё одна причина, которую легко пропустить, — ограничение:

open_basedir

Оно ограничивает набор каталогов файловой системы, к которым PHP разрешено обращаться.

Это особенно важно в ситуации, когда:

  • собственный upload_tmp_dir не используется или недоступен;
  • PHP пытается использовать системный временный каталог;
  • системный каталог находится за пределами разрешённых open_basedir путей.

Тогда временный каталог физически может существовать, но PHP всё равно не сможет нормально его использовать.

На виртуальном хостинге open_basedir обычно настраивается самим хостером. Самостоятельно отключать ограничение только ради устранения ошибки не стоит.

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

↑ К оглавлению

7. Поможет ли WP_TEMP_DIR в wp-config.php

В интернете часто встречается совет создать, например:

wp-content/temp

а затем добавить в wp-config.php:

define( 'WP_TEMP_DIR', ... );

У WordPress действительно существует константа WP_TEMP_DIR. Она может переопределять каталог, который WordPress использует для своих временных файлов.

Но это не то же самое, что PHP-директива:

upload_tmp_dir

Для стандартной HTTP-загрузки PHP должен сначала принять файл в свой временный каталог. Если на этом этапе PHP уже возвращает:

UPLOAD_ERR_NO_TMP_DIR

WordPress получает ошибку раньше обычной обработки загруженного файла.

Поэтому для конкретного сообщения «Временная папка не найдена» при загрузке файла добавление WP_TEMP_DIR не должно быть первым действием.

Сначала проверяйте временный каталог PHP.

WP_TEMP_DIR имеет смысл рассматривать отдельно, когда проблема относится к временным файлам, создаваемым самим WordPress, а не когда PHP уже сообщил upload error №6.

↑ К оглавлению

8. Что делать на виртуальном хостинге

Если у вас нет доступа к конфигурации PHP-FPM, исправлять эту ошибку методом проб и ошибок не нужно.

Соберите минимум информации:

  • адрес сайта;
  • точный текст ошибки;
  • где она появляется — медиатека, установка темы или загрузка плагина;
  • повторяется ли ошибка для разных файлов.

После этого отправьте поддержке:

При загрузке файла WordPress показывает «Временная папка не найдена».

PHP upload error: UPLOAD_ERR_NO_TMP_DIR, code 6.

Проверьте, пожалуйста:
— эффективный upload_tmp_dir для PHP этого домена;
— существует ли и доступен ли временный каталог;
— доступен ли системный temp directory;
— не блокирует ли его open_basedir.

Такой запрос намного полезнее сообщения «в WordPress не загружаются картинки», потому что сразу указывает на конкретный уровень проблемы.

↑ К оглавлению

9. Что не стоит делать

Не начинайте с chmod 777

Широкие права не объясняют причину и могут ухудшить безопасность сервера.

Не меняйте права wp-content/uploads наугад

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

Не увеличивайте upload_max_filesize без причины

Превышение допустимого размера файла имеет другой код ошибки.

Если WordPress сообщает именно об отсутствующей временной папке, сначала разбирайтесь с temp directory.

Не удаляйте все плагины первым действием

Точный PHP upload error №6 гораздо сильнее указывает на серверную конфигурацию загрузки, чем на обычный конфликт WordPress-плагинов.

Не копируйте случайный путь из чужой инструкции

/tmp, /var/tmp, wp-content/temp или любой другой каталог не становятся правильными только потому, что сработали на чужом сервере.

Нужно определить конфигурацию именно вашего сайта.

↑ К оглавлению

10. Как проверить исправление

После изменения серверной конфигурации важно не ограничиваться исчезновением сообщения.

Проверьте цепочку полностью.

1. Повторите исходную операцию

Если ошибка возникала при загрузке изображения — загрузите небольшой тестовый файл через:

Медиафайлы → Добавить новый.

Если проблема была при установке ZIP-плагина или темы — повторите именно эту операцию.

2. Убедитесь, что сообщение исчезло

Не должно появляться:

«Временная папка не найдена».

3. Проверьте конечный результат

Для изображения:

  • файл появился в медиатеке;
  • превью открывается;
  • файл доступен на сайте.

Для темы или плагина:

  • архив загрузился;
  • WordPress смог распаковать его;
  • установка завершилась без новой ошибки.

4. Повторите тест ещё раз

Один успешный запрос полезен, но повторная загрузка позволяет убедиться, что временный каталог работает стабильно.

↑ К оглавлению

11. Если ошибка осталась

Если upload_tmp_dir, права и open_basedir уже проверены, а PHP продолжает возвращать ошибку №6, нужно смотреть конфигурацию глубже.

На собственном сервере проверяют:

  • какой PHP handler обслуживает сайт;
  • какой PHP-FPM pool используется;
  • какой php.ini действительно загружен этим процессом;
  • дополнительные конфигурационные файлы PHP;
  • параметры контейнера, если PHP работает в Docker;
  • системный временный каталог;
  • журналы PHP-FPM и веб-сервера.

Особенно полезно сравнить ситуацию с другим сайтом на том же сервере.

Если ошибка возникает у всех сайтов — проблема, скорее всего, находится выше уровня одного WordPress.

Если только у одного домена — нужно сравнивать конфигурацию его PHP pool, пользователя и ограничения файловой системы.

Главное — продолжать диагностику от факта:

PHP возвращает upload error №6.

А не перебирать случайные настройки WordPress.

↑ К оглавлению

12. Частые вопросы

Что означает «Временная папка не найдена» в WordPress?

При стандартной загрузке WordPress показывает это сообщение, когда PHP возвращает ошибку UPLOAD_ERR_NO_TMP_DIR с кодом 6. PHP не смог нормально использовать временный каталог, необходимый для приёма загружаемого файла.

Нужно ли создавать папку temp в wp-content?

Не обязательно. Для HTTP-загрузок PHP использует upload_tmp_dir или системный временный каталог. Создание wp-content/temp само по себе не исправляет конфигурацию PHP.

Поможет ли WP_TEMP_DIR?

WP_TEMP_DIR используется механизмом временных файлов самого WordPress, но не заменяет серверную настройку PHP upload_tmp_dir. При точной ошибке UPLOAD_ERR_NO_TMP_DIR сначала нужно проверять PHP.

Нужно ли менять права на wp-content/uploads?

Для этой конкретной ошибки это не первая проверка. PHP должен сначала принять файл во временный каталог, и только затем WordPress сможет продолжить работу с ним.

Что написать поддержке хостинга?

Укажите, что WordPress получает PHP upload error №6 — UPLOAD_ERR_NO_TMP_DIR, и попросите проверить upload_tmp_dir, системный временный каталог, права PHP на этот каталог и ограничения open_basedir.

Ошибка «Временная папка не найдена» хороша тем, что она довольно точно показывает направление диагностики.

Не нужно начинать с переустановки WordPress, отключения всех плагинов или изменения десятков настроек.

Правильная цепочка:

точный текст ошибки → PHP upload error №6 → upload_tmp_dir → системный temp → доступ PHP → open_basedir → повторная загрузка

Если после проверки серверной конфигурации причина остаётся неясной, можно передать диагностику специалисту.

На WebFixer24 можно оформить помощь напрямую, без регистрации, либо выбрать работу через KWORK — оба варианта доступны.

↑ К оглавлению

Нужна помощь с WordPress?

Если после последовательной проверки причина остаётся неясной, можно обратиться за диагностикой WordPress. Также доступны все инструкции WebFixer24.

↑ К оглавлению