Как обновить сайт на WordPress через SSH

В одной из наших статей мы уже упоминали о том, что можно установить WordPress с помощью консоли. Сегодня мы покажем вам как обновить WordPress с помощью этой же командной строки. Несмотря на то, что вы всегда можете обновить WordPress одним кликом из админки, консольный способ является более безопасным, так как он шифрует все передаваемые данные. Существует два способа осуществить задуманное: Можно использовать SSH клиент или же включить в WordPress режим SSH Transfers для всех типов обновлений, будь то обновление ядра, или же обновление плагина/темы/установок. В статье мы опишем оба способа.

Способ 1: Обновление с помощью SSH клиента

Обратите внимание: Всегда стоит убедиться в том, что у вас полная резервная копия всего вашего WordPress, в том числе файлов и базы данных, перед обновлением.

Все, команды, указанные ниже, выполняются, подразумевая, что вы находитесь в директории блога (blogdemo в нашем примере). Прежде всего скачиваем последнюю версию WordPress и распаковываем её.

wget http://wordpress.org/latest.tar.gz
tar xfvz latest.tar.gz

Теперь нужно удалить старые директории wp-admin и wp-includes.

rm -rf ./wp-admin
rm -rf ./wp-includes

Далее переходим в папку wordpress, куда мы распаковали последнюю версию файлов WordPress и перемещаем их обратно в папку blogdemo.

cd wordpress
mv * ../blogdemo/

Вы увидите запрос на перезапись определенных файлов и директорий внутри wp-content. Просто нажимайте y и продолжайте процесс. Теперь нужно выйти из папки wordpress и удалить эту директорию, а также файл latest.tar.gz. С ними мы уже разобрались, и нет необходимости держать их на сервере.

cd ../
rm -rf ./wordpress/
rm -f latest.tar.gz

Последним шагом будет вход в административную панель сайта и запуск обновления базы данных.

Способ 2: Активируем SSH2 для установки/обновления WordPress

Кажется, мы уже говорили… Всегда стоит убедиться в том, что у вас полная резервная копия всего вашего WordPress, в том числе файлов и базы данных, перед обновлением.

В этом варианте мы активируем в WordPress SSH для обновления и установки плагинов и тем. Для начала вам необходимо проверить на вашем хостинге, установлено ли на нем расширение SSH2 для PHP или нет. Для того, чтобы проверить это, запустите следующую команду:

var_dump( extension_loaded( 'ssh2' ) );

Если эта команда вернет значение true, то значит оно установлено, иначе — нет. Если ваш хостинг не предлагает его, попросите установить модуль для вас, а если у вас в наличии VPS/dedicated, то вы можете сделать это самостоятельно.

Первым делом вам необходимо сгенерировать рабочий набор публичных и приватных ключей, которые будут использоваться для аутентификации пользователя. Для этого выполните следующую команду в вашем SSH клиенте:

ssh-keygen

Вас попросят указать имя файла. Можете оставить его пустым или ввести любое на ваше усмотрение. Если вы оставите его пустым, имена файлов будут такими id_rsa.pub и id_rsa. Также вы можете установить фразу (passphrase) для дополнительной защиты, или же просто не указывать ее.

Настало время добавить ключи, необходимые в файле authorized_keys. В нашем случае, ключи SSH были сгенерированы и хранятся в папке .ssh корневой директории.

cd .ssh
cp id_rsa.pub authorized_keys

Теперь изменим доступы, чтобы WordPress мог воспользоваться этими ключами.

cd ../
chmod 755 .ssh
chmod 644 .ssh/*

Возможно вам понадобиться изменить владельца директории, если PHP выполняется от другого пользователя.

Теперь, когда у нас есть настроенный и рабочий SSH2, вы должны увидеть следующий экран при выполнении установки/обновления плагинов или тем.

ssh-connection[1]

Здесь user — это имя пользователя SSH, с которым вы входили и выполняли все команды, а password — та фраза(passphrase), которую вас просили установить в процессе выполнения команды ssh-keygen. Если же вы не устанавливали фразу, то оставьте поле пароля пустым. Для того, чтобы постоянно не вводить эти данные, добавьте следующий код в файл wp-config.php:

define('FTP_PUBKEY','/home/user/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/user/.ssh/id_rsa');
define('FTP_USER','user');
define('FTP_PASS','passphrase');
define('FTP_HOST','domain.com');

С этого момента WordPress будет производить все файловые операции, используя SSH.

Полезны ссылки

По всем вопросам и отзывам просьба писать в комментарии ниже.

Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top