Ошибки

Missing a temporary folder и Failed to write file to disk в WordPress

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

Обновлено 10.10.2026≈ 4 мин чтения
Содержание 7

Что сделать прямо сейчас

  1. Проверьте, есть ли место на диске — шаг 1.
  2. Проверьте настройку upload_tmp_dir — шаг 2.
  3. На обычном хостинге напишите в поддержку — подробнее.

Что означает ошибка

Оба текста — коды ошибок PHP, которые WordPress показывает словами:

ТекстКод PHPЧто случилось
Missing a temporary folder.UPLOAD_ERR_NO_TMP_DIRPHP не нашёл временную папку
Failed to write file to disk.UPLOAD_ERR_CANT_WRITEPHP не смог записать файл во временную папку

Временную папку задаёт настройка PHP upload_tmp_dir. Если она не задана, PHP берёт системную папку для временных файлов. Если ошибка другая — Unable to create directory, — дело не во временной папке, а в папке загрузок WordPress: смотрите её разбор.

Шаг 1. Проверьте место на диске

На VPS подключитесь к серверу — как это сделать, рассказано в инструкции Как подключиться к VPS по SSH. В примерах папка сайта — /var/www/example.com: подставьте свою. Путь к ней указан в строке root в файле настроек сайта nginx. Введите:

df -h

Колонка Use% — сколько занято. Если у строки, где в колонке Mounted on стоит / или /tmp, там 100%, места нет. Как его освободить, рассказано на странице No space left on device.

Шаг 2. Проверьте временную папку

В Ubuntu 24.04 стоит PHP 8.3. Если у вас другая версия, подставьте её номер вместо 8.3 во всех командах — узнать номер можно командой ls /etc/php/. Найдите настройку в файле PHP для сайтов:

grep -n upload_tmp_dir /etc/php/8.3/fpm/php.ini

Если строка начинается с точки с запятой — ;upload_tmp_dir, — настройка выключена, и PHP берёт системную временную папку. Тогда проверьте место на диске — шаг 1.

Если точки с запятой нет и после знака = стоит путь к папке, проверьте, что эта папка есть. Подставьте свой путь вместо /var/www/tmp:

ls -ld /var/www/tmp

Если ответ No such file or directory, папки нет. Создайте её и отдайте пользователю, от которого работает PHP. Сначала узнайте его имя:

ps -eo user,comm | grep php-fpm

Команда покажет несколько строк, в первой колонке — имя пользователя. Строка с root — главный процесс PHP, он только раздаёт работу. Нужно имя из остальных строк: от него PHP читает и пишет файлы сайта, например www-data. Затем создайте папку и отдайте её этому пользователю — вместо www-data подставьте его имя:

sudo mkdir -p /var/www/tmp
sudo chown www-data:www-data /var/www/tmp

Перезапустите PHP и загрузите файл снова:

sudo systemctl restart php8.3-fpm

Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.

Если сайт на обычном хостинге

Временной папкой PHP и диском сервера на хостинге управляет хостер. Сначала проверьте в панели, не кончилось ли место на вашем тарифе. Если место есть, напишите в поддержку: пришлите текст ошибки и время, когда она появилась.

Тексты сообщений сверены с исходным кодом WordPress 7.1.3. В русской версии WordPress те же сообщения показаны по-русски — сравнивайте по смыслу.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026