Проблема в WordPress MU c медиафайлами (в настройках сервера под WPMU)

Вчера SlaFFik обратился за помощью — как он сказал у него

после обновления WPMU с 2.6.3 до 2.6.5 перестали показываться все картинки

Провозился он сначала сам долго, затем привлек меня в помощь. я тоже очень долго возился… Что только не проверял — все равно не отдавались картинки через редирект на сервере (путь идет как www.site.ru/files/2008/12/file.jpg а реально файл лежит в WPMU к примеру www.site.ru/wp-content/blogs.dir/1/files/2008/12/file.jpg) — ни в какую не открывало так, хотя на сервер картинки все закачивались и даже миниатюры создавались. При этом в логах писало ошибку о каком то превышении числа редиректов.

mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use ‘RewriteOptions MaxRedirects’ to increase the limit if neccessary.

изменение этого параметра он писал что не помогло.

Ради прикола переименовал картинку — сделал ей левой расширение TXT — файл тут же начал нормально загружаться через браузер по прямой ссылке.
В конфиге и htaccess в корне сайта было все нормально. Решил попробовать у себя поставить вмпу2.6.5 — та же фигня. ставлю 2.6.3 — тоже не пашет. 2.6.1 — тоже не пашет. 1.5 — тоже не пашет. хотя раньше все работало. Сегодня поставил бету wpmu 2.7 — думал ну там то уж точно может заработает — фигушки! и тут дернуло меня выключить для тестового домена в конфиге nginx отдачу статики (там были как раз перечислены расширения). Перезапустил Nginx и вуаля — WPMU тут же заработал без проблем. Видно причина кроется как раз в том что идет схема nginx-apache-wpmu и при использовании еще и редиректа внутри домена на папку с загрузками что то блокируется. nginx отдавал ошибку 404 — типа не найдено ничего на сервере. Но это ладно — мой сервер и такое может быть — где то может что то не учел в настройке для совместимости с MU (я у себя его только тестирую а реально не использую для себя)
но у SlaFFik’а конфигурация софта совсем другая : Server: Apache/1.3.41 (Unix) mod_throttle/3.1.2 mod_psoft_traffic/0.2 mod_ssl/2.8.31 OpenSSL/0.9.8b
и nginx-ом там даже не пахнет. Но тем не менее даже при откате у него на старую версию движка проблема не пропадает. в чем причина тоже не ясно. если у меня просто выдает 404, то у него просто виснет секунд на 30 и потом прекращается запрос — видно по поведению браузера.
Есть у кого идеи по источнику проблемы?

11 комментариев

Как автоматически обновлять WordPress 2.7 и выше моей сборки с моего сайта

Вы попросили — Кактус сделал для вас это!

В новом WordPress 2.7 появилось встроенное обновление, которое как я писал ранее само определяет язык установленной версии и предлагает URL-ы для скачивания и обновления. Ко мне обратилось несколько человек по почте и аське с просьбой сделать автообновление именно для моей версии, т.е. чтобы при автообновлении не менялся перевод на «официальный».

Порывшись в исходниках я нашел где генерируется запрос и что получает он в ответ, а мой давний друг Михаил подсказал как можно «обойти это» после того как я ему обрисовал проблему и что надо получить,  все оказалось элементарно просто!

Если у вас уже установлена моя версия WordPress 2.7 (скачана до появления этого поста), то достаточно скачать этот небольшой архив и распаковать на сервер в папку блога «как есть» с заменой исходных файлов. В нем содержится измененный файл отвечающий за обновления и обновленный перевод. Дистрибутив WordPress 2.7 также обновлен.

патч изменен- смотрите здесь

Чтобы убедиться что все у вас работает теперь правильно, отключите временно мой плагин «блокировка запросов на новые версии» (если используете), а затем пройдите в меню ИНСТРУМЕНТЫ — ОБНОВЛЕНИЯ. У вас должна ссылка на скачивание новой версии ru_RU отображаться как

