Допустим мы имеем блог http://example.org/ и надо обновлять переодически его плагины и сам движок WordPress.
Беда в том, что поддерживается по дефолту только FTP, а у меня его нет, из возможных вариантов есть только SSH, его и будем внедрять!
Настройка
Отредактируем наш конфиг «wp-config.php»:
/*
FS_METHOD forces the filesystem method. It should only be "direct", "ssh", "ftpext", or "ftpsockets".
Generally, You should only change this if you are experiencing update problems, If you change it, and
it doesnt help change it back/remove it, Under most circumstances, setting it to 'ftpsockets' will
work if the automatically chosen method does not.
See: http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
*/
define('FS_METHOD', 'direct');
define('FTP_BASE', $project_root);
define('FTP_CONTENT_DIR', $project_root . '/wp-content/');
define('FTP_PLUGIN_DIR ', $project_root . '/wp-content/plugins/');
define('FTP_PUBKEY', '/home/example_user/.ssh/id_rsa.pub');
define('FTP_PRIKEY', '/home/example_user/.ssh/id_rsa');
define('FTP_USER', 'example_user');
// define('FTP_PASS', 'password');
define('FTP_HOST', '127.0.0.1:22');
Где «example_user» — имя пользователя из под которого и будет выполняться подключение.
Теперь надо сгенерировать ключи (вместо этого конечно можем использовать «password», но мне не нравится такое решение) и настроим наш .ssh:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod -R 644 .
chmod 755 .
Проверяем соединение с сервера (т.е. сами себя):
Если не соединяется, то надо поправить «/etc/ssh/sshd_config» и расскоментировать или добавить:
Если не установлено расширение ssh2 для PHP, то вы можете скачать его и поставить ручками , либо можно установить из портов, если у вас FreeBSD:
make install clean
Использование
Заходим в админку WordPress, в раздел «Обновления WordPress»->«Обновить автоматически» («http://example.org/wp-admin/update-core.php?action=do-core-upgrade») и обновляем все что нам необходимо.
Если при обновлении у вас отваливается соединение (как было у меня), то увеличивайте таймауты для своего веб-сервера.
Если вы используете Nginx, то установите соответствующий или .
P.S. По мотивам

Оставить комментарий