普段はVPSを使っていますが、さくらインターネットのレンタルサーバーにWordPressを入れる機会があったのでその時のメモを。主にデータベース、コンテンツのバックアップアップについて書いてあります。
レンタルサーバーにWordPressを入れ独自ドメインの設定をする
googleさんに聞いて最初の方に出てくる奴を参考に入れました。
さくらインターネットのクイックインストールで独自ドメインのトップディレクトリからWordPressを使用する方法
さくらのレンタルサーバ上のWordPressに独自ドメインからアクセスできるようにするための設定メモ
が、この方法だと、画像のアドレスなどがsakura.ne.jpになってしまったので、昔の情報は根絶しよう考え、クイックインストール→独自ドメインの設定後、さくらに付属のphpmyadminからdbをdrop table付きでエクスポート→hoge.sakura.ne.jpってなっているのを全部独自ドメインに書き換え→再度インポートしました。でもまぁきっとこんな事をしなくても良い方法はあるはず。あークイックインストール使わなければ良かったのかとコレを書きながら思いました。
VPSと比較してレンタルサーバーでうーん/意外と使えるなぁと思ったところ
×:ドメインを他社で取ると独自ドメインのWeb + google apps(gmail)がちょっと難しい
独自ドメインは既に他所で取得されていたので、そちらのDNSレコードで、
Aレコード www → さくらインターネットのWEBサーバのIP MXレコード gmail
としたかったのですが、WEBサーバーのIPアドレスが分からない。
いや、正確には、さくらのサーバーコントロールパネルの「サーバ情報とパスワード」→「サーバー情報」に出てくるんやけど、このIPがずーーと一緒かどうかは保証されない(と思う)。突如Webにつながらないって事は避けたかったので、結局メールはさくらで受ける事にしました。
これはさくらでドメインを取っておけば、良い感じによろしくやってくれたのかなぁ。
×:チューニングしたいなぁ
wordpressで5つくらいの記事を開いて、一気に保存とかしてると、エラーとかでよる。こんなんで大丈夫かなぁとも思うが、色んな意味で手出しが出来ないのがもどかしかった。ページの読み込みにキャッシュが使えず、見る人によってコンテンツを全部変えたい… とかだと、レンタルサーバーは嫌だなぁ。
○:シェルログインも出来るし、scpやsftpとかもちゃんと使える
今の時代はそんなのは当たり前なのかもしれませんが、
さくらのレンタルサーバ スタンダード
にも書いてある通り、スタンダード以上であればシェルログインも出来るし、scpやsftpとかもちゃんと使える。cron書いたり、何やかやするのにいちいちWebのコントロールパネルってのはちょっとしんどいもんねぇ。
○:クイック○○
メールの設定とか、クイックインストールとか… 細かいことしないのであれば楽ちん。
○:サーバーのお守りをしなくて良い
緊急度の高い修正を… ムムムッとしなくても良いのは精神的に楽ちん。
インストール後の作業
WordPress自体は色んなページに情報が書いてあるので、バックアップとディスク容量チェックについて。
WordPressのバックアップをプラグインを使わずシェルスクリプトで行う
データベース(MySQL)のバックアップ
WordPressのデータベースバックアップを行うプラグインはどうやらいくつもあるっぽく、そう言うのを使っても良いと思うのですが、個人的にはmysqldumpで一本抜き(フルバックアップ)&Webからはアクセスできないところに隠しておくが好きなので、日毎、週毎、月毎の世代でDBのバックアップを残してくれるautomysqlbackupを使用。
で、入れようとしたのですが、md5sumでこける。
$ ./install.sh automysqlbackup ... exists and is readable ... md5sum failed :( $ md5sum --check -bash: md5sum: command not found
うーん。
検索するとBSDではmd5sum –checkの代わりにmd5 -rを使えと書いてあったので、書き換えたら入りました(でもまぁただのシェルスクリプトなので最初から手で配置すれば良かった)。automysqlbackupの設定方法は省略。
コンテンツのバックアップ
WordPressのコンテンツのバックアップってどう言う方法が一般的なのかは分かりませんが、容量さえ気にしなければ、(DBとセットで)フルバックアップしておけば、きちんと戻って安心安心ということで、下記のスクリプトを動かすことに。
#!/bin/sh WEBDIR=/home/username/www BACKUPDIR=/home/username/backup/www FILENAME=wordpress_backup if [ -f ${BACKUPDIR}/${FILENAME}_1.tar.gz ]; then mv -f ${BACKUPDIR}/${FILENAME}_1.tar.gz ${BACKUPDIR}/${FILENAME}_2.tar.gz fi if [ -f ${BACKUPDIR}/${FILENAME}.tar.gz ]; then mv -f ${BACKUPDIR}/${FILENAME}.tar.gz ${BACKUPDIR}/${FILENAME}_1.tar.gz fi tar czf ${BACKUPDIR}/${FILENAME}.tar.gz ${WEBDIR}
とりあえず、3世代(3日分)のバックアップをとることにしましたが1週間に1度とかの方がいいかなぁ…
最終的にはautomysqlbackupと併せて、こんな感じに。
#!/bin/sh # database /home/username/tools/mysql/automysqlbackup /home/username/tools/mysql/automysqlbackup.conf # contents WEBDIR=/home/username/www BACKUPDIR=/home/username/backup/www FILENAME=wordpress_backup if [ -f ${BACKUPDIR}/${FILENAME}_1.tar.gz ]; then mv -f ${BACKUPDIR}/${FILENAME}_1.tar.gz ${BACKUPDIR}/${FILENAME}_2.tar.gz fi if [ -f ${BACKUPDIR}/${FILENAME}.tar.gz ]; then mv -f ${BACKUPDIR}/${FILENAME}.tar.gz ${BACKUPDIR}/${FILENAME}_1.tar.gz fi tar czf ${BACKUPDIR}/${FILENAME}.tar.gz ${WEBDIR} # naisyo chown -R username:users /home/username/backup/* find /home/username/backup/* -type f -exec chmod 400 {} \; find /home/username/backup/* -type d -exec chmod 700 {} \;
ディスク使用容量のチェック
ただ、これだけだと、フルバックアップだらけなのでディスクが少なくなってきたときに(それに気づかないのが)怖いなぁと思い、下記のスクリプトも作りました。ディスク使用量が50%超えたらメールします。
#/bin/sh DISK_USE=`quota | grep home | awk '{print $2/$3*100}'` DISK_CHECK=`echo "$DISK_USE > 50" | bc` if [ $DISK_CHECK -eq 1 ] ;then echo "username quota over" | mail -s "username quota over" mail@example.com fi
これをcronで1日一度まわす。SHELLとPATHが無いとコケます。
$ crontab -l SHELL=/usr/local/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin MAILTO="example@example.com" 0 4 * * * /home/username/tools/backup.sh >/dev/null 0 5 * * * /home/username/tools/disk_check.sh >/dev/null
最後に
レンタルサーバーはサーバー自体のお守りをしなくて良いと言うのは楽やけど、個人的には細かいところも見れるVPSが好みだなぁと。
コメント