ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

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

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

Создание 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

Exit mobile version