http://lecactus.ru/download/wordpress-2.7-ru_RU.zip

. Естественно при выходе новых версий этот УРЛ будет сам меняться на новый? но также с правильным доменом.
Если это так значит все в порядке! Можете включать плагин блокировки проверки обновлений снова
Также вы можете обновляться кроме основного сайта с зеркала: откройте файл wp-includes/update.php
найдите там строку с текстом (имеется ввиду свежескачанный файл приведенный выше):

‘http://lecactus.ru/download/’, $body);

и замените путь на

http://wp2.lecactus.ru/download/

этот сервер находится не в россии (хостинг servage.net) — для кого то это может быть более оптимальный вариант по скорости и он точно доступен 24часа в сутки.
Успешно протестировано обновление на хостинге Мастерхост — проверялось обновление с моей русской версии 2.7-RC2 до моей русской финальной. Чтобы у вас корректно работало автообновление требуется поставить права 777(775,755) на папку wp-content либо создать в ней папку upgrade и дать права 777(775,755) только на нее. Права разные приведены т.к. для разных хостингов может быть по разному. Если что то не работает то ВП сам ругнется в самом начале что надо изменить права
wp27upgrade
Так что не так сильна проблема, как казалось это некоторым личностям…

28 комментариев

Выпадающее меню «админки» для WordPress 2.7!

Да, вы не ослышались. OZH выпустил новую версию своего плагина которая работает в WordPress 2.7
14120815-23-19
Пригодится для тех, кого «пугает» новый вид админки WordPress 2.7, тем кто привык к выпадающему меню сверху страницы
Плагин я уже включил в обновленный PowerPack 2.7, а по ссылке выше вы можете скачать его отдельно

И настроек у плагина хватает: можно изменить все до неузнаваемости. перекрасить. скрыть иконки, вид изменить

10 комментариев

Плагин Bad Behavior 2.0.25 русская «пропатченная» версия

Ранее я уже публиковал русификаторы и модификации. Что это такое объяснять не буду, кому надо — полистают блог и поиск поюзают :-)
Собрался и собрал все в одно. Буду потом обновлять тоже сразу дистриб, т.к. русификация отдельно не подходит иногда к новым версиям плагина (она прямо в коде)
Это просто последняя версия, полностью русифицированная включая «сообщение посетителю» (дополненное и улучшенное для понимания сути проблемы), а также добавлены в белый список некоторые адреса и убрана блокировка трекбеков/пингов от блогов на WP.
При всех достоинствах других антиспам-плагинов — этот блокирует около 99% автоматического спама и он даже не доходит до остальных антиспамов. Мизерная часть посетителей тоже блокируется, но обычно проблема всегда решается с теми кто обращается за помощью. наиболее частая причина — криво настроенный браузер («протвикан» неправильно и т.п.) либо сидят через какие то подозрительные прокси, которые есть в базе плагина.

Скачать
Скачали 1226 раз

2 комментария

Официальный пакет небольших исправлений для WordPress 2.7

Первый пакет из пяти исправлений для WordPress 2.7 который рекомендуют использовать не дожидаясь версии 2.7.1

Скачать набор исправленных файлов все-в-одном (если у вас уже был установлен WordPress 2.7) и просто распаковать все содержимое сохраняя структуру папок поверх установленного WordPress.

В своем дистрибутиве файлы тоже обновил

Что исправлено:
1 при установке админу присвается уровень 0 вместо 10 (возникают проблемы с некоторыми плагинами). Если вы обновляли старую версию (до 2.7) то проблемы нет.
2 исправляется ошибка

Warning: curl_exec() has been disabled for security reasons in /home/nicetec/public_html/wp-includes/http.php on line 1022 Warning: curl_exec() has been disabled for security reasons in /home/nicetec/public_html/wp-includes/http.php on line 1027 Warning: Cannot modify header information — headers already sent by (output started at /home/nicetec/public_html/wp-includes/http.php:1022) in /home/nicetec/public_html/wp-includes/pluggable.php on line 850

