Почему Wordpress на localhost не находит обновления?

24 июл. 2013 г., 23:07:52
Просмотры: 16.1K
Голосов: 1

У меня работает Wordpress на WAMP. Почему-то при проверке обновлений для ядра и плагинов система сообщает, что всё актуально, хотя я знаю, что отстаю на одну версию ядра и три плагина. Почему я не получаю эти обновления?

Я проверил права доступа к файлам — всё в порядке. Пробовал отключать все плагины — без изменений. Также попытался переустановить текущую версию ядра Wordpress и получил следующий вывод:

Загрузка обновления с http://wordpress.org/wordpress-3.5.1-no-content.zip…
Ошибка загрузки.
Ошибка установки

Больше никакой информации нет. Есть идеи, в чём проблема? Почти идентичная версия на боевом сервере видит обновления нормально.

Обновление: Я так и не получил решения этой проблемы. Полезной информацией было бы узнать, к каким доменам или поддоменам Wordpress подключается для проверки и загрузки обновлений. Тогда я мог бы отладить подключение к этим доменам.

Обновление: Решения по-прежнему нет. Подозреваю, что проблема связана с тем, что Apache не может подключиться к внешним серверам, но не знаю, как это исправить.

10
Комментарии

Проверьте права доступа на директорию wp-content. Почти наверняка это проблема с владельцем файлов/папок или их правами доступа.

s_ha_dum s_ha_dum
24 июл. 2013 г. 23:43:49

Как я уже сказал, я проверил права доступа к файлам, и с ними всё в порядке.

Josiah Sprague Josiah Sprague
25 июл. 2013 г. 19:08:31

Вы проверили владельца/группу? Это часто упускают из виду при работе с правами доступа к файлам. Смотрите: http://wordpress.stackexchange.com/a/96454/21376

s_ha_dum s_ha_dum
25 июл. 2013 г. 19:12:15

Я работаю на Windows, поэтому не совсем уверен, как следовать этим инструкциям. Может кто-нибудь дать совет, как проверить права доступа к файлам в Windows?

Josiah Sprague Josiah Sprague
13 авг. 2013 г. 16:38:14

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

Matthew Boynes Matthew Boynes
13 авг. 2013 г. 17:14:45

Я временно отключил все свои брандмауэры, но это не помогло. Есть ли какие-то настройки Windows, связанные с проблемами брандмауэра, которые я мог бы проверить? Несколько месяцев назад я запускал программу для удаления шпионского ПО, которая ужесточила безопасность на моем компьютере, и это могло случайно вызвать данную проблему.

Josiah Sprague Josiah Sprague
13 авг. 2013 г. 17:40:26

Установите чистый WordPress на ваш WAMP с версией, которую используете. Используйте только стандартные настройки, темы и никаких плагинов. Попробуйте обновить его.

BoBoz BoBoz
13 авг. 2013 г. 17:40:31

Та же самая проблема с чистой установкой. Должно быть, это проблема конфигурации системы, но я не знаю, какая именно.

Josiah Sprague Josiah Sprague
13 авг. 2013 г. 21:45:08

Вы не пробовали использовать svn/git или composer, или другую систему контроля версий для отслеживания версии WordPress и её обновления, вместо встроенного механизма обновлений?

Tom J Nowell Tom J Nowell
13 авг. 2013 г. 23:20:49

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

Josiah Sprague Josiah Sprague
14 авг. 2013 г. 15:57:38
Показать остальные 5 комментариев
Все ответы на вопрос 7
5

Я сам использую XAMPP, но WAMP не сильно отличается.

Готов поспорить, что у вас не включен модуль curl. WordPress может использовать другие методы (streams и fsockopen) в качестве запасных вариантов, но они также могут быть отключены по умолчанию в стандартной установке. Curl является предпочтительным и его легко включить.

  1. Закройте WAMP
  2. Перейдите в директорию \bin\php\версия в WAMP
  3. Отредактируйте php.ini и раскомментируйте строку extension=php_curl.dll
  4. Сделайте то же самое в \bin\Apache\версия\bin\
  5. Сохраните изменения и перезапустите WAMP.

Примечание: WAMP также может предоставлять более простой способ сделать это через графический интерфейс. Найдите раздел "PHP extensions" и "php_curl" и убедитесь, что он включен.

13 авг. 2013 г. 23:24:32
Комментарии

Интересно. Я подозреваю, что проблема не в этом, потому что обновления раньше работали, а потом внезапно прекратились. Но из любопытства я проверил это. В моем php.ini в директории Apache curl уже был включен, но в PHP-директории - нет, так что я включил его, но получаю ошибку при запуске WAMP: "Unable to load dynamic library... php_curl.dll ...side-by-side configuration is incorrect..."

Josiah Sprague Josiah Sprague
14 авг. 2013 г. 15:55:23

@JosiahSprague Похоже, вам не хватает .dll файла. Убедитесь, что он находится в директории расширений PHP (для Windows и Unix, кажется, они разные).

Dzhuneyt Dzhuneyt
15 авг. 2013 г. 13:04:39

.dll файл на месте. Я также проверил права доступа к .dll, и они в порядке.

Josiah Sprague Josiah Sprague
15 авг. 2013 г. 16:20:43

Учитывая такую проблему, я бы удалил WAMP и установил XAMPP вместо него. XAMPP работает просто отлично.

Otto Otto
15 авг. 2013 г. 17:02:15

