Обратился читатель с проблемой обновления wordpress и плагинов «при обновлении ошибка: Обновление не может быть установлено, потому что нам не удастся скопировать некоторые файлы. Обычно это связано с неверными правами на файлы.: wp-admin/includes/update-core.php«, которая появилась после переноса сайта с одного хостинга на другой.

Обычно данная проблема возникает при ошибочно указанных правах доступа или не верно указанный владелец на файлы и папки.
Сейчас мы покажем как легко решается этот вопрос.
Перед началом на всякий случай сделайте резервную копию.

Проверьте от имени какого пользователя запускается apache:

ps aux | grep -apache

www-data 16337  1.0  6.5  65140 34464 ?        S    00:47   0:00 /usr/sbin/apache2 -k start
www-data 16338  1.1  6.5  65144 34572 ?        S    00:47   0:00 /usr/sbin/apache2 -k start

Узнайте пользователя директории вашего сайта  у которого должны быть root-права на данную директорию:

cd /var/www/adminwin.ru
ls -l

Пользователь www-data должен быть в группе пользователя под которым  вы редактируете файлы через ftp или ssh.

usermod -a -G user-group www-data
find /var/www/adminwin.ru/ftp/public_html -type d -exec chmod 755
find /var/www/adminwin.ru/ftp/public_html -type f -exec chmod 664
chmod 644 /var/www/adminwin.ru/ftp/public_html/wp-config.php
chmod 644 /var/www/adminwin.ru/ftp/public_html/.htaccess
sudo chown -R www-data:user-group /var/www/adminwin.ru/ftp/public_html sudo chown -R www-data:user-group /var/www/adminwin.ru/ftp/public_html/wp-admin/ 
sudo chown -R www-data:user-group /var/www/adminwin.ru/ftp/public_html/wp-includes/ sudo chown -R www-data:user-group /var/www/adminwin.ru/ftp/public_html/wp-content/

1. Первым делом нужно выяснить какой владелец указан в свойствах файла «update-core.php«.

Если вы подключаетесь через терминал к серверу, тогда вводим следующие команды:

cd /var/www/adminwin.ru/ftp/public_html/wp-admin/includes/
ls -l update-core.php

В выводе команды, мы видим, что владелец файла является пользователь «www-data» группы «test-group«:

-rw-r--r-- 1 www-data test-group 52583 Aug 3 16:16 update-core.php

Если вы подключаетесь к файлам сервера через менеджер файлов например WinSCP или какой-либо другой, тогда просто зайдите в свойства файла, где отобразится Владелец и его группа.

2. Теперь нам нужно узнать под каким пользователем публикуются записи сайта и сравнить их.
Переходим в папку, где у нас хранятся загружаемые изображения или любые другие медиафайлы /var/www/adminwin.ru/ftp/public_html/wp-content/uploads/2017/07 и смотрим аналогично владельца и группу любого из файлов данной папки:

cd /var/www/adminwin.ru/ftp/public_html/wp-content/uploads/2017/07/
ls -l

Вывод команды:

-rw-rw-rw- 1 www-data ithelp21 35729 Jul 6 16:13 L2TP-Serv.jpg
-rw-rw-rw- 1 www-data ithelp21 20914 Jul 6 16:15 L2TP-Serv2.jpg
-rw-rw-rw- 1 www-data ithelp21 58657 Jul 6 16:08 L2TP-Server-Enable.jpg

3. Как видно, пользователь, с которого все работает «www-data» и группа «ithelp21«, а не «test-user» из 1 пункта.

Меняем владельца и группу файлу update-core.php на «www-data» и группу «ithelp21«.
Через файловый менеджер это можно сделать в свойствах файла или через команду в консоли:

sudo chown -R www-data:ithelp21 /var/www/adminwin.ru/ftp/public_html/wp-admin/includes/update-core.php

4. Снова пытаемся обновить WordPress и получаем такую же ошибку, но уже видим список из других файлов, у которых нам также нужно поменять владельца и группу. Задаем команду рекурсивно поменять владельца и группу всех файлов и папок, что содержатся в …/public_html/wp-admin/, …/public_html/wp-includes/ и для плагинов /public_html/plugins/

sudo chown -R www-data:ithelp21 /var/www/adminwin.ru/ftp/public_html/wp-admin/

sudo chown -R www-data:ithelp21 /var/www/adminwin.ru/ftp/public_html/wp-includes/

sudo chown -R www-data:ithelp21 /var/www/adminwin.ru/ftp/public_html/wp-content/plugins

Через файловый менеджер так же можно поменять владельца и группу всей папки с вложениями, поставив галочку «Установив разрешения и для потомков».

5. Запускаем обновление WordPress — все ОК. Проверяем обновления плагинов — все ОК.
Если есть вопросы, задавайте в комментариях.

7 thoughts on “Обновление не может быть установлено, потому что нам не удастся скопировать некоторые файлы. Обычно это связано с неверными правами на файлы.: wp-admin/includes/update-core.php

  1. Красиво все описали и даже может быть и полезно но, как узнать что это такое таинственное слово терминал, нельзя ли с этого места и поподробнее, что это за программа или место а то не все умеют читать мысли, и не все знают то что вы знаете.

  2. Практически никогда не комментирую, но тут не могу не написать.
    Была проблема на сервере, последние месяца 4 мучался, с правами играл, вручную плагины обновлял, чего только не придумывал. В инете искал, нигде нормально не описывалось. В итоге, только сейчас получилось сделать так, «чтобы заработало». И все благодаря этому тексту. Попросту рутом выставил на все папки сайтов одного владельца и все обновления заработали как часы.

    В общем, спасибо вам!

  3. Спасибо Огромное! Благодаря Вашей статье смогла обновить WordPress до свежей версии на локальном сервере! Единственное, у меня сложилось впечатление, что нужно было сразу рекурсивно обновлять пользователя для всех файлов, которые находятся в каталоге, где хранится обновляемый сайт. Было бы гораздо быстрее, потому что в итоге так и получилось, что пришлось менять пользователя отдельно для абсолютно всех файлов. Может, я и не права.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.