LoginSignup
1
1

More than 1 year has passed since last update.

安全なWordpressの自動更新スクリプト

Posted at

Wordpressには自動更新機能がありますが

Wordpressに搭載されている自動更新機能にはちょっと不安がございます。
ちゃんと自動更新はできるものの、自動バックアップができないところです。

何かのアップデートによるトラブルがあったら、場合によっては致命的です。

まずはWordpress自身の自動更新をやめる

以下を追記します。

wp-config.php
define( 'AUTOMATIC_UPDATER_DISABLED', true );

wpコマンドをインストールする

こちらを参照してインストールします。

なお、phpにphar が対応している必要があります。

wp-cli-install.sh
#!/bin/sh
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

以下のファイルを作成します。

wp-autoupdate.sh
#!/bin/sh

PHP="/usr/bin/php7.4"
WP="$PHP /usr/bin/wp"
DIR="/home/(username)/backup/wordpress-file"
DOCROOT=/home/(username)/public_html
export HTTP_HOST="ドメイン"
# https:// で動いてない場合は以下をコメントアウト
export HTTPS="on"

DBNAME=データベースの名前
USERNAME=データベースのユーザー名
PASSWORD=データベースのパスワード
HOST=データベースのサーバー

mkdir -p $DIR
FNAME="$DIR/$HTTP_HOST-`date +%Y%m%d`.tar"
SQLNAME="$DIR/$HTTP_HOST-`date +%Y%m%d`.sql"

cd $DOCROOT

tar cvf $FNAME *.php wp-admin wp-includes wp-content/languages wp-content/plugin
s wp-content/themes >/dev/null 2>/dev/null
rm -rf $FNAME.xz
xz -z $FNAME

mysqldump -u $USERNAME -p$PASSWORD -h $HOST --no-tablespaces $DBNAME > $SQLNAME
rm -rf $SQLNAME.xz
xz -z $SQLNAME


$WP core update
$WP plugin update --all
$WP core language update

crontabに登録します

crontab.txt
0 4 30 * * /bin/bash /home/username/bin/wp-autoupdate.sh
``




1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1