Подделка под старое убивает старое (Д.С. Лихачев).

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

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
26 марта 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

 

Теперь 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.

Просмотров: 152

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

  1. Саша:

    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…

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

Войти с помощью: 

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

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close