Допустим мы имеем блог http://example.org/ и надо обновлять переодически его плагины и сам движок Wordpress.
Беда в том, что поддерживается по дефолту только FTP, а у меня его нет, из возможных вариантов есть только SSH, его и будем внедрять!
Настройка
Отредактируем наш конфиг "wp-config.php":
$project_root = dirname(__file__);
/*
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:
Если не соединяется, то надо поправить "/etc/ssh/sshd_config" и расскоментировать или добавить:
ListenAddress 127.0.0.1
Если не установлено расширение ssh2 для PHP, то вы можете скачать его и поставить ручками http://pecl.php.net/package/ssh2, либо можно установить из портов, если у вас FreeBSD:
cd /usr/ports/security/pecl-ssh2
make install clean
Использование
Заходим в админку Wordpress, в раздел "Обновления Wordpress"->"Обновить автоматически" ("http://example.org/wp-admin/update-core.php?action=do-core-upgrade") и обновляем все что нам необходимо.
Если при обновлении у вас отваливается соединение (как было у меня), то увеличивайте таймауты для своего веб-сервера.
Если вы используете Nginx, то установите соответствующий proxy_read_timeout или fastcgi_read_timeout.
Комментарии
Оставьте свой комментарий