Поиск по сайту:
Чтобы стать богатым, необходимы три вещи: ум, талант и много денег (Е. Кащеев).

Добавление SFTP пользователя с необходимыми разрешениями для Nginx с PHP-FPM

26.03.2017
Добавление SFTP пользователя с необходимыми разрешениями для Nginx с PHP-FPM

Когда вы самостоятельно приобретаете свой собственный VPS  для своего сайта на WordPress, вы не получите пользователя для передачи файлов по умолчанию (кроме root). Если вы используете не корневого пользователя вы получите ошибки разрешения. Этот пост покажет вам, как исправить проблемы с разрешениями, если вы хотите добавить пользователя SFTP с Nginx и PHP-FPM.

Я использую Debian 9 для этого урока, поэтому я предполагаю, что вы используете PHP 7.

Добавление SFTP пользователя с необходимыми разрешениями для Nginx с PHP-FPM

  • Создание нового пользователя с правой домашней папке
  • FTP пользователь становится членом группы www-data
  • Настройка Nginx для работы в качестве пользователя FTP
  • PHP-FPM работает как ftpuser в группе www-data
  • Правильные разрешения

Создание SFTP пользователя

Создание нового FTP пользователя, /var/www является домашней папкой для пользователя FTP

sudo useradd -d /var/www/ ftpuser

 

Установите пароль для ftpuser, когда появится запрос на ввод пароля, вы не увидите символы когда вы набираете!

sudo passwd ftpuser

 

Добавьте ftp пользователя к группе www-data

sudo usermod -aG www-data ftpuser

 

Ваш новый пользователь FTP теперь является членом правой группы и имеет правильную домашнюю папку

Изменение пользователя Nginx

Откройте конфигурацию Nginx

sudo nano /etc/nginx/nginx.conf

 

Измените user значение на ftpuser

# andreyex.ru nginx configuration
user ftpuser;
worker_processes auto;
pid /run/nginx.pid;

 

Проверьте правильность синтаксиса Nginx

sudo nginx -t

 

Вы должны получить эти сообщения подтверждения

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

Читать  Использование Google Authenticator для защиты вашего сайта на WordPress

Теперь Nginx будет работать как пользователь FTP.

Изменение пользователя PHP-FPM

Откройте конфигурацию PHP-FPM

sudo nano /etc/php/7.0/fpm/pool.d/www.conf

 

Измените значение user на ftpuser

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = ftpuser
group = www-data

 

Проверка синтаксис PHP-FPM

sudo php-fpm7.0 -t

 

Вы должны увидеть это сообщение об успешном выполнении

[25-Mar-2017 07:05:24] NOTICE: configuration file /etc/php/7.0/fpm/php-fpm.conf test is successful

 

Теперь PHP-FPM настроен для работы в качестве ftpuser.

Исправление разрешений

Рекурсивное изменение прав доступа для ftpuser в домашней папки

sudo chown -R ftpuser:www-data /var/www

 

Установите 775 для папок, чтобы ftpuser и группа www-data могли выполнять

sudo find /var/www/ -type d -exec chmod 775 {} +

 

Набор 664 для файлов, чтобы ftpuser и группа www-data могли записывать файлы

sudo find /var/www/ -type f -exec chmod 664 {} +

 

Изменение разрешений для папки /var/lib/nginx

sudo chown -R ftpuser:www-data /var/lib/nginx

 

Изменение разрешения папки журнала

sudo chown -R ftpuser:www-data /var/log/nginx

 

Изменение прав PHP сессий

sudo chown -R ftpuser:www-data /var/lib/php/sessions

 

Доработка

Теперь услуги просто необходимо перезапустить

sudo service php7.0-fpm restart
sudo service nginx restart

 

Теперь вы должны иметь возможность загружать файлы через SFTP без каких-либо проблем с правами доступа.

Добавление SFTP пользователя с необходимыми разрешениями для Nginx с PHP-FPM

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Саша

sudo chown -R ftpuser:www-data /var/lib/php/sessions
– с таким подходом, после обновления php права нужно будет опять выставлять!
Лучше переопределит путь в /etc/php-fpm.d/www.conf
для следующих:
php_admin_value[error_log]
php_value[session.save_path]
php_value[soap.wsdl_cache_dir]

..или chroot…

Сергей

Спасибо за инструкцию!
Меня волнует безопасность такой настройки, в некоторых руководствах дают права только на папку wp-content или вообще меняют ftp пользователя после обновлений.
Меняете ли вы лично права после обновлений?

P.S.
PhpMyAdmin тоже нужно права дать 755 и 644 если конечно он есть.

Это может быть вам интересно


Рекомендуемое
Введение Composer является популярным инструментом управления зависимостей для PHP, созданный в…

Спасибо!

Теперь редакторы в курсе.