y2blog » WordPressのアップデートをSSHで行う

2

21

2016

WordPressのアップデートをSSHで行う

WordPressのアップデート機能をちょっとだけセキュアにしてみる


Wordpress Update Dialog
WordPressのアップデート管理画面

WordPressのアップデート機能は便利なのだが、どのような環境でもこの機能が使える訳ではない.レンタルサーバを借りてWordpressを動かしている人達の大部分は、何もしなくてもWordpressの管理画面を通じて簡単にアップデートできているのではないかと思う.さくらインターネットなどのレンタルサーバでは、個々のユーザアカウントの下でApacheなどのHTTPサーバが動いているので、Wordpressコンテンツが置かれている各種ディレクトリ配下をHTTP(PHP)側から書き換えることが可能だ.


自分でOSをインストールしてHTTPサーバを立ち上げた場合には、一般のユーザ権限でWordpress配下の各種ディレクトリやファイルを置くことが多いだろう.HTTPのプロセスは”apache” などのアカウントで起動されているので、そのままではHTTP(PHP)側からこれらのWordpress配下の各種ディレクトリやファイルを書き換えることはできない.


このような状況で、Wordpressの管理画面を通じてアップデートを行うと、次の様なFTPによるアップデート設定画面が現れる.Wordpress配下の各種ディレクトリやファイルをFTPを通じて更新するように設定を促されるという訳だ.当然ながら、このFTPによる更新を行うには、Wordpressを動かしている同じサーバ上でFTPサーバが動いており、Wordpress配下の各種ディレクトリやファイルのオーナーアカウントで、wordpress.orgのFTPサーバから各種ファイルをダウンロートできなければならない.


FTP Request Dialog
FTPによるアップデートが要求される


セキュリティー的な面から、このFTPによるファイル転送機能をWordpressを動かしているサーバ上で動かすのは大問題だ.一応FTPSという暗号化されたFTPセッションも使えるようだが、FTPはやはり使いたくない.FTPSの設定をWordpressのサイトで調べていたら、SSHによるアップグレードに関する記述があったので、SSH接続によるWordpressのアップデートを行ってみた.


  Editing wp-config.php – Enabling SSH Upgrade Access

このドキュメントの説明によると、SSH2によるアップグレードを行う方法は2つ有り、一つは “SSH SFTP Updater Support” というプラグインを使う方法で、もう一つが PHPにSSH2アクセス機能を追加する “pecl SSH2 extension” を導入するという方法だ.勿論簡単なのは前者のプラグインを使う方法なのだが、今回はとりあえず後者の”pecl SSH2 extension” を導入して試してみた.



1. “php-pear” を yum を使ってインストールする

#yum -y install php-pear


2. pecl SSH2 extensionをインストールする

#pecl install ssh2


3. SSH2 extensionを強制させる(下記の設定を “wp-config.php” 内に記述する)

define( ‘FS_METHOD’, ‘ssh2’ );



このドキュメントには、”pecl SSH2 extension”の導入方法については上記の簡単な記述しかされていないが、ユーザの環境によってはそう簡単にはインストールできないかもしれない.


SSH Update Dialog
PHPに”pecl SSH2 extension”を組み込むと、SSHによるアップデート機能が追加される


この方法であれば、SSHによるコネクションが張れれば良いので、FTPを使わなくて済む.一般的にはSSHのポート番号としては22番を使う事が多いが、別な番号を使いセキュリティー強化を謀るのが良いだろう.


Local Search

Calendar

July 2018
S M T W T F S
« Jun    
1234567
891011121314
15161718192021
22232425262728
293031  
  • Blogroll

  • Meta