IT」カテゴリーアーカイブ

ITに関するニュースの感想、または勉強した記録。

Vagrantでよく使うコマンド

Vagrant 1.2.7 で調べてみた。

VMの起動(最初の起動またはhaltしたvmの起動) vagrant up [vm-name]
VMのシャットダウン(shutoff) vagrant halt [vm-name]
VMを削除 vagrant destroy [vm-name]
VMのリスト vagrant status [machine-name]
VMのパッケージ化 vagrant vagrant package [vm-name] [–base name] [–output name.box]
boxのリスト vagrant box list
box追加 vagrant box add [–provider provider]
boxの削除 vagrant box remove

Vagrantを導入する

Virtualboxはインストール済みとする。
インストールはhttp://www.vagrantup.com/のDOWNLOADSをクリックして最新のバージョンをインストールする。記述時点はv1.2.7。

作業用ディレクトリを作る。

$ mkdir getting_started
$ cd getting_started

初期設定を行う。

$ vagrant init

Vagrantfileができる。

起動する仮想マシンをダウンロードする。ここではUbuntu precise64。

$ vagrant box add precise64 http://files.vagrantup.com/precise64.box

起動するため設定ファイルを修正する。
VirtualboxのホストオンリーアダプターでIPアドレス192.168.50.12にする。

$ vi Vagrantfile
config.vm.box = "precise64_20130831"
config.vm.network :private_network, ip: "192.168.50.12"

起動する。

$ vagrant up

起動を確認する。

$ vagrant status
Current machine states:

default                   running (virtualbox)

仮想マシンにログインする。

$ vagrant ssh

アップデートする。

$ sudo apt-get update
$ sudo apt-get upgrade

アップデートでカーネルモジュールに更新があった場合、VirtualBoxの共有フォルダのマウントが失敗するためGuest Additionsをいれなおす。makeがないと失敗するためmakeも入れる。

$ sudo apt-get install make
$ sudo /etc/init.d/vboxadd setup

起動することを確認する。

$ exit
$ vagrant halt
$ vagrant up

更新した仮想マシンをbox化する。

$ vagrant package
$ vagrant box add precise64_yyyymmdd package.box
$ vagrant box list
$ rm package.box
$ vagrant destroy precise64
Are you sure you want to destroy the 'default' VM? [y/N] y
[default] Forcing shutdown of VM...
[default] Destroying VM and associated drives...

Pluginをインストールする。

$ vagrant plugin install sahara
Installing the 'sahara' plugin. This can take a few minutes...
Installed the plugin 'sahara (0.0.15)'!

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'precise64_20130831'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant

sandboxを有効にする

$ vagrant sandbox on
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

最後にcommitかonしたときに戻る

$ vagrant sandbox rollback

状態変更を記録。haltしてからのほうがはやい。

$ vagrant sandbox commit

sandboxを解除。最後にcommitかonに戻る。

$ vagrant sandbox off

cinder-backupを使ってみる

OpenStack GrizzlyではブロックストレージをSwiftにバックアップする機能が追加されました。使ってみたくてマニュアルをあさっても、OpenStack Block Storage Service Administration Guideにあるcinder-backupがたぶんそうだろう、というくらいしかわからなかったので、DevStackで使ってみました。DevStackなので、ストレージドライバはLVMです。

前提として当たり前ですが、Swiftに保存するためSwiftを有効にして、DevStackを起動します。http://devstack.org/localrc.htmlを参考に、Swiftを有効にしてください。
ブロックストレージをSwiftにバックアップする機能はcinder-backupサービスが提供しますので、別ウィンドウでcinder-backupを起動します。

$ /usr/local/bin/cinder-backup
2013-05-11 21:31:59     INFO [cinder.service] Starting 1 workers
2013-05-11 21:31:59     INFO [cinder.service] Started child 20987
2013-05-11 21:31:59    AUDIT [cinder.service] Starting cinder-backup node (version 2013.1.2)
2013-05-11 21:31:59    DEBUG [cinder.utils] Running cmd (subprocess): sudo cinder-rootwrap /etc/cinder/rootwrap.conf vgs --noheadings -o name
2013-05-11 21:31:59     INFO [cinder.backup.manager] Cleaning up incomplete backup operations
2013-05-11 21:31:59    DEBUG [cinder.utils] backend <module 'cinder.db.sqlalchemy.api' from '/opt/stack/cinder/cinder/db/sqlalchemy/api.pyc'>
2013-05-11 21:31:59     INFO [cinder.openstack.common.rpc.common] Connected to AMQP server on localhost:5672
2013-05-11 21:31:59    DEBUG [cinder.service] Creating Consumer connection for Service cinder-backup

