LoginSignup
6
3

More than 5 years have passed since last update.

Nginx+PHP70(fpm)+MySQL56+Wordpressするitamae

Posted at

この文章はなに

itamaeでWordpressを1台のサーバに複数インストールしたかった人生だった。

結論

作って公開したので使えると思う。
https://github.com/foursue/xxv-server
ライセンスはMIT

使い方

Rubyのバージョンをよく変えるのでREADMEでの実行環境はdockerを前提にしているが、ローカルにrubyがいるなら普通に実行できるはず。

docker run --rm -v $HOME/projects/xxv-server:/usr/src/app -w /usr/src/app ruby:2 sh -c 'bundle install --path vendor/bundle && bundle exec itamae ssh entry.rb --host {{アドレス}} -u root -i secure/{{PEMファイル}} -y nodes/{{nodeファイル}} -n'

普通にbundle叩くなら、下記のような感じ。

bundle install --path vendor/bundle && bundle exec itamae ssh entry.rb --host {{アドレス}} -u root -i secure/{{PEMファイル}} -y nodes/{{nodeファイル}} -n

解説

Nginx

cookbooks/nginx/default.rb

インストールしてるだけです。

php70

cookbooks/php7-fpm/default.rb

インストールしつつ、/etc/php-fpm.d/www.confのuser,groupをapacheからnginxに変更してます。

mysql56

cookbooks/mysql/default.rb

インストールしてるだけです。

Wordpress

cookbooks/wordpress/default.rb

ドメイン1つごとにWordpressのダウンロード・解凍・設置、DBの作成と設定、wp-config.phpの作成をしてます。
下記を参考にしました。
https://github.com/masawada/itamae-wordpress

nodeファイル

下記サンプルのようなnodeファイルを用意してください。
site1.example.com,site2.example.comを設定してます。サンプルでは/usr/share/nginxを利用してますが、他のディレクトリを利用する場合はcookbooks/wordpress/default.rbの該当箇所を見てみてください。

nodes/sample.yml
roles:
  - wordpress
multi_wordpress:
  - server_name: site1.example.com
    root: /usr/share/nginx/site1
    db_name: wordpress_site1_db
    db_user: wordpress_site1_user
    db_password: password1
  - server_name: site2.example.com
    root: /usr/share/nginx/site2
    db_name: wordpress_site2_db
    db_user: wordpress_site2_user
    db_password: password2

roles

roles/wordpress.rb

これはcookbooksを順番に読み込んでいるだけです。

何か希望があれば

とりあえず作ってみたものなので、ツッコミがあればお手数ですが、どしどしお願いします。

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3