Вопрос или проблема
Итак, я провел пару часов, пытаясь разобраться в этой проблеме в интернете, так как она кажется мне простой и, вероятно, уже обсуждалась, но, видимо, нет.
Я размещаю сайт WordPress в поддиректории на своем основном сайте (http://christopherdumas.org — это основной сайт, http://christopherdumas.org/astraterra — это сайт на WP), и когда я пытаюсь загрузить файлы в сообщение на сайте WordPress, мне выдается следующая ошибка:
Отсутствует временная папка.
Ранее это работало до обновления до WP 5.0, и я не тестировал после обновления, предполагая, что все будет продолжать работать. Но нет. Я думал, что сделал все необходимое для того, чтобы конфигурация сервера PHP и WordPress сохранялась при перезагрузке, но недавно я перезагрузил сервер и пришлось повторно настраивать некоторые вещи в WP, так что, видимо, нет — что может быть связано с этой проблемой. Интересно, что я прошел стандартный путь для устранения этой проблемы, когда это случилось в первый раз, и, думаю, это помогло, но я точно не помню, и теперь у меня снова эта проблема даже с “исправленными” конфигурациями.
Еще хуже, добавление обычных строк в файл wp-config.php
(установка WP_TEMP_DIR
и т.д.) не помогает, как и редактирование php.ini
(в корневом каталоге сервера). Кроме того, директория temp
имеет разрешения www-data
(как и вся директория wp-content
), и я добавил немного к началу index.php
, чтобы убедиться, что используется пользователь www-data
, что так и есть. В этот момент я не могу придумать, что еще можно сделать. Я запускаю этот сервер на Lighttpd вместо Apache 2, что изначально сделал из-за простоты использования Lighttpd, но теперь начинаю об этом жалеть…
Подключитесь к своему серверу через SSH.
и удалите системные временные файлы:
rm -rf /tmp/*
Удалите файлы, которым больше 12 дней, из директорий /tmp и /var/tmp/:
find /tmp -type f -mtime +12 -exec rm {} \;
find /var/tmp -type f -mtime +12 -exec rm {} \;
Удалите временные файлы, созданные Plesk и его сервисами. Файлы в приведенных ниже директориях можно безопасно удалить.
Примечание: Мы рекомендуем запускать эти команды, когда система простаивает (Нет активных задач Plesk резервного копирования и установщика Plesk).
Чтобы проверить, работает ли установщик Plesk, выполните следующую команду:
ps aux | grep install | grep -v "grep"
Отсутствие вывода означает, что установщик Plesk неактивен.
Чтобы проверить, выполняется ли какая-либо задача резервного копирования Plesk, выполните следующую команду:
plesk sbin pmmcli --get-tasks-list Backup | grep working
Отсутствие вывода означает, что нет активных задач резервного копирования.
Временные файлы резервного копирования Plesk:
rm -rf /usr/local/psa/PMM/tmp/*
Другие временные файлы:
rm -rf /usr/local/psa/tmp/*
Если это не поможет, перезагрузите ваш Apache.
Ответ или решение
Если вы столкнулись с ошибкой WordPress "Отсутствует временная папка" на вашем сервере, несмотря на правильные разрешения папок, необходимо провести тщательный анализ и предпринять следующие шаги для устранения проблемы.
Контекст и первое рассмотрение
Когда WordPress сообщает об отсутствии временной папки, он указывает на проблемы в конфигурации серверной среды или неверно указанный путь к временной директории. Поскольку вы обновили WordPress до версии 5.0, но не протестировали его работу до перезагрузки сервера, это дало возможность возникнуть подобным проблемам.
Шаги по устранению:
-
Проверка изменений после обновления:
Обновления могут изменить настройки или зависимости, которые ранее работали стабильно. Вернитесь к документации по обновлениям WordPress, чтобы убедиться, что все требования и зависимости выполнены. -
Проверка
wp-config.php
:
Внесите изменения в файл конфигурации WordPresswp-config.php
, чтобы задать временную директорию. Убедитесь, что добавили в него правильный путь до временной директории:define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');
Проверьте, чтобы эта директория существовала и имела правильные права доступа.
-
Настройка
php.ini
:
Проверьте настройки временной директории в файлеphp.ini
. Найдите строку для директивыupload_tmp_dir
и убедитесь, что путь правильный и совпадает с тем, что ожидает ваш сервер.upload_tmp_dir = /path/to/your/tmp
Перезагрузите веб-сервер после внесения изменений в
php.ini
. -
Права доступа:
Проверьте, чтобы пользователь веб-сервера (например,www-data
) имел полные права на временную директорию. Используйте команду:sudo chown -R www-data:www-data /path/to/your/tmp sudo chmod 755 /path/to/your/tmp
-
Очистка временных файлов:
Удалите старые или зависшие временные файлы. Подключитесь к серверу по SSH и выполните команды:rm -rf /tmp/* find /tmp -type f -mtime +12 -exec rm {} \; find /var/tmp -type f -mtime +12 -exec rm {} \;
-
Устранение конфликтов с Plesk:
Если используется Plesk, выполните очистку временных файлов, принадлежащих Plesk. Убедитесь, что ни одна активная задача Plesk не запущена для избежания сбоев. -
Перезагрузка Lighttpd:
В отличие от Apache 2, вы используете Lighttpd. Перезагрузите Lighttpd после проведения всех вышеперечисленных шагов для применения изменений:sudo service lighttpd restart
Заключение
Эти шаги помогут вам решить проблему с временной папкой на вашем WordPress-сайте. Если ни один из методов не помог, рассмотрите возможность детальной диагностики серверного окружения, включая проверку журнала ошибок Lighttpd и анализа других конфигурационных файлов. Удачи в решении проблемы!