Можно попробовать, но учитывая, что я использую WAMP уже три года без проблем, и что я даже не уверен, что эта штука с Wordpress имеет какое-то отношение к WAMP, я бы сначала хотел изучить другие решения.

Josiah Sprague Josiah Sprague
19 авг. 2013 г. 16:05:31
1
  1. Сначала откройте /wp-config.php

Первое, что вам нужно сделать - это открыть файл wp-config.php из корневой папки WordPress. Файл находится по пути wordpress/wp-config.php

  1. Добавьте FS_METHOD

Вставьте следующий код в ваш файл wp-config.php, желательно сразу после других строк кода.

define('FS_METHOD','direct');

Сохраните изменения - это точно сработает. У меня это успешно заработало.

25 окт. 2016 г. 11:35:48
Комментарии

Что именно это делает?

Hashim Aziz Hashim Aziz
26 мая 2019 г. 02:32:11
2

"Не удалось скачать." возникает при ошибке в функции download_url()

Попробуйте выполнить этот код в одном из ваших файлов:

$url = "http://wordpress.org/wordpress-3.5.1-no-content.zip";
require_once(ABSPATH . "wp-admin/includes/file.php");
$file = download_url($url);
echo "<pre>";
var_dump($file);
echo "</pre>";

Это должно вывести одно из следующих сообщений об ошибке:

WP_Error('http_no_url', __('Указан неверный URL.'));
WP_Error('http_no_file', __('Не удалось создать временный файл.'));
WP_Error( 'http_404', trim( wp_remote_retrieve_response_message( $response ) ) );
WP_Error('http_request_failed', __('Не был предоставлен корректный URL.'));
WP_Error( 'http_request_failed', __( 'Пользователь заблокировал запросы через HTTP.' ) );
WP_Error( 'http_request_failed', __( 'Целевая директория для потоковой передачи файла не существует или недоступна для записи.' ) );
13 авг. 2013 г. 20:09:44
Комментарии

Кажется, вы на правильном пути, но у меня возникла ошибка: Fatal error: Call to undefined function download_url() in C:\wamp\www\doulos\wp-content\themes\doulos\front-page.php on line 9

Josiah Sprague Josiah Sprague
13 авг. 2013 г. 21:22:04

Извините, эта функция автоматически подключается только в wp-admin. Добавьте строку require_once(ABSPATH . "wp-admin/includes/file.php"); для её подключения.

Puggan Se Puggan Se
13 авг. 2013 г. 23:08:43
2

Я заметил, что могут происходить странные вещи при запуске WAMP без прав администратора. Если ни один из вышеперечисленных способов не помог, попробуйте запустить WAMP Server от имени администратора и посмотрите, решит ли это проблему (даже если ваша учетная запись уже имеет права администратора). Если WAMP не запущен с правами администратора, это может мешать WordPress обнаруживать доступные обновления.

Чтобы запустить WAMP от имени администратора, кликните на меню "Пуск", введите wamp, нажмите правой кнопкой мыши на "Start wampServer" и выберите "Запуск от имени администратора".

Скриншот запуска WAMP с правами администратора

13 авг. 2013 г. 23:48:36
Комментарии

Отличная идея! К сожалению, я попробовал, и это не сработало.

Josiah Sprague Josiah Sprague
14 авг. 2013 г. 15:47:50

Жаль. Вы когда-нибудь пробовали XAMPP? В конце концов я сдался и отказался от WAMP из-за всех проблем. Возможно, переход на другую программу поможет вам запустить установку WP. Я знаю, что это не решает проблему с WAMP, но это может помочь избавиться от разочарований.

Ian Ian
14 авг. 2013 г. 18:04:45
1

Вы можете изменить файл wp-config.php.

И добавить следующий код:

define('FS_METHOD', 'direct');

В моём случае это решило проблему.

1 апр. 2016 г. 13:12:07
Комментарии

Что это делает?

Hashim Aziz Hashim Aziz
26 мая 2019 г. 02:32:44
0

У меня были похожие проблемы, и в первую очередь я бы порекомендовал использовать XAMPP — это отличное решение для любой разработки на PHP под Windows, так как WAMP много раз подводил меня раньше, а XAMPP работает всегда и даже имеет портативную версию (использую его уже 4-5 лет).

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

Попробуйте проверить, загружаются ли вообще файлы, с помощью инструментов мониторинга сети (вкладка "Сеть" в диспетчере задач может дать приблизительное представление, если другие интернет-приложения не работают). Если вы видите передачу данных, причем в течение достаточного времени для загрузки 4-5 МБ, то всё в порядке. В противном случае проблема может быть в WAMP или правах файловой системы.

У меня также было подозрение, что ваш файл hosts мог быть изменён. Проверьте, нет ли там записи для wordpress.org, указывающей на 127.0.0.1 или другой адрес вместо реальных серверов wordpress.org.

Надеюсь, это поможет вам!

17 авг. 2013 г. 17:49:28
1

Я помню, что сталкивался с похожей ситуацией некоторое время назад, и тогда проблема была решена путем указания временной директории в файле wp-config. Попробуйте добавить следующую строку в ваш файл wp-config.php:

define('WP_TEMP_DIR','/путь-к-созданной-вами-папке');

19 авг. 2013 г. 22:33:01
Комментарии

Спасибо за предложение. Я попробовал это, но это не сработало.

Josiah Sprague Josiah Sprague
22 авг. 2013 г. 20:12:57