※弊社記事はたぶんにPRが含まれますので
話半分で受け取ってください。

WordPress on CentOS – SSHで自動アップデートするには

 CentOS on Slicehostシリーズでは、基本的な設定をするところまでやりましたが、WordPress on CentOSでは、WordPressを動作させるために必要な環境を整えていきます。
 先回までで一通り設定が完了しましたが、今回は自動アップデートをSSHで行う方法をまとめておきたいと思います。

 ここでは、調べて分かった事を書いているだけで、実際にはやっていません。なので、書いてあるとおりにやっても動作しなかったりするかもしれませんが、その点、ご了承下さい。なにせ、yumでインストール出来ないものはいじらない主義なもので。。

PECL::ssh2を利用出来るようにする

 WordPressでSSHを利用するにはPECL::ssh2が必要で、PECL::ssh2をインストールするにはphp-develとlibssh2が必要で、libssh2をインストールするにはopenssl-develが必要です。というわけで、これらをインストールしていきます。

 まずはopenssl-develとphp-devel。

yum -y install openssl-devel php-devel

 お次はlibss2。

wget http://www.libssh2.org/download/libssh2-1.1.tar.gz
mv libssh2-1.1.tar.gz /usr/local/src/libssh2-1.1.tar.gz
cd /usr/local/src/
tar zxvf libssh2-1.1.tar.gz
cd libssh2-1.1.tar.gz
./configure
make
make install

 そして、PECL::ssh2。

# pecl install channel://pecl.php.net/ssh2-0.11.0

 ssh2を有効にするためにssh2.soを追加します。

cd /etc/php.d
echo "extension=ssh2.so" > ssh2.ini
/etc/init.d/httpd restart

 ここまででssh2の設定が完了、したハズ。

カギの生成

 まずは公開/秘密鍵を生成します。

ssh-keygen

 passphraseを入力するところが出てきますが、ここでは何も入力せずにエンターキーを叩いて先に進めます。(パスフレーズが入っていると上手く認証が出来ない場合があるらしいです。)

Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Created directory ‘/home/user1/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx demo@example.com

 つづいて、生成した公開鍵をauthorized_keysに登録します。

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

 最後に、Apacheが鍵を参照出来るようにファイルのパーミッションを変更します。

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

 これで完了。あとは(FTPの場合と同様に)アップデートの時に必要な情報をフォームに入力すればOK。(なハズ。)

wordpress-ssh-connection-information
WordPress Tutorial: Using SSH to Install/Upgrade – Fireside Media Dev

 ここで「hostname」にはサーバのFQDNとSSHのポート番号を、「Username」にはユーザ名を、「Public Key」には「/home/(ユーザ名)/.ssh/id_rsa.pub」を、「Private Key」は「/home/(ユーザ名)/.ssh/id_rsa」を、それぞれ入力します。

鍵をホームディレクトリ以外に置く

 「Public Key」と「Private Key」はサーバがアクセス出来る場所にファイルがなければいけませんが、ホームディレクトリだと他のファイルとかもあるし、どうも都合が悪い、と言う場合は他の場所に置いても大丈夫なようです。

/var/www/ssh/(username).id_rsa
/var/www/ssh/(username).id_rsa.pub

 全然検証してないので、なんかすごくへんだったらごめーんねっ。(てへ。)

参考

標準テキスト CentOS 8 構築・運用・管理パーフェクトガイド [CentOS Stream対応]

  • メーカー:SBクリエイティブ
  • カテゴリ:Kindle版
  • 発売日:2021/07/21

関連する記事