Обратился читатель с проблемой обновления 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 — все ОК. Проверяем обновления плагинов — все ОК.
Если есть вопросы, задавайте в комментариях.
Можем удаленно помочь решить проблему в обмен на видеосъемку процесса, для дальнейшей публикации на нашему youtube-канале. Писать на ithelp21@mail.ru.
Красиво все описали и даже может быть и полезно но, как узнать что это такое таинственное слово терминал, нельзя ли с этого места и поподробнее, что это за программа или место а то не все умеют читать мысли, и не все знают то что вы знаете.
имеется ввиду подключение к серверу по ssh или ftp. В ближайшее время сделаем статью на эту тему.
Спасибо тебе, друг. Всё исправил, всё работает.
Лучи добра!
Практически никогда не комментирую, но тут не могу не написать.
Была проблема на сервере, последние месяца 4 мучался, с правами играл, вручную плагины обновлял, чего только не придумывал. В инете искал, нигде нормально не описывалось. В итоге, только сейчас получилось сделать так, «чтобы заработало». И все благодаря этому тексту. Попросту рутом выставил на все папки сайтов одного владельца и все обновления заработали как часы.
В общем, спасибо вам!
Рады, что помогли)
Спасибо Огромное! Благодаря Вашей статье смогла обновить WordPress до свежей версии на локальном сервере! Единственное, у меня сложилось впечатление, что нужно было сразу рекурсивно обновлять пользователя для всех файлов, которые находятся в каталоге, где хранится обновляемый сайт. Было бы гораздо быстрее, потому что в итоге так и получилось, что пришлось менять пользователя отдельно для абсолютно всех файлов. Может, я и не права.