На сервере с WordOps (Nginx + PHP-FPM) сайт лежит под /var/www/<domain>/, а PHP обычно крутится от пользователя www-data. После ручных правок, rsync, git clone или восстановления из бэкапа права часто «ломаются»: загрузка медиа не пишет в uploads, плагины не обновляются, в логах Permission denied.
Ниже стандартное восстановление владельца и режимов: каталоги 755, файлы 644, owner www-data:www-data. Перед массовым chown/chmod сделайте бэкап.
Зачем это нужно
Неверные права дают два класса проблем:
- Функциональные WP не может писать в
wp-content, кэш, сессии, .htaccess/nginx-хелперы. - Безопасность слишком открытые 777/мировой write или, наоборот, root-owned файлы, которые нельзя обслуживать из PHP-FPM.
Базовый безопасный профиль для большинства WP-сайтов: каталоги 755, файлы 644, владелец веб-пользователя.
1. Перейти в каталог сайта
В WordOps корень vhost обычно такой:
cd /var/www/domain.com # веб-корень чаще здесь: # cd /var/www/domain.com/htdocs
Подставьте свой домен. Если правите только WordPress, работайте из htdocs (там wp-config.php и wp-content).
2. Владелец: www-data
На типовой установке WordOps PHP-FPM и Nginx работают с www-data. Назначьте владельца рекурсивно:
sudo chown -R www-data:www-data .
chownсмена владельца и группы.-Rрекурсивно по дереву..текущий каталог (убедитесь, что вы не в/).
Если в вашей схеме другой pool-user (кастомный PHP-pool), подставьте его вместо www-data.
3. Права на каталоги: 755
find . -type d -exec chmod 755 {} \;
755: владелец rwx, остальные rx. Каталог должен быть «проходимым» (execute), иначе Nginx/PHP не зайдут внутрь.
4. Права на файлы: 644
find . -type f -exec chmod 644 {} \;
644: владелец rw, остальные r. Файлам execute обычно не нужен (исключения редкие CLI-скрипты вне веб-корня).
Одной пачкой
cd /var/www/domain.com/htdocs
sudo chown -R www-data:www-data .
sudo find . -type d -exec chmod 755 {} \;
sudo find . -type f -exec chmod 644 {} \;
Важные замечания
Бэкап перед правкой
Через WordOps:
wo site backup domain.com
wp-config и секреты
После массового 644 файл wp-config.php читается веб-пользователем это нормально. Не выставляйте ему 777. Если ужесточаете чтение, не отрежьте PHP-FPM от файла.
Плагины и кэш
Отдельные плагины (кэш, security, backup) могут создавать каталоги с особыми правами. Если после reset что-то перестало писать, проверьте именно их пути внутри wp-content.
Проверка
Откройте сайт, админку, загрузку медиа. Логи Nginx:
tail -f /var/log/nginx/error.log # при необходимости site-specific: # tail -f /var/www/domain.com/logs/error.log
Кратко
cdв каталог сайта (часто/var/www/domain.com/htdocs).chown -R www-data:www-data .- каталоги
755, файлы644. - бэкап до правок, проверка сайта и логов после.
Так вы возвращаете типичный профиль прав WordOps/Nginx/WordPress без «всем 777» и без файлов от root, к которым PHP не может писать.
