Вопрос или проблема
Я сталкиваюсь со следующей проблемой при загрузке любого SVG-файла и иногда с той же проблемой при загрузке любого изображения. “Сервер не может обработать изображение. Это может произойти, если сервер занят или у него недостаточно ресурсов для завершения задачи. Загрузка меньшего изображения может помочь. Рекомендуемый максимальный размер – 2560 пикселей.”
Размер изображения составляет всего 11 КБ. Я начал сталкиваться с этой проблемой после установки (Безопасности веб-сайта – Стандарт) на Godaddy, который добавляет SSL и брандмауэр на домен, в то время как хостинг находится на AWS. Кто-нибудь может помочь с этим?
Попробуйте использовать плагин для включения SVG, который также санирует SVG, что очень важно, например SafeSVG. SVG по умолчанию не включены в WP из-за проблем безопасности, поэтому санитация важна.
Проверьте, установлен ли на сервере модуль php-xml.
Я решил эту проблему, установив
sudo apt install php-xml
Я начал сталкиваться с этой проблемой после установки (Безопасности веб-сайта – Стандарт) на Godaddy
Это важная информация. Веб-приложение брандмауэр часто блокирует загрузку SVG как ложное обнаружение межсайтового скриптинга. Вам нужно добавить свой IP-адрес в белый список в настройках брандмауэра.
У меня похожая проблема с загрузкой SVG-файлов в WordPress, когда активирован плагин Elementor. Отключение всех плагинов, кроме Elementor, не решило проблему; загрузка работает только при полной деактивации Elementor.
Интересно, что когда я переключаюсь на списковый режим, перейдя по /wp-admin/upload.php?mode=list
, я могу загрузить SVG. Однако, когда я возвращаюсь в сеточный режим, я не вижу загруженных изображений и не могу загрузить, и получаю следующую ошибку:
PHP Fatal error: Uncaught Error: Typed property DOMElement::$tagName must not be accessed before initialization in /var/www/ffbdevelopers/wp-content/plugins/elementor/core/utils/svg/svg-sanitizer.php on line 183
Я пробовал различные решения, упомянутые в этой теме, но все равно сталкиваюсь с той же проблемой. Я подтвердил, что WordPress, Elementor и PHP все обновлены. Кто-нибудь нашел решение этого конфликта или есть известные проблемы, связанные с загрузкой SVG с активированным Elementor?
Ответ или решение
Проблема с загрузкой SVG файлов в WordPress: Полное руководство по решениям
Загрузка SVG (Scalable Vector Graphics) файлов в WordPress может представлять собой определённые сложности, особенно после установки новых плагинов или изменений конфигураций сервера. В этом руководстве мы рассмотрим возможные причины проблемы с загрузкой SVG файлов и предоставим рекомендации по её решению.
1. Проблема с безопасностью и настройками сервера
Основная причина, по которой WordPress не разрешает загрузку SVG файлов, заключается в рисках безопасности. SVG файлы могут содержать код, который может быть использован для атаки на сайт.
Решение: Используйте специальные плагины для загрузки SVG, такие как SafeSVG. Это обеспечит не только разрешение загрузки SVG файлов, но и их санитаризацию, что минимизирует потенциальные угрозы.
2. Проблемы с конфигурацией сервера
Исходя из вашего описания, вы столкнулись с ошибкой после установки защиты сайта (Website Security – Standard) от GoDaddy, которая включает SSL и брандмауэр. Брандмауэр может блокировать загрузку SVG файлов, распознавая их как потенциально опасные.
Рекомендации по исправлению:
- Проверьте настройки брандмауэра. Возможно, вам необходимо включить свой IP-адрес в белый список. Это позволит вашему серверу обрабатывать загрузки без блокировки.
-
Убедитесь, что на сервере установлен модуль php-xml. Это можно сделать с помощью следующей команды в терминале:
sudo apt install php-xml
3. Конфликты плагинов
Вы отметили, что проблема проявляется при активном использовании плагина Elementor. Иногда ему требуются специфические настройки для корректной работы со SVG файлами.
Действия для устранения проблемы:
- Деактивируйте все плагины, кроме Elementor, и проверьте, продолжается ли проблема. Если проблема решена, поочередно активируйте плагины, чтобы определить, какой из них вызывает конфликт.
-
Отключите режим сетки при загрузке, переключившись на режим списка по следующему адресу:
/wp-admin/upload.php?mode=list
Благодаря этому вы сможете загружать SVG файлы, однако при переходе обратно в режим сетки возникнет ошибка:
PHP Fatal error: Uncaught Error: Typed property DOMElement::$tagName must not be accessed before initialization in /var/www/ffbdevelopers/wp-content/plugins/elementor/core/utils/svg/svg-sanitizer.php on line 183
Это указывает на внутреннюю ошибку плагина Elementor, вероятно, связанной с его обработкой SVG. Убедитесь, что ваш плагин Elementor обновлён до последней версии. Если ошибка сохраняется, обратитесь к поддержке Elementor для получения дополнительных советов.
4. Другие возможные решения
- Попробуйте использовать другой браузер или сбросьте кэш браузера, чтобы исключить проблемы кэширования.
- Установите и активируйте плагин для управления MIME-типами, например, WP Add Mime Types, который позволит добавить разрешение на загрузку SVG в WordPress.
- Если вы используете CDN (Content Delivery Network), убедитесь, что он не блокирует загрузку SVG файлов.
Заключение
Загрузка SVG файлов в WordPress может вызвать трудности из-за настроек безопасности, конфигурации сервера и конфликтов плагинов. Следуя приведённым рекомендациям, вы сможете устранить большинство проблем, связанных с этой задачей. В случае, если проблема не решается, рассмотрите возможность обращения в техническую поддержку вашего хостинг-провайдера или к разработчикам используемых вами плагинов.