それではcinder-backupを使ってみます。

rcファイルを読み込みます。

$ source accrc/demo/demo

1GBのボリュームを作ります。

$ cinder create --display-name test 1
+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2013-05-11T12:33:39.811753      |
| display_description |                 None                 |
|     display_name    |                 test                 |
|          id         | 4bab444e-8b6e-4085-8a38-21057aa99de5 |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

正常に作成されたことを確認します。

$ cinder list
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
|                  ID                  |   Status  | Display Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+
| 4bab444e-8b6e-4085-8a38-21057aa99de5 | available |     test     |  1   |     None    |  false   |             |
+--------------------------------------+-----------+--------------+------+-------------+----------+-------------+

作成したボリュームをバックアップします。

$ cinder backup-create --display-name backup_test 4bab444e-8b6e-4085-8a38-21057aa99de5
$

バックアップを実行しても何も表示されませんが、cinder-backupサービスを起動したウィンドウに大量のログが表示されます。create_backup finished.とあれば成功のようです。

2013-05-11 21:36:48     INFO [cinder.backup.manager] create_backup finished. backup: 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670

バックアップが作成できたことを確認します。

$ cinder backup-list
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
|                  ID                  |              Volume ID               |   Status  |     Name    | Size | Object Count |   Container   |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
| 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 | 4bab444e-8b6e-4085-8a38-21057aa99de5 | available | backup_test |  1   |      22      | volumebackups |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
$ cinder backup-show 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670
+-------------------+--------------------------------------+
|      Property     |                Value                 |
+-------------------+--------------------------------------+
| availability_zone |                 nova                 |
|     container     |            volumebackups             |
|     created_at    |      2013-05-11T12:36:15.000000      |
|    description    |                 None                 |
|    fail_reason    |                 None                 |
|         id        | 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 |
|        name       |             backup_test              |
|    object_count   |                  22                  |
|        size       |                  1                   |
|       status      |              available               |
|     volume_id     | 4bab444e-8b6e-4085-8a38-21057aa99de5 |
+-------------------+--------------------------------------+

Swiftに保存されたことを確認します。

$ swift list
volumebackups
$ swift list volumebackups
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00001
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00002
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00003
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00004
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00005
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00006
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00007
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00008
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00009
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00010
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00011
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00012
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00013
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00014
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00015
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00016
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00017
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00018
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00019
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00020
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670-00021
volume_4bab444e-8b6e-4085-8a38-21057aa99de5/20130511123621/az_nova_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670_metadata

確かに保存されたようです。

リストアします。ヘルプをみてみます。

$ cinder help backup-restore
usage: cinder backup-restore [--volume-id <volume-id>] <backup>

Restore a backup.

Positional arguments:
  <backup>              ID of the backup to restore.

Optional arguments:
  --volume-id <volume-id>
                        Optional ID of the volume to restore to.

ヘルプをみると、リストアするのと、新しくボリュームを作るのと、2つあるようです。
まずは–volume-id なしでやります。

$ cinder backup-restore 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670
$ 

リストアを実行しても何も表示されませんが、cinder-backupサービスを起動したウィンドウにrestore_backup finishedとあれば成功のようです。

2013-05-11 21:54:16     INFO [cinder.backup.manager] restore_backup finished, backup: 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 restored to volume: 1c9df004-4eda-4023-b92f-59017532a9a7

ボリュームが増えたことを確認します。

$ cinder list
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |                     Display Name                    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
| 1c9df004-4eda-4023-b92f-59017532a9a7 | available | restore_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 |  1   |     None    |  false   |             |
| 4bab444e-8b6e-4085-8a38-21057aa99de5 | available |                         test                        |  1   |     None    |  false   |             |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+

もうひとつボリュームが増えたようです。バックアップはあいかわらず存在しています。

