Ошибка при синхронизации
-
Плагин установлен и подключен к публичному контейнеру Selectel. В настрояках плагина соединение проходит нормально. При включенном плагине наблюдаются две проблемы:
1. Если попытаться синхронизировать всё прямо из опций, то показывает ошибку undefined2. Если закачивать вручную, то медиа-библиотека выдает ошибку загрузки. При этом в медиа-библиотеке показываются файлы, но без превьюшки. Через какое-то время файл _может_ появиться в контейнере. В WP при этом ничего не меняется.
Можно как-то поправить?
-
Здравствуйте.
Пока со 100%-й уверенностью не могу сказать, что именно привело к ошибке.
Всё указывает на либо несовместимость плагина, с какими-то другими решениями, либо на проблему с правами доступа к файлам из php.
Попробуйте использовать версию плагина, которая находится в разработке. Она доступна по ссылке: https://github.com/Mauhem/selectel-storage-upload/archive/dev.zip
В ней я добавил пару дополнительных проверок, исправил несколько потенциальных проблем с совместимостью.
Также меня интересуют несколько вопросов:
1. При начале ручной синхронизации сразу же появляется ошибка “undefined” или полоса прогресса все же сразу принимает значение 0%?
2. Используются ли какие-то специфические плагины для работы с библиотекой файлов? Ну и вообще, какие плагины используются?
3. В качестве хостинга используется виртуальный хостинг или VPS/выделенный сервер?
4. Знаете ли, от имени, какого пользователя запускаются процессы php?1. При начале ручной синхронизации сразу же появляется ошибка “undefined” или полоса прогресса все же сразу принимает значение 0%?
Сначала появляется 0%, потом уже undefined
2. Используются ли какие-то специфические плагины для работы с библиотекой файлов? Ну и вообще, какие плагины используются?
Насколько специфичекие?
BackWPup
BackWPup disable SSL connection verifying
Cyr-To-Lat
Disqus Comment System
Fourteen Extended
Google Analytics Dashboard for WP
Google XML Sitemap
Jetpack by WordPress.com
LiveJournal Crossposter
Options Framework
PlayPress
Posts in Page
Selectel Storage Upload
Simple Lightbox
Simply Instagram
WordPress SEO
WP No External Links
WP to Twitter
Yandex.Metrika
Yet Another Related Posts Plugin3. В качестве хостинга используется виртуальный хостинг или VPS/выделенный сервер?
Обычный shared-хостиинг.
4. Знаете ли, от имени, какого пользователя запускаются процессы php?
Увы, нет.
PS Кстати, после обновления ошибка осталась. Даже при включенной опции “только синхронизация” плагин добавил изменения в настройки медиа – указал адрес домена, привязанного к контейнеру, из-за чего, разумеется, картинки на сайте отображаться перестали. Я, конечно, вернул как было, но для чего плагин вносит эти изменения?
Несколько откорректировал работу плагина.
Попробуйте тестовую версию https://uploads.wm-talk.net/selectel-storage-upload.zipPS Кстати, после обновления ошибка осталась. Даже при включенной опции “только синхронизация” плагин добавил изменения в настройки медиа – указал адрес домена, привязанного к контейнеру, из-за чего, разумеется, картинки на сайте отображаться перестали. Я, конечно, вернул как было, но для чего плагин вносит эти изменения?
В коде плагина есть участок кода:
// Default settings if (get_option('upload_path') == 'wp-content' . DIRECTORY_SEPARATOR . 'uploads' || get_option('upload_path') == null ) { update_option('upload_path', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'uploads'); }
Добавлен он специально для новых версий WordPress, где в настройках медиафайлов отсутствует раздел Загрузка файлов. Этот код просто активирует этот раздел, если он не был включен ранее.
Настроки:- Сохранять файлы в этой папке = Локальный путь
- Полный URL-путь к файлам = Полный URL-путь к файлам:
Это касается страницы настройки медиафайлов и настройки плагина. Без вашего участие плагин эти настройки не меняет. Никакой магии тут нет. Плагин читает и пишет в эти поля только то, что вы сами и ввели. Никаким другим образом
адрес домена, привязанного к контейнеру
плагин узнать не мог.
Обновил плагин из репозитория wordpress, увы – по-прежнему ошибка undefined. Правда в этот раз 0% держались дольше, чем в прошлый.
плагин узнать не мог.
Я немножко не об этом.
В настройках плагина есть пункт “Full URL path to files”:
Enter the domain or subdomain if store files only in the Selectel Storage (https://uploads.example.com), or full url path, if only used synchronization (https://example.com/wp-content/uploads)
Сейчас, пока плагин не работает как надо, я хочу вручную синхронизировать файлы. Это подразумевает, что картинки загружаются в storage, но пользователю отдаются по-прежнему с хостинга.
Но!
Плагин сам пишет этот адрес в настройках WOrdpress Settings -> Media -> Full URL path to files
Т.е. как будтно отдавать картинки нужно не с хостинга, а со storage. Но ведь я этого не просил? Ну и из-за того, что в storage реально картинок нет, все картинки пропадают с сайта – приходится вручную стирать это поле.
Как я и писал выше, настроки Полный URL-путь к файлам (Full URL path to files) в настройках медиафайлов = Полный URL-путь к файлам в настройках плагина, изменяя одно, меняется другое. Там ведь так и написано:
if store files only in the Selectel Storage
Эти настройки дублируют друг друга просто для удобства, чтобы не лазить туда-сюда по админке, а поменять всё в одном месте.
По поводу ошибки. Какую версию WordPress вы используете? Загрузка файлов, как и проверка соединения реализованы через Ajax, используется библиотека JQuery. Проверьте подключается ли эта библиотека в админке. Проверить это можно просто изучив исходный код страницы. Подключаться JQuery должен раньше, чем javascript файл плагина. Возможно какой-то плагин корректирует очередность подключения JS, например, плагин кеширования.
Не видя ни кода страницы, не зная ни версию wordpress, не видя ответа и запроса к серверу, я со 100%-й уверенностью ничего не скажу.
Могу лишь точно сказать, что начиная с версии 3.8+ wordpress, 5.3.3+ PHP, с модулем cURL 7.16.2+ с включенным OpenSSL, а это есть на любом вменяемом хостинге из коробки, плагин работает без проблем.З.Ы. А почему у вас плагин на английском? У вас wordpress английский?
Попробуйте, переопределил подключение jquery, решение временное
https://uploads.wm-talk.net/selectel-storage-upload.zipКак я и писал выше, настроки Полный URL-путь к файлам (Full URL path to files) в настройках медиафайлов = Полный URL-путь к файлам в настройках плагина, изменяя одно, меняется другое.
Я понял свою ошибку. Для меня было не явно, что в случае, когда нужно указать полный путь, нужно использовать основной домен, а не поддомен контейнера. Но на работоспособность это не повлияло.
По поводу ошибки. Какую версию WordPress вы используете?
Последнее доступное официальное обновление.
Загрузка файлов, как и проверка соединения реализованы через Ajax, используется библиотека JQuery. Проверьте подключается ли эта библиотека в админке. Проверить это можно просто изучив исходный код страницы. Подключаться JQuery должен раньше, чем javascript файл плагина.
<!DOCTYPE html> <!-- [if IE 8]> <html xmlns="https://www.w3.org/1999/xht… --> <!-- [if !(IE 8) ]><! --> <html class="wp-toolbar" lang="en-US" xmlns="https://www.w3.org/1999/xhtml"> <!-- <![endif] --> <head></head> <body class="wp-admin wp-core-ui js jetpack-connected index-php admin-…-4-0 admin-color-midnight locale-en-us customize-support svg"> <script type="text/javascript"></script> <script type="text/javascript"></script> <div id="wpwrap"></div> <!-- wpwrap --> <script type="text/javascript"></script> <div class="quick-draft-textarea-clone" style="display: none; font-family: "Open Sans",sans-serif; font-siz…ding: 6px 7px; white-space: pre-wrap; word-wrap: break-word;"></div> <div id="customize-container"></div> </body> </html>
Могу лишь точно сказать, что начиная с версии 3.8+ wordpress, 5.3.3+ PHP, с модулем cURL 7.16.2+ с включенным OpenSSL, а это есть на любом вменяемом хостинге из коробки, плагин работает без проблем.
Я не спорю, что плагин в принципе работоспобный, но в чем в моём случае причина?
З.Ы. А почему у вас плагин на английском? У вас wordpress английский?
Да, английский. Не люблю переводы.
Но вообще он по несколько файлов в контейнер загрузить успевает. И даже загрузил плагин с временным решением, который я пытался установить ( но он не захотел, потому что папка уже создана – наверное, нужно сначала удалить уже установленный плагин)
И, кстати, вот ещё что.
Я попробовал плагин на другом блоге wordpress, который вообще почти без плагинов и на другом хостинге (тоже shared): там точно такие же симптомы.Вот правильный код страницы с настройками плагина
<!DOCTYPE html> <!-- [if IE 8]> <html xmlns="https://www.w3.org/1999/xht… --> <!-- [if !(IE 8) ]><! --> <html class="wp-toolbar" lang="en-US" xmlns="https://www.w3.org/1999/xhtml"> <!-- <![endif] --> <head></head> <body class="wp-admin wp-core-ui js jetpack-connected settings_page_se…-4-0 admin-color-midnight locale-en-us customize-support svg"> <script type="text/javascript"></script> <script type="text/javascript"></script> <div id="wpwrap"></div> <!-- wpwrap --> <script type="text/javascript"></script> </body> </html>
Напишите мне лучше через Skype (me_470), jabber ([email protected]), или icq (8422819).
Думаю так мы быстрее решим проблему, чем переписываясь здесь по сообщению в сутки.
Решение же я потом опубликую тут и оно войдёт в следующее обновление.Писать лучше в будние после 18.00 по мск или в выходные
Я не пользуюсь ничем из этого, но судя по джабберу, ты юзер дефолта. Написал тебе в личку там.
Проблема была связана с превышением параметра max_input_vars (по умолчанию равен 1000) в настройках php.ini при количестве файлов порядка 3-4 тысяч.
Версия 1.2.3 полностью устраняет эту проблему.
- The topic ‘Ошибка при синхронизации’ is closed to new replies.