目的:オンラインのWordpressがクラックされた時に速やかに復旧したい
副目的:何度でも気軽に環境再構築したい
Vagrantをインストール。現時点ではv.1.7.2
VirtualBoxをインストール。現時点ではv4.3.6
$ sudo vagrant plugin install sahara
saharaのインストールでエラーが出たのでこちらにしたがって
$ xcode-select --install $ sudo xcodebuild -license $ sudo vagrant plugin install sahara
$ vagrant box add --name CentOS-6.6-x86_64-minimal-ja-20150531 ~/centos66-20150531.box $ cd ~/SaitoToshiki.com $ mkdir centos66 $ cd centos66/ $ vagrant init $ vi Vagrantfile
作成されたVagrantfileの内容を下記に書き変える
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure(2) do |config| config.vm.box = "CentOS-6.6-x86_64-minimal-ja-20150531" config.vm.network "private_network", ip: "192.168.33.10" config.vm.provision "shell", inline: <<-SHELL yum -y update --enablerepo=rpmforge,epel,remi,remi-php55 yum -y install --enablerepo=remi,remi-php55 httpd mysql-server php php-mysql php-mbstring php-gd phpMyAdmin gd-last ImageMagick-last cd /var/www/html curl -LO http://ja.wordpress.org/latest-ja.tar.gz tar xvzf latest-ja.tar.gz cd /var/www/html/wordpress/ cp wp-config-sample.php wp-config.php chown -R apache:apache /var/www/html/wordpress chkconfig mysqld on service mysqld start SHELL end
実際には作ってあったファイルをコピー
$ cp ../centos66/Vagrantfile . $ vagrant up
一気にインストールされて感動。
ここでsnapshotを取り、設定を開始
$ vagrant sandbox on $ vagrant ssh [vagrant@centos66 ~]$ mysql_secure_installation
最初のパスワード入力は不要。途中rootのパスワードだけ設定して、後はひたすらEnterをおす。パスワードを”123ABC”としたとすると下記の様にデータベースを作成し、suでスーパーユーザーになって設定ファイルを作る。
[vagrant@centos66 ~]$ mysql -u root -p123ABC mysql> create database wordpress; mysql> grant all privileges on wordpress.* to wordpress@localhost identified by 'wordpress'; mysql> quit; [vagrant@centos66 ~]$ su - [root@centos66 ~]# vi /var/www/html/wordpress/wp-config.php [root@centos66 ~]# vi /etc/httpd/conf.d/wordpress.conf [root@centos66 ~]# vi /etc/httpd/conf.d/phpMyAdmin.conf
wp-config.phpのID/PWは全て’wordpress’に。
wordpress.confは下記の内容をペースト
<Directory /var/www/html/wordpress> AllowOverride ALL </Directory>
phpMyAdmin.confは最初から2つのDeny from Allをコメントアウト
[root@centos66 ~]# chkconfig httpd on [root@centos66 ~]# service httpd start
http://192.168.33.10/wordpress/
にアクセスするとインストーラが起動、指示通り入力したらインストール完了
http://192.168.33.10/phpmyadmin/
root,123ABCでログイン
全てのテーブルを選んで削除
インポート を選んでwordpressをphpMyAdminよりバックアップしてあったDBファイル、xxx.sql.zip(463kB)を選んでインポート
wp_options > siteurlとhome を’http://192.168.33.10/wordpress’に変更
Appearances > ThemesのテーマをTwenty Fourteenにする
これで昔のエントリーを見ることが出来るようになる
幅がやけに狭いので子テーマ(style.css, functions.php)を作成して横幅いっぱいに使うようにする。
[root@centos66 ~]# cd /var/www/html/wordpress/wp-content/themes/ [root@centos66 themes]# mkdir twentyfourteen-child [root@centos66 twentyfourteen-child]# vi style.css [root@centos66 twentyfourteen-child]# vi functions.php
style.css
/* Theme Name: Twenty Fourteen Child Description: Make use of full width page templates in the Twenty Fourteen theme Author: Toshiki I. Saito Author URI: http://www.saitotoshiki.com Template: twentyfourteen Version: 1.0 */ .site-content .entry-header, .site-content .entry-content, .site-content .entry-summary, .site-content .entry-meta, .page-content { margin: 0 auto; max-width: 100%; } .full-width .site-content .page .entry-header, .full-width .site-content .page .entry-content, .full-width .site-content .page .entry-summary, .full-width .site-content .page .entry-meta { max-width: 100%; } .post-navigation, .image-navigation { margin: 24px auto 48px; max-width: 100%; padding: 0 10px; } .archive-header, .page-header { margin: 24px auto; max-width: 100%; } .contributor-info { margin: 0 auto; max-width: 100%; } .comments-area { margin: 48px auto; max-width: 100%; padding: 0 10px; } /*This section sets page to 100% width */ .site { background-color: #fff; max-width: 100%; position: relative; } /*This section sets page header to 100% width */ .site-header { background-color: #000; max-width: 100%; position: relative; width: 100%; z-index: 4; }
functions.php
<?php add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); }
テーマからTwenty Fourteen Childを選んで終了!