$ cinder backup-list
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
|                  ID                  |              Volume ID               |   Status  |     Name    | Size | Object Count |   Container   |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+
| 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 | 4bab444e-8b6e-4085-8a38-21057aa99de5 | available | backup_test |  1   |      22      | volumebackups |
+--------------------------------------+--------------------------------------+-----------+-------------+------+--------------+---------------+

今度は最初に作ったボリュームにリストアしてみます。

$ cinder backup-restore --volume-id 4bab444e-8b6e-4085-8a38-21057aa99de5 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670

やはりリストアを実行しても何も表示されませんが、cinder-backupサービスを起動したウィンドウにrestore_backup finished〜restored to volumeとあれば成功のようです。

2013-05-11 22:02:13     INFO [cinder.backup.manager] restore_backup finished, backup: 1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 restored to volume: 4bab444e-8b6e-4085-8a38-21057aa99de5

ボリュームが正常であることを確認します。

$ cinder list
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
|                  ID                  |   Status  |                     Display Name                    | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+
| 1c9df004-4eda-4023-b92f-59017532a9a7 | available | restore_backup_1df94d11-7e92-4e2f-b4f6-d0b1f87b0670 |  1   |     None    |  false   |             |
| 4bab444e-8b6e-4085-8a38-21057aa99de5 | available |                         test                        |  1   |     None    |  false   |             |
+--------------------------------------+-----------+-----------------------------------------------------+------+-------------+----------+-------------+

ん〜リストアされたかわからないですね。。

RabbitMQにrabbitmq_tracing をインストールする

RabbitMQはプラグインをインストールして、WebUIの管理ツールを使うことができます。Ubuntu 12.04 LTSにインストールしたRabbitMQに、rabbitmq_tracingをインストールする方法を説明します。
まず、Ubuntu 12.04 LTSにRabbitMQをインストールします。なお、RabbitMQの最新バージョンは3.0.2ですが、Ubuntuのパッケージでは、2.7.1になります。

$ sudo apt-get rabbitmq-server

次に、RabbitMQ Managementをインストールします。

$ cd /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin
$ sudo ./rabbitmq-plugins enable rabbitmq_management

RabbitMQを再起動後、http://localhost:55672 にアクセスします。ベーシック認証が求められます。ユーザ名はguest、パスワードはpasswordでログインします。

RabbitMQ Managementがインストールできたことを確認したら、次にrabbitmq_tracingをインストールします。

$ cd /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin
$ sudo ./rabbitmq-plugins enable rabbitmq_tracing

RabbitMQを再起動後、http://localhost:55672 にアクセスし、RabbitMQ Managementの画面を開きます。Virtual Hosts の右側に、Tracingが追加されていることを確認します。

RabbitMQ Management Tracing

Tracingが追加されていなかった場合は、一度サーバを再起動して、以下を実行してrabbitmq_tracingが有効になっていることを確認します。Eが明示的に有効したプラグイン、eが依存するため有効になったプラグインであることを表しています。

$ cd /usr/lib/rabbitmq/lib/rabbitmq_server-2.7.1/sbin
$ sudo ./rabbitmq-plugins list
[e] amqp_client                       0.0.0
[ ] eldap                             0.0.0-git
[ ] erlando                           0.0.0
[e] mochiweb                          1.3-rmq0.0.0-git
[ ] rabbitmq_auth_backend_ldap        0.0.0
[ ] rabbitmq_auth_mechanism_ssl       0.0.0
[ ] rabbitmq_consistent_hash_exchange 0.0.0
[ ] rabbitmq_federation               0.0.0
[ ] rabbitmq_jsonrpc                  0.0.0
[ ] rabbitmq_jsonrpc_channel          0.0.0
[ ] rabbitmq_jsonrpc_channel_examples 0.0.0
[E] rabbitmq_management               0.0.0
[e] rabbitmq_management_agent         0.0.0
[ ] rabbitmq_management_visualiser    0.0.0
[e] rabbitmq_mochiweb                 0.0.0
[ ] rabbitmq_shovel                   0.0.0
[ ] rabbitmq_shovel_management        0.0.0
[ ] rabbitmq_stomp                    0.0.0
[E] rabbitmq_tracing                  0.0.0
[ ] rfc4627_jsonrpc                   0.0.0-git
[e] webmachine                        1.7.0-rmq0.0.0-hg

