Справочник на статиите
Когато поддържате WordPress сайт в среда HestiaCP , може да срещнете съобщение за грешка „Актуализацията не може да се извърши, защото някои файлове не могат да бъдат копирани“.
Това предупреждение може да изглежда тревожно, но всъщност е един от най-често срещаните проблеми, свързани с разрешенията в WordPress.
Обикновено се случва по време на автоматични актуализации на плъгини, теми или ядрото на WordPress.
На пръв поглед това е просто „неуспешна актуализация“, но основната причина почти винаги сочи към едно и също нещо: непоследователни разрешения за файлове.
Добрата новина е, че след като разберете потребителския модел на HestiaCP, можете напълно да решите проблема само с няколко команди.
Основна причина за проблема: Защо възниква несъответствие на разрешенията?
В средата на HestiaCP всеки уебсайт (Vhost) работи под отделен системен потребител.
Междувременно, процесите на уеб услугите (PHP-FPM / Nginx) също се изпълняват под системния потребителски акаунт, съответстващ на уебсайта.
Следователно, когато собственикът на някои плъгини или файлове с теми стане root или друг потребител, потребителите на уебсайта няма да имат право да променят или изтриват тези файлове.
По време на надстройката, WordPress трябва да копира и презапише тези файлове. Ако разрешенията са неправилни, надстройката ще бъде прекъсната и ще се покаже горният ред.
Основната причина може да се обобщи в едно изречение: собственикът на файла вече не е потребител на системата на уебсайта.
Решение: Поправете разрешенията за файлове в SSH терминала.
По-долу са посочени проверените стъпки за поправка; просто изпълнете командите последователно в SSH терминала.
Моля, заменете your_user в примера с потребителското си име в HestiaCP, а yourdomain.com с действителното име на вашия домейн.
Целият процес не изисква рестартиране на услугата и няма да повлияе на съществуващите данни на сайта.
Целият процес отнема около две минути и дори начинаещите могат да го изпълнят успешно от първия опит, като просто копират и поставят.
Преди да продължите, се препоръчва да потвърдите, че терминалът може да бъде влязъл като администратор, за да избегнете прекъсване на връзката по време на процеса.
Стъпка 1: Дефиниране на променливи
Първо, задайте две променливи, потребителско име и име на домейн, в терминала, така че последващите команди да могат да се използват повторно директно.
# 设置你的 Hestia 用户名和域名
HESTIA_USER="your_user"
HESTIA_DOMAIN="yourdomain.com"След като променливите са дефинирани, всички следващи команди могат директно да се позовават на тях, като по този начин се избягва необходимостта от ръчно въвеждане всеки път.
Стъпка 2: Възстановяване на собствеността върху файла (поправка на ядрото)
Принудително връщане на собственика на системата и потребителската група на всички файлове в директорията на уебсайта на съответния потребител на HestiaCP.
chown -R $HESTIA_USER:$HESTIA_USER /home/$HESTIA_USER/web/$HESTIA_DOMAIN/public_htmlТази стъпка е в основата на целия процес на ремонт; след като проблемът със собствеността бъде решен, проблемът е решен.

Ако chown съобщи, че пътят не съществува, първо проверете дали изписването на променливата съвпада с действителната директория.
Стъпка 3: Нулирайте стандартните разрешения за файлове и директории на HestiaCP
След това задайте разрешенията за директорията на 755 и разрешенията за файловете на 644.
# 修复所有目录权限为 755
find /home/$HESTIA_USER/web/$HESTIA_DOMAIN/public_html -type d -exec chmod 755 {} \;
# 修复所有文件权限为 644
find /home/$HESTIA_USER/web/$HESTIA_DOMAIN/public_html -type f -exec chmod 644 {} \;Тези два набора от разрешения са стандартни конфигурации за HestiaCP, които могат едновременно да задоволят както сигурността, така и възможността за запис.
Скрипт с едно щракване (препоръчително)
Ако желаете да извършите всички горепосочени операции наведнъж, можете да използвате следния скрипт с едно щракване.
Просто заменете your_user и chenweiliang.com с действителните си стойности, поставете целия параграф в терминала и натиснете Enter.
USER="your_user" DOMAIN="chenweiliang.com" && chown -R $USER:$USER /home/$USER/web/$DOMAIN/public_html && find /home/$USER/web/$DOMAIN/public_html -type d -exec chmod 755 {} \; && find /home/$USER/web/$DOMAIN/public_html -type f -exec chmod 644 {} \;Допълнителни съвети: За да направите ремонта по-щателен
Коригирането на разрешенията отстранява само непосредствената причина за проблема „актуализацията е заседнала“. За да разрешите напълно този проблем, има още две неща, които си струва да направите.
Първо, почистете остатъчните файлове, останали от прекъснатото надграждане; второ, научете се как да извършвате фонови поправки, без да разчитате на SSH.
Тези две стъпки не са трудни, но могат значително да намалят вероятността от повтаряне на подобни проблеми.
Следните операции са базирани на предпоставката, че разрешенията току-що са били възстановени. Изпълнението им по ред ще даде най-добри резултати.
Ако имате повече от един сайт на вашия сървър, можете също да организирате този процес в шаблон на скрипт за многократна употреба.
Премахнете остатъците от временни надстройки
След възстановяване на разрешенията се препоръчва да почистите всички временни файлове, останали след прекъсването на надстройката на WordPress.
Тези остатъчни файлове се намират в директорията wp-content/upgrade. Ако не ги премахнете, това може да доведе до повторно забавяне на следващата надстройка.
rm -rf /home/$USER/web/$DOMAIN/public_html/wp-content/upgrade/*Не искате да използвате SSH? Поправете го ръчно в бекенда на HestiaCP.
Ако ви е неудобно да използвате командния ред, можете също да влезете в бекенда на HestiaCP и да нулирате разрешенията чрез файловия мениджър.
Отидете на Файлове (файлов мениджър) и отидете на /home/USER/web/DOMAIN/public_html/wp-content.
Щракнете с десния бутон върху папката с плъгини или теми и изберете „Нулиране на разрешения“.
След като нулирате разрешенията, върнете се в администраторския панел на WordPress и щракнете отново върху „актуализиране“; обикновено би трябвало да работи безпроблемно.
Ако същата грешка продължава след извършване на операцията от backend-а, просто се върнете към SSH решението по-горе и потвърдете отново собствеността.
总结
Ако видите съобщението „Актуализацията не може да се извърши, защото някои файлове не могат да бъдат копирани“, не бързайте да преинсталирате. В повечето случаи това е проблем с разрешенията.
Чрез използването на една команда `chown` и две команди `find` за връщане на собственост и разрешения, актуализациите на WordPress могат да се извършват гладко.
Развиването на навик за проверка на собствеността на файловете преди надграждане може фундаментално да предотврати повтарянето на подобни грешки.
Надяваме се, че статията „Решаване на проблема с WORDPRESS: Актуализацията не може да продължи, защото някои файлове не могат да бъдат копирани. Този проблем обикновено се причинява от непоследователни разрешения за достъп до файлове“, споделена в блога на Чен Вейлианг ( https://www.chenweiliang.com/ ), ще ви бъде полезна.
Чувствайте се свободни да споделите линка към тази статия: https://www.chenweiliang.com/cwl-34583.html
