あんパン

こしあん以外は認めない

VPSとかに一発でWordPress建てられるやつ作った

github.com

Debian/Ubuntu専用。Ubuntuでは試していない。specもない。

Itamaeで一気にnginxとphp5-fpmとMySQLとWordPressをインストールする。conf類をがっつり置き換えるのでクリーンな環境で実行すると良い。

nodes/node.jsonを望みの感じに書き換えて(パスワードとか絶対に変えてほしい)以下を実行するとよくなりそう。

$ bundle exec install --path vendor/bundle
$ bundle exec itamae ssh -h hostname -j nodes/node.json recipes/init_server.rb
$ bundle exec itamae ssh -h hostname -j nodes/node.json recipes/wordpress.rb

init_server.rbでrootログインの無効化とかパスワードログインの無効化とかしてるので事前に公開鍵をssh-copy-idとか使って転送しておくと吉。

以下ファイルの構成。

├── Gemfile
├── Gemfile.lock
├── README.md
├── Vagrantfile
├── files (転送するファイル類)
│   ├── nginx
│   │   └── nginx.conf (/etc/nginx/nginx.confを置き換える)
│   └── php
│       ├── ssh2.ini (WordPressのアップデートいい感じにできるようにする)
│       └── www.conf
├── nodes (設定用ファイル)
│   └── node.json (MySQLのパスワードとかサーバのFQDNとかここで指定しておく)
├── recipes (レシピ群)
│   ├── init_server.rb (ファイアウォール入れたりするやつ)
│   ├── mysql.rb (MySQLインストールするやつ)
│   ├── nginx.rb (nginxインストールするやつ)
│   ├── php5-fpm.rb (phpインストールするやつ)
│   └── wordpress.rb (これ1つでmysql, nginx, php5-fpmもインストールする)
└── templates
    ├── nginx
    │   ├── global
    │   │   ├── restrictions.conf.erb (robots.txtはaccess log書かないみたいな指定)
    │   │   └── wordpress.conf.erb (WordPress用のnginxコンフィグ本体)
    │   └── server.conf.erb (WordPress用nginxコンフィグ、上2つを読み込んでる)
    └── wordpress
        └── wp-config.php.erb (WordPressのコンフィグテンプレート)