また、RabbitMQ Managementのユーザにguestがいる必要があります。存在することを確認してください。

vimでPythonを書く環境を整える

Ubuntu 12.04でPythonをviで書く環境を作ります。Pythonを書く環境は作成済みとします。

  • コードのハイライト
  • PEP8に対するコードチェック
  • pyflakesによるソースチェック

ができるようになります。viのプラグインはvundleで行います。

まず、gitとvimをインストールします。

$ sudo apt-get install git
$ sudo apt-get install vim

vundleをインストールします。

$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

.vimrcを編集します。

set nocompatible               " be iMproved
filetype off                   " required!

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" let Vundle manage Vundle
" required!
Bundle 'gmarik/vundle'

" My Bundles here:
Bundle 'The-NERD-tree'
Bundle 'python.vim'

filetype plugin indent on     " required!

viを開き、:BundleInstallを実行します。

~/.vim/ftplugin/python.vimを開き、下記を記述します。

setlocal softtabstop=4
setlocal shiftwidth=4
setlocal textwidth=80
setlocal smarttab
setlocal expandtab
setlocal nosmartindent

flake8のPythonパッケージをインストールします。

pip install flake8

.vimrcにvim-flake8を追加します。

" My Bundles here:
Bundle 'The-NERD-tree'
Bundle 'python.vim'
Bundle 'vim-flake8'

viを開き、:BundleInstallを実行します。

以上でPythonを書く環境が整いました。Pythonのコードを開いて、F7を押すとチェックが走ります。Enterを押すと、該当行へ移動します。コードを修正したら、再度F7を押します。

vimでPythonコードを表示

Pythonを書く環境を作る

Ubuntu 12.04でPythonを書く環境を作ります。Pythonと関連パッケージをインストールしたあと、Pythonパッケージを管理するpipと、仮想環境を作成するvirtualenvをインストールします。

パッケージをインストールします。

$ sudo apt-get  update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential
$ sudo apt-get install libsqlite3-dev
$ sudo apt-get install libreadline6-dev
$ sudo apt-get install libgdbm-dev
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install libbz2-dev
$ sudo apt-get install sqlite3
$ sudo apt-get install tk-dev
$ sudo apt-get install zip

Python関係のパッケージをインストールします。

$ sudo apt-get install python-dev

pipをインストールするため、前提となるdistributeをインストールします。

$ wget http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py

pipをインストールします。

$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python get-pip.py
$ pip --version

virtualenvとvirtualenvwrapperをインストールします。

$ sudo pip install virtualenv
$ virtualenv --help
$ pip freeze
$ pip install virtualenvwrapper

virtualenvを作るディレクトリを設定します。.bashrcに下記を記述し、有効化すると、virtualenvで作られる環境が$HOME/.virtualenvsに作られるようになります。

if [ -f /usr/local/bin/virtualenvwrapper.sh ];then
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
fi

.bashrcを有効化します。

$ source ~/.bashrc

仮想環境を作って、抜けてみます。

$ mkvirtualenv newenv
$ ls -la $HOME/.virtualenvs
$ workon newenv
$ workon
$ deactivate

pipは仮想環境ごとなので、注意します。

WordPressをNginxで動かす

Nginxって?

NginxがApacheに次いでアクティブサイトシェア2位になったそうです。あのIISを抜いて本当ですか?私はまだインストールしたこともなく、リバースプロキシに特化したWebサーバで、ロシア人が作っている、くらいしか知りませんでした。久しぶりに検索すると、公式サイトのトップは相変わらず殺風景でしたが、Wikiはかなり充実していました。なぜこっちがトップではないのか。。

なぜそんなにきてるの?というのはWikiに書いてあって、非同期のイベント駆動アーキテクチャの、C10K問題に対応したWebサーバだそう。そう、クラウド時代のWebサーバ。実際、PHPはPHP-FPM、RubyはUnicornと組み合わせて使うのが常識のようです。

WordPressでも動いているそうなので、Ubuntu 10.04(LTS)でWordPressを動かす手順をなぞってみました。

NginxとPHP-FPMのインストール

