Выскочила проблема, причем на многих блогах у меня, а инфы как обычно нет. Собственно открываем файл wp-admin/includes/class-wp-filesystem-ftpext.php, строки 329-338

Заменить

$file_list = @ftp_nlist( $this->link, '-a ' . $path );

на

$file_list = @ftp_nlist( $this->link, $path );

После этого обновление происходит, разве что не выключается режим обслуживания. После обновления просто удаляем файл .maintaince в корне сайта.

В принципе все очень просто:

apt-get install pure-ftpd

Затем просто добавляем пользователя командой

adduser

Готово 🙂 вечно забываю, какой сервер легче поставить 🙂

Сразу на будущее поставим, что бы не запускался отдельный процесс на каждого пользователя. В /etc/shells добавим в конец /usr/sbin/nologin. После редактирования файл будет выглядеть следующим образом:

# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/bin/tcsh
/usr/bin/tcsh
/usr/sbin/nologin

Пользователя теперь можно создавать с ключем -s /usr/sbin/nologin

Собственно понадобилось реализовать схему — сайт в одной стране, база в другой. Но по дефолту в MySQL выключена возможность коннекта со сторонних IP.
Для начала выполняем

mysql -u user -p

Зайдя в мускул выбираем нужную баз

use mysql

Смотрим сколько пользователей и какие

SELECT Host,User,Password FROM user;

+————+———+——————————————-+
| Host | User | Password |
+————+———+——————————————-+
| localhost | root | *425678901585ACDB80C72475B1E70451ADB1263 |
+————+———+——————————————-+

Видим только одного пользователя — root, доступ которому разрешен с localhost’a.

UPDATE user SET Host='8.8.8.8' WHERE User='root' AND Host='localhost';

Тем самым разрешаем подключение к базе пользователю root с ip 8.8.8.8. Что бы разрешить подключени со всех IP ставим знак %.

Применяем изменения:

FLUSH PRIVILEGES;

Ошибки Access denied for user ‘user’@’ прекратились и я увидел новую:

Lost connection to MySQL server at 'reading initial communication packet', system error: 111

Лечить просто. В /etc/mysql/my.cnf

bind-address = 127.0.0.1

указываем свой реальный внешний IP адрес.

Для этого в файле /etc/apache2/apache.conf ищем строчки и приводим к следующему виду

StartServers 1
MinSpareServers 1
MaxSpareServers 2
MaxClients 50
MaxRequestsPerChild 4000