Не удается загрузить медиафайлы в WordPress.

Вопрос или проблема

Уже около 2 месяцев клиент не может загружать медиафайлы через загрузчик медиафайлов WordPress или через плагин WP File Manager.

Сайт размещен на GoDaddy, и мы проверили, что можем загружать все типы файлов в Файловый менеджер в cPanel.

Судя по всему, это не связано с пикселями изображения или размером файла. Загрузки прекращаются из-за тайм-аута (независимо от размера), и выдается сочетание двух ошибок:

Сервер не может обработать изображение. Это может произойти, если сервер занят или у него недостаточно ресурсов для выполнения задачи. Загрузка меньшего изображения может помочь. Предлагаемый максимальный размер - 2560 пикселей.

И

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

Обе ошибки указывают на слишком большой размер файла, однако загрузки терпят неудачу независимо от размера файла. Я пробовал несколько файлов по 30 КБ и изображения размером 300 пикселей, так что, похоже, это не связано с размером файла. Включено отладка в wp-config.php, но ошибки не появляются.

Шаги, которые я уже проверил:

  • Деактивировал все плагины, один за другим, чтобы увидеть, является ли проблема связанной с плагином (Нет).

  • Установил тему twentytwentyfour, чтобы увидеть, была ли проблема связана с темой (Нет).

  • Установил максимальные пределы загрузки и памяти в настройках PHP в cPanel (Нет).

  • Сбросил лимиты до значения по умолчанию и пробовал снова несколько раз (Нет).

  • Установил версию PHP на настройки по умолчанию (Нет).

  • Пробовал принудительно установить пределы загрузки с помощью @ini_set в теме functions.php и в wp-config.php (Нет).

  • Проверил права на папку загрузок WP Content и они установлены правильно.

  • Текущие настройки в wp-admin/.user.ini:

    memory_limit = 1024M
    upload_max_filesize = 512M
    post_max_size = 512M
    max_execution_time = 5000
    max_input_time = 5000
    max_input_vars = 5000

Другие вещи, которые я пробовал отключить, это GD в расширениях PHP, предполагая, что GD может мешать imagick.

Где еще может храниться код, который мешает этому? Есть ли еще что-нибудь, что я должен проверить, чего не включено выше?

Чего я упускаю?

Кросс-проверка .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Если вышеуказанное не работает, попробуйте добавить эту строку в wp-config.php

define('WP_TEMP_DIR', ABSPATH . 'wp-content/uploads/');

Возможные основные причины, которые следует изучить

  • Защита брандмауэра или DDoS: некоторые тарифные планы хостинга GoDaddy включают автоматические брандмауэры, которые блокируют определенные запросы. Общий хостинг
  • Ограничения: тарифные планы общего хостинга GoDaddy часто накладывают жесткие
    ограничения на ресурсы, даже если вы увеличиваете настройки.

Дайте знать, как все прошло!

Ответ или решение

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

Теория

Проблемы с загрузкой медиафайлов на WordPress часто связаны с конфигурацией хостинга, серверными ограничениями или конфликтами с определенными плагинами или темами. Несмотря на то, что проверки уже проведены (например, отключение плагинов и смена темы), необходимо учесть дополнительные аспекты, такие как настройки сервера и ограничения, применяемые хостинг-провайдером, в данном случае GoDaddy.

Два основных сообщения об ошибках указывают на возможные ограничения ресурсов:

  1. Сервер не может обработать изображение – это предполагает проблему с ресурсами сервера, такими как память или процессорные ограничения.

  2. Неожиданный ответ от сервера – это может быть связано с непредвиденной задержкой или блокировкой некоторых функций сервером.

Пример

Ситуация с отказом в загрузке файлов может возникнуть даже на правильной конфигурации WordPress в случае, если сервер недостаточно мощный или если он неправильно настроен. Например, даже если настройки PHP (такие как upload_max_filesize, post_max_size) были увеличены в cPanel, физические ограничения сервера или политика хостинга могут препятствовать применению этих изменений.

Приложение

  1. Конфигурация хостинга: Проверьте настройки хостинга GoDaddy. Может быть полезным обратиться в службу поддержки, чтобы уточнить возможные серверные ограничения и убедиться, что ваш план хостинга поддерживает нужный вам уровень ресурсов.

  2. Firewall/DDoS защита: Убедитесь, что защитные системы не ограничивают определенные типы запросов. Это может включать в себя отключение некоторых уровней защиты на время тестирования загрузки файлов.

  3. .htaccess и конфигурация WP: Выполните проверку файла .htaccess на предмет любых пользовательских правил, не входящих в стандартную конфигурацию WordPress:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress

    В файле wp-config.php попробуйте добавить:

    define('WP_TEMP_DIR', ABSPATH . 'wp-content/uploads/');

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

  4. Права доступа: Хотя вы упомянули, что проверили права доступа к папке загрузки WordPress, убедитесь, что они настроены следующим образом (обычно 755 для директорий и 644 для файлов). Также проверьте, нет ли наложений на эти права со стороны сервера или сторонних служб.

  5. Проблемы с расширениями PHP: Убедитесь, что все необходимые модули PHP, такие как GD и Imagick, правильно установлены и обновлены. Также учитывайте влияние их отключения, если раньше это не давало результатов.

  6. Доступ через FTP/SFTP: Если ни одно из решений не работает, рассмотри возможность загрузки файлов через FTP/SFTP как временное решение. Это позволит обойти возможные ограничения интерфейса WordPress.

  7. Переключение между PHP-версиями: Попробуйте временно переключиться на другую версию PHP. Иногда определенные версии могут обладать специфическими багами или не совместимыми обновлениями.

  8. Разделение файла на части: Иногда помогает разделение больших файлов на более мелкие части. Хоть это и не идеальное решение, но временно это может помочь.

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

Оцените материал
Добавить комментарий

Капча загружается...