Перейти к содержимому Перейти к боковой панели

Эта тема решена. Вот описание проблемы и ее решения.

Problem:
Клиент столкнулся с ошибками при использовании плагина кеша Redis на многоязычном сайте. Ошибки связаны с ограничением open_basedir, когда файлы redis-cache-uk.mo и redis-cache-uk.l10n.php не находятся в разрешенных путях.
Solution:
Если вы столкнулись с аналогичной проблемой, мы рекомендуем следующие шаги:

1. Перейти по адресу wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LoadTranslationFile.php

2. Найти линию 67

		$defaultPathDirectory =  $wp_textdomain_registry->get( $domain, $locale );

3. И сразу после добавить

		/** see wpmlsupp-12853  */
		if (!is_string($defaultPathDirectory) || trim($defaultPathDirectory) === '') {
			return null;
		}

Не забудьте сделать резервную копию вашей базы данных перед внесением изменений.

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

Это форум технической поддержки WPML – плагина для многоязычной WordPress.

Доступно для чтения всем, но только клиенты, купившие WPML, могут оставлять сообщения. Сотрудники WPML отвечают на сообщения форума 6 дней в неделю, 22 часов в сутки.

Помечено: 

Эта тема содержит 3 ответов, имеет 0 voices.

Последнее обновление: Andrey 4 месяца, 2 недели назад.

При содействии: Andrey.

Автор Сообщения
16 июня, 2025 в 4:08 пп #17139855

stanislavS-19

Предыстория вопроса:
Я пытаюсь включить плагин кеша Redis для объектного кэша на сайте скрытая ссылка. При этом получаю ошибки на некоторых языках сайта. Ошибки связаны с ограничением open_basedir и файлами redis-cache-uk.mo и redis-cache-uk.l10n.php, которые не находятся в разрешенных путях. Ошибки возникают в файле /home/stasyon/studio360.com.ua/www/wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LoadTranslationFile.php на строках 82 и 85.

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

Симптомы:
При включении Redis получаю ошибки: Warning: file_exists(): open_basedir restriction in effect. File(redis-cache-uk.mo) is not within the allowed path(s).

Вопросы:
Как исправить ошибки, связанные с open_basedir при использовании Redis?
Как настроить WPML для работы с плагином кеша Redis без ошибок?

17 июня, 2025 в 8:45 дп #17141419

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Спасибо за обращение в службу поддержки WPML.

Такая же проблема, если немерено отключить все плагины кроме WPML и Redis?

Попробуйте также применить следующие решение:

1. Перейти по адресу wp-content/plugins/wpml-string-translation/classes/MO/Hooks/LoadTranslationFile.php

2. Найти линию 67

		$defaultPathDirectory =  $wp_textdomain_registry->get( $domain, $locale );

3. И сразу после добавить

		/** see wpmlsupp-12853  */
		if (!is_string($defaultPathDirectory) || trim($defaultPathDirectory) === '') {
			return null;
		}

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

17 июня, 2025 в 10:22 пп #17144167

stanislavS-19

Андрей, даже не знаю, что и сказать. Отключил все плагины, кроме некоторых, чтобы посмотреть есть ли предупреждения. Они оставлись. Даже вверху что-то появилось. Всё на скринах во вложении. Потом снова все плагины активировал. Потом в разделе обновлений обновил перевод, вроде, к вордпрессу. Именно перевод, а не сам Вордпресс. Направился посмотреть на уведомление, а его нет. Что его устранило, не знаю. Перезапуск всех плагинов или обновление перевода. В общем, надо понаблюдать пару дней, и если всё ок, закрывать тикет)

1 (3).png
1 (2).png
1 (1).png
18 июня, 2025 в 9:50 дп #17145452

Andrey
Сторонник WPML с 06/2013

Языки: Английский (English ) Русский (Русский )

Часовой пояс: Europe/Kyiv (GMT+02:00)

Спасибо за апдейт.

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