Статьи

Совет: обновите свой сайт WordPress через SSH

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


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

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

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

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

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

Теперь перейдите в каталог WordPress, где мы извлекли последние файлы WordPress и переместите их обратно в каталог blogdemo .

1
2
cd wordpress
mv * ../blogdemo/

Вам будет предложено перезаписать определенные файлы и некоторые каталоги, а также внутри wp-контента . Просто нажмите y и продолжайте. Теперь выйдите из каталога WordPress и удалите каталог и файл latest.tar.gz . Мы закончили с ними сейчас, и нам не нужно, чтобы они занимали место.

1
2
3
cd ../
rm -rf ./wordpress/
rm -f latest.tar.gz

На последнем этапе просто войдите в свою панель и запустите обновление базы данных.


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

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

1
var_dump( extension_loaded( ‘ssh2’ ) );

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

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

1
ssh-keygen

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

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

1
2
cd .ssh
cp id_rsa.pub authorized_keys

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

1
2
3
cd ../
chmod 755 .ssh
chmod 644 .ssh/*

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

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

Здесь user — это имя пользователя SSH, которое вы использовали для входа в систему и выполнения всех команд, а пароль — фраза-пароль, которую вас попросили установить во время команды ssh-keygen . Если вы не выбрали пароль, оставьте поле пароля пустым. Чтобы не вводить эти данные повторно, введите следующий код в ваш wp-config.php

1
2
3
4
5
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.