カテゴリー
diary

WordPress auto update with SSH / Selinux

サーバを移行したらwordpressの自動アップデートができなくなったので調査

まずphpのssh2 extensionが入っていないのでインストール

[sourcecode language=’plain’]
$ sudo yum install libssh2-devel
$ sudo pecl install -f ssh2
$ sudo vi /etc/php.d/php.ini
extension=ssh2.so
$ sudo /etc/init.d/httpd restart
[/sourcecode]

次にselinuxの設定の調整

wordpressの自動アップデートに使うためのssh関連の秘密鍵・公開鍵をchcon。言うまでもないが、こちらは普段自分が使う秘密鍵と公開鍵とは全く違うものを用意している

[sourcecode language=’plain’]
$ sudo chcon -R user_u:object_r:sshd_key_t:s0 /foo/bar/xxx/.ssh
[/sourcecode]

これらのファイルのselinux contextに対してapache (httpd)が必要な操作を行えるように権限の追加

[sourcecode language=’plain’]
# vi mywordpress.te
module mywordpress 1.0;

require {
type httpd_t;
type sshd_key_t;
class dir { search };
class file { read open getattr };
}

#============= httpd_t ==============
allow httpd_t sshd_key_t:dir search;
allow httpd_t sshd_key_t:file { read open getattr };

# make -f /usr/share/selinux/devel/Makefile
# semodule -i mywordpress.pp
[/sourcecode]

後にwordpressのダッシュボードからめでたく自動アップデート

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です