помнится у кого то она была — писали в коментах
3 исправление для обновления плагинов
4 незакрытый тег STRONG в «редакторе темы»
5 исправление проблемы с постраничными комментариями (для тех кто использует встроенную в 2.7 разбивку коментов по страницам)

Эти исправления не затрагивают той проблемы, что описана в прошлом  посте. Поэтому если у вас та самая проблема, то скачайте полный патч этот официальный+тот неофициальный все-в-одном (в обновленный дистрибутив тот патч не включен)

Комментарии к записи Официальный пакет небольших исправлений для WordPress 2.7 отключены

Исправление фатальной ошибки WP2.7 при публикации (если у вас такое вдруг случилось)

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

Более подробно можно ознакомиться с проблемой по ссылке выше, там же можно взять diff файл для патчинга. Или скачать у меня уже исправленные файлы (с примененными теми самыми патчами). У меня ошибки такой не было ни разу за все время работы с версией 2.7, поэтому подтвердить или опровергнуть ошибку не могу. Использовать файлы на свой страх и риск (если у вас есть ошибка). Официального исправления пока еще не выходило.

это же исправление+набор официальных исправлений все-в-одном

Один комментарий

«Обнаружена новая версия WordPress… пожалуйста обновитесь»

Многие вчера и позавчера видели такую фразу в админке и не раз задавали вопрос как от нее избавиться.

Решение простое:

Если у вас пишется после установки моей сборки 2.7, что ее все равно требуется обновить, то скачайте этот файл и распакуйте в wp-includes — там добавлена одна строка, указываящая локализацию вашей установленной версии.

Дистрибутив также обновил. Если вы скачали его после 13 декабря 03:00(МСК) то это вас не касается :-) Если до — то скачайте вышеприведенный файл и распакуйте куда указано.

Принцип действия «фишки» простой — если там прописано в этом файле ru_RU и в вашем конфиге тоже WPLANG равный ru_RU (а так у 99% пользователей русской версии), то автообновление будет работать из неправильного(читай «официального«) источника. Не пользуйтесь автообновлением вообще пока.

Если вы случайно воспользовались «автообновлением» и у вас заменился мой перевод на «официальный», то скачайте этот архив и распакуйте все файлы из него в /wp-content/languages/

Комментарии к записи «Обнаружена новая версия WordPress… пожалуйста обновитесь» отключены

Минимальное обновление для comments.php в WordPress 2.7

Если вы еще не хотите/не готовы полностью переработать вашу «тему» для поддержки новой функции комментариев WordPress 2.7, то сделайте хотя бы минимальное изменение:

Откройте ваш файл «темы» comments.php и найдите там строку типа такой:

<legend>Вы вошли как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Выйти из текущего аккаунта">Выйти &raquo;</a></legend>

и замените в ней одну часть чтобы получилось так

<legend>Вы вошли как <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Выйти из текущего аккаунта">Выйти &raquo;</a></legend>

Отличие на первый взгляд малое, но работает кардинально по разному (про новый тег писала недавно Соника (ссылку на пост ставил я на днях у себя)

<?php echo wp_logout_url(get_permalink()); ?>

меняет вашу ссылку «выхода» с примерно такой

http://www.вашсайт.ru/wp-login.php?action=logout

на примерно такую

http://www.вашсайт.ru/wp-login.php?action=logout&redirect_to=http%3A%2F%2Fwww.вашсайт.ru%2Fcategory%2nazvanieposta%2F&_wpnonce=f280f0b1cd

. Основное отличие в дополнительном параметре _wpnonce=f280f0b1cd без которого выход невозможен (кстати это тот самый параметр про кторый я писал что он появился в конфиге WP2.7), а остальное это просто говорит что после выхода редиректиться будет само на этот же пост.

Зачем все это нужно вообще? а чтобы не получить вот такую ошибку например при нажатии на эту самую ссылку «ВЫЙТИ» (и так будет показывать постоянно)
trouble_exit

24 комментария