Vagrantでwordpress

目的:オンラインの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を選んで終了!

コメントを残す

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