UbuntuのNginxを入れると、とっくに1.0が出ているのに0.8.xが入ってしまいます。また、php-fpmも含まれていません。さいわいPPAがあるので、PPAを追加してインストールします。

$ sudo apt-get install python-software-properties
$ sudo apt-get add-apt-repository ppa:nginx/stable
$ sudo apt-get add-apt-repository ppa:nginx/php5
$ sudo apt-get update
$ sudo apt-get install nginx php5-fpm php5-mysql

インストールされたことを確認します。

$ sudo service nginx status
$ sudo service php5-fpm status

php5-fpmでstatusはないので、Usage:が出てくるはずです。とりあえずインストールされたことはわかります。また、ブラウザでhttp://127.0.0.1/を開くとWelcome to nginx!と書いてあるページが出てきます。

Nginxの設定

Nginxの設定ファイルは/etc/nginxの下にあります。PPAで入れただけあって、Apacheと似せてあります。よかったですね。というわけで、sites-available/defaultを編集します。ここでは、/var/www/ディレクトリにWordPressを解凍したと仮定します。

server {

  root /var/www/;
  server_name localhost;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
  }
}

ファイルを保存したら、NginxとPHP-FPMをリロードします。

$ sudo service nginx reload
$ sudo service php5-fpm reload

これで設定はおわりです。Apacheのときと同様に、ブラウザでhttp://127.0.0.1/を開いて、WordPressのインストールを進めてください。

なお、上記の方法でPHPをインストールすると、
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。
とブラウザに出てくるかもしれません。(というか、出た)そのときは、php5-mysqlをインストールしてください。

NISTの定義するクラウドアーキテクチャ(概説)まとめ

NIST Cloud Computing Reference Architecture (NIST SP 500-292)を読んだので、あとあと見返すときにわかりやすいように、メインである2章と3章の日本語まとめを作ることにしました。とりあえず2章ができましたので、SlideShareで公開してみます。

rbenv,ruby-buildをインストール

rbenvはシンプルにRubyのバージョンを切り替えて使うだけのツール。RVMよりできることがすくない!というのがいかにも37signals。といっても

Provide support for per-project Ruby versions.

はRVMでは無理じゃなかったかな?

RVMから移行するため、まずRVMを削除した。RVMの削除は

$ rvm implode

を実行。やたらエラーみたいなのが出まくったけど、終了後に.rvmrcやら、.bash_profileに追加した設定やらを削除して、sourceを実行したら消えたっぽい。sourceを実行したのは、しないとcdでエラーがでた(rvmがcd書き換えてるから?)ので。

インストール手順はgithubにあるInstallationにあるとおり。githubには、インストールあとにRailsで使う使い方が書いてないので、以下に補足する。
インストールしたあとは

$ rbenv global 1.9.2-p290

すればRubyは使える。
bundleするには

$ rbenv exec bundle install

する。rbenv execはgithubに書いてないけど、webで検索すると出てくる。rbenv commands すると確かにあるし。ちなみに検索するとけっこう出てくるset-defaultはglobalに置き換えられている。
rails s するなら

$ rbenv exec bundle exec rails s

を実行する。

Rails 3.0,jQuery,Mongoid,RSpec Rails,mongoid-rspec,I18n generatorsで開発する準備をする

なんかいつも同じパターンで調べてばかりいるので、書いておくことにする。
まず、プロジェクトをオプション付きで作成する。

rails new アプリケーション名 -OJT

Gemfileを編集する。

source 'http://rubygems.org'

gem 'rails', '3.0.10'
gem 'jquery-rails'

gem 'mongoid', '~> 2.2'
gem 'bson_ext', '~> 1.3'

group :test, :development do
  gem 'rspec-rails', '~> 2.6'
  gem 'mongoid-rspec'
  gem 'i18n_generators'
end

RAILS_ROOTでコマンドを実行する。

$ rails g rspec:install
$ rails g mongoid:config
$ rails g jquery:install

spec/spec_helper.rbを編集する。2行コメントアウトして、1行追加する。

RSpec.configure do |config|
  # config.fixture_path = "#{::Rails.root}/spec/fixtures" 
  # config.use_transactional_fixtures = true
  config.include Mongoid::Matchers # 追加
end