Преди време, когато преминавах от версия 2.6.х към 2.7.х видях голям зор да оправя производителността. Ефекта след ъпгрейда беше, че зареждането на която и да е от страниците на блога, включително и admin достъпът бяха потресаващо бавни. Като пиша “потресаващо” имам в предвид забавяне от порядъка на 2 до 3 минути. Зора се изразяваше предимно в това, да изтърпя безумно бавното зареждане, за да мога все пак да натрупам някакво впечатление за проблема и да направя малко тестове. Поведението беше еднакво и при всичките операционни системи с които тествах, както и с няколкото браузъра с които правих опитите. Бавно, та чак да ти се доплаче. Иначе, отдавна всеки един ъпгрейд на WordPress протича, като по мед и масло. Очевидно, проблемът беше в самият WordPress, но със сигурност не и само в него. Толкова сериозен проблем, просто няма как да е останал незабелязан. Очевидният заподозрян бяха правата върху различните директории, но в този случай, просто ключът от палатка не беше в това.
След известно ровичкане из Мрежата, в крайна сметка намерих разрешението. И оправих всичко, както си беше преди – пъргаво и бързо. Сайта направо хвърчеше! Пределно доволен от резултата, все едно някой ми “дръпна казанчето” и всичката информация за това, как се оправяха нещата изтече в канала. Даже в добавка, някак си се изхитрих да забравя, че изобщо е имало проблем с ъпгрейда.
Днес минавам от версия 2.7.1 към 2.8.2 и …. направо щях да се гръмна! В момента, в който зареждането на admin страницата ми “удари” 30-тата секунда, цялата случка с предишният ъпгрейд се стовари отгоре ми. А като капак на всичко и грам идея нямах в главата си, как се справих предишният път. Все пак, търсенето на решението не отне толºова време, колкото предишният път, още повече, че имах и малко повече вътрешна информация за хостинга на СпектърНет. За да си спестят неприяπности с атаки от техни клиенти, както и вируси, които се правят на какво ли не, колегите просто бяха забранили трафикът през изходящ порт 80 за целият хостинг сървър. Не коментирам целесъобразността или елегантността на решението им, всеки се справя както може. Понякога бързината за справянето с проблема е по-важна от удобството на клиентите. Нещо, като ампутация на крак в полеви условия.
Файлът, който трябва да се пипне е http.php намиращ се в директория wp-includes. Функцията request, която е добавена във версия 2.7 (и по-късни) просто не получава необходимата информация (забранен порт 80) и генерира гадното забавяне от 2-3 минути. Решението е елементарно, въпросната функция просто се шунтира.
Промяната за версия 2.8.2 е следната: просто под ред 218 добавяте едно return;
218: function request( $url, $args = array() ) {
219: return;
220: global $wp_version;
Не е много коректно, но така или иначе функционалността на тази функция е отрязана от хостинга, поне да не пречи. Естествено, ако вие имате подобни грижи, може да опитате да се преборите с вашият доставчик да върне функционалността на сърръра. Лично аз избрах по-лесният път. Това, което се загуби, като функционалност на WordPress-a беше, че Dashboard-ът престана да си обновява информацията.
Ако някой иска да задълбава в технически подробности, да му спестя малко гугленето – просто да натисне тук.
Допълнение: всъщност, най-голямата загуба на функционалност е невъзможността на спам филтърът Askinet да работи коректно. За голямо съжаление той също използва fsockopen и порт 80. Явно, май ще се бяга при друг доставчик…..
Наистина добра платформа,както коментирахме днес,но шунтирането на функцията точно преди глобална променлива…както и да е..сериозен екип девелопъри си имат,които да му мислят,аз мисля да ъпгрейдна една позабравена версия 1.2.2 до 2.6 и после да пробвам последната…хем ще разбера дали хостинга на ICN е наистина толкова перфектен,за колкото го мисля ;]]]
Само с “ъпгрейд” няма да стане. Просто инсталирай всичко наново. Коментарите и постингите ги изкарай, като експорт от SQL-а.
Иначе променливата не е фатална, просто се взема текущата версия на WP и се пуска, като параметър на http заявката, за да може заявката от агента да се регистрира коректно.