peony 0.0.2 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +31 -1
- data/lib/peony/default.rb +2 -0
- data/lib/peony/settings.rb +5 -3
- data/lib/peony/utils.rb +25 -11
- data/lib/peony/version.rb +1 -1
- data/recipes/db/mongo.rake +59 -0
- data/recipes/db/mysql.rake +55 -0
- data/recipes/db/pg.rake +7 -9
- data/recipes/db/redis.rake +36 -0
- data/recipes/elasticsearch.rake +28 -0
- data/recipes/httpd.rake +42 -0
- data/recipes/nginx/www.rake +5 -3
- data/recipes/nginx.rake +4 -6
- data/recipes/php.rake +30 -0
- data/spec/settings_spec.rb +5 -3
- data/templates/elasticsearch/config.yml.erb +364 -0
- data/templates/elasticsearch/logging.yml.erb +54 -0
- data/templates/httpd/extra/httpd-autoindex.conf.erb +93 -0
- data/templates/httpd/extra/httpd-dav.conf.erb +56 -0
- data/templates/httpd/extra/httpd-info.conf.erb +37 -0
- data/templates/httpd/extra/httpd-languages.conf.erb +141 -0
- data/templates/httpd/extra/httpd-mpm.conf.erb +110 -0
- data/templates/httpd/extra/httpd-multilang-errordoc.conf.erb +52 -0
- data/templates/httpd/httpd.conf.erb +467 -0
- data/templates/httpd/magic.erb +382 -0
- data/templates/httpd/mime.types.erb +1357 -0
- data/templates/mongo/master.conf.erb +19 -0
- data/templates/mongo/slave.conf.erb +21 -0
- data/templates/mysql/my.cnf.erb +34 -0
- data/templates/nginx/sites-enabled/php.conf.erb +12 -0
- data/templates/redis.conf.erb +624 -0
- metadata +24 -3
- data/lib/peony/template_binding.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f262ec4efc34944d8ffb10213889b4edd99bc900
|
4
|
+
data.tar.gz: 709a46b4578ffecc5283a7fe320181fb3a321969
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3e8a5eb0ff257735b9080c57edc225e5519b49592453de6639e0c76ec835d8c57ff4a06bc60a2ad3504af06e33753680609b51ff86d2e42e943c2a579a7db68
|
7
|
+
data.tar.gz: 0b263394882b1f72022fa79dac4740591318df2490926a912ec6988ce5a78f744d03163b3c2c1d5f16e9406c59dda58393714706a29358da3cc1a4f4737b73b7
|
data/README.md
CHANGED
@@ -17,8 +17,38 @@ Or install it yourself as:
|
|
17
17
|
$ gem install peony
|
18
18
|
|
19
19
|
## Usage
|
20
|
+
Peony inherits from Rake, and added many useful methods for you to write rake scripts.
|
21
|
+
|
22
|
+
If you want to run nginx server on your local server, you can add the following to your Rakefile
|
23
|
+
|
24
|
+
set :base_dir, "/opt"
|
25
|
+
set_default :www_http_port, 80
|
26
|
+
set :www_paths, {
|
27
|
+
"/homebrew" => "/Library/Caches/Homebrew"
|
28
|
+
}
|
29
|
+
set :nginx, "/usr/local/bin/nginx"
|
30
|
+
|
31
|
+
Execute the following commands
|
32
|
+
|
33
|
+
peony nginx:init
|
34
|
+
peony nginx:www:init
|
35
|
+
peony nginx:www:start
|
36
|
+
|
37
|
+
Then you can check the http://localhost/homebrew
|
38
|
+
|
39
|
+
|
40
|
+
Maybe you just want to use rake, all you just want to use some recipes of peony,
|
41
|
+
you can just add the following code to your Rakefile
|
42
|
+
|
43
|
+
require 'peony'
|
44
|
+
require 'peony/rake'
|
45
|
+
|
46
|
+
spec = Gem::Specification.find_by_name("peony")
|
47
|
+
modules = ["#{spec.gem_dir}/recipes/nginx.rake", "#{spec.gem_dir}/recipes/nginx/www.rake"]
|
48
|
+
modules.each do|f|
|
49
|
+
load f
|
50
|
+
end
|
20
51
|
|
21
|
-
TODO: Write usage instructions here
|
22
52
|
|
23
53
|
## Contributing
|
24
54
|
|
data/lib/peony/default.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
set_default :base_dir, "/u"
|
2
2
|
set_default :var_dir, ->{"#{base_dir}/var"}
|
3
3
|
set_default :etc_dir, ->{"#{base_dir}/etc"}
|
4
|
+
set_default :share_dir, ->{"#{base_dir}/share"}
|
4
5
|
set_default :run_dir, ->{"#{var_dir}/run"}
|
5
6
|
set_default :log_dir, ->{"#{var_dir}/log"}
|
6
7
|
set_default :www_dir, ->{"#{var_dir}/www"}
|
@@ -10,6 +11,7 @@ set_default :user, "James"
|
|
10
11
|
set_default :group, "admin"
|
11
12
|
|
12
13
|
namespace :settings do
|
14
|
+
desc "List all the settings."
|
13
15
|
task :list do
|
14
16
|
settings.each do|k, v|
|
15
17
|
puts "#{k} = #{settings.send(k)}"
|
data/lib/peony/settings.rb
CHANGED
@@ -12,9 +12,11 @@ module Peony
|
|
12
12
|
raise Error, "Setting :#{key} is not set" unless include?(key)
|
13
13
|
evaluate self[key]
|
14
14
|
else
|
15
|
-
|
16
|
-
|
17
|
-
|
15
|
+
if include? method
|
16
|
+
evaluate self[method]
|
17
|
+
else
|
18
|
+
block.call unless block.nil?
|
19
|
+
end
|
18
20
|
end
|
19
21
|
end
|
20
22
|
|
data/lib/peony/utils.rb
CHANGED
@@ -1,11 +1,26 @@
|
|
1
|
-
require 'peony/template_binding'
|
2
|
-
|
3
1
|
module Peony
|
4
2
|
module Utils
|
5
3
|
|
6
|
-
def sudo(cmd)
|
7
|
-
|
8
|
-
|
4
|
+
def sudo(cmd, &block)
|
5
|
+
run "sudo #{cmd}", &block
|
6
|
+
end
|
7
|
+
|
8
|
+
def run(cmd)
|
9
|
+
sh cmd do|res, stat|
|
10
|
+
if block_given?
|
11
|
+
yield res, stat
|
12
|
+
else
|
13
|
+
puts stat.inspect unless res
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def mkdir_p(*dirs)
|
19
|
+
dirs.each do|dir|
|
20
|
+
if !FileTest.exists?(dir)
|
21
|
+
FileUtils.mkdir_p(dir)
|
22
|
+
end
|
23
|
+
fail "#{dir} must be a directory!" unless FileTest.directory?(dir)
|
9
24
|
end
|
10
25
|
end
|
11
26
|
|
@@ -161,13 +176,12 @@ module Peony
|
|
161
176
|
#
|
162
177
|
# Returns things.
|
163
178
|
def method_missing(meth, *args, &blk)
|
164
|
-
settings.
|
179
|
+
if settings.include? meth
|
180
|
+
settings.send meth, *args, &blk
|
181
|
+
else
|
182
|
+
super
|
183
|
+
end
|
165
184
|
end
|
166
185
|
|
167
|
-
private
|
168
|
-
def template_binding
|
169
|
-
@template_binding ||= TemplateBinding.new(settings)
|
170
|
-
@template_binding.context_binding
|
171
|
-
end
|
172
186
|
end
|
173
187
|
end
|
data/lib/peony/version.rb
CHANGED
@@ -0,0 +1,59 @@
|
|
1
|
+
set_default :mongod, "/usr/local/bin/mongod"
|
2
|
+
|
3
|
+
set_default :mongo_master_name, "master"
|
4
|
+
set_default :mongo_slave_name, "slave"
|
5
|
+
|
6
|
+
set_default :mongo_master_dir, ->{"#{data_dir}/mongo/#{mongo_master_name}"}
|
7
|
+
set_default :mongo_slave_dir, ->{"#{data_dir}/mongo/#{mongo_slave_name}"}
|
8
|
+
set_default :mongo_etc_dir, ->{"#{etc_dir}/mongo"}
|
9
|
+
set_default :mongo_log_dir, ->{"#{log_dir}/mongo"}
|
10
|
+
set_default :mongo_run_dir, ->{"#{run_dir}/mongo"}
|
11
|
+
|
12
|
+
|
13
|
+
set_default :mongo_fork , true
|
14
|
+
set_default :mongo_jsonp, true
|
15
|
+
set_default :mongo_rest , true
|
16
|
+
|
17
|
+
set_default :mongo_master_port, 27017
|
18
|
+
set_default :mongo_slave_port, 27018
|
19
|
+
set_default :mongo_slave_source, ->{"127.0.0.1:#{mongo_master_port}"}
|
20
|
+
|
21
|
+
set_default :mongo_master_conf, ->{"#{mongo_etc_dir}/#{mongo_master_name}.conf"}
|
22
|
+
set_default :mongo_slave_conf, ->{"#{mongo_etc_dir}/#{mongo_slave_name}.conf"}
|
23
|
+
|
24
|
+
set_default :mongo_master_start, ->{"#{mongod} --config #{mongo_master_conf}"}
|
25
|
+
set_default :mongo_slave_start, ->{"#{mongod} --config #{mongo_slave_conf}"}
|
26
|
+
set_default :mongo_master_stop, ->{"kill -2 `cat #{mongo_run_dir}/#{mongo_master_name}.pid`"}
|
27
|
+
set_default :mongo_slave_stop, ->{"kill -2 `cat #{mongo_run_dir}/#{mongo_slave_name}.pid`"}
|
28
|
+
|
29
|
+
|
30
|
+
namespace :db do
|
31
|
+
namespace :mongo do
|
32
|
+
|
33
|
+
desc "Create the directory for mongodb, and copy mongo config file to etc directory."
|
34
|
+
task :init do
|
35
|
+
mkdir_p(mongo_master_dir, mongo_slave_dir, mongo_etc_dir, mongo_log_dir, mongo_run_dir)
|
36
|
+
template("mongo/master.conf.erb", mongo_master_conf, true)
|
37
|
+
template("mongo/slave.conf.erb", mongo_slave_conf, true)
|
38
|
+
end
|
39
|
+
|
40
|
+
[:master, :slave].each do|ns|
|
41
|
+
namespace ns do
|
42
|
+
[:start, :stop].each do|t|
|
43
|
+
desc "#{t} mongodb #{ns}"
|
44
|
+
task t do
|
45
|
+
run self.send("mongo_#{ns}_#{t}")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Start the master mongodb instance"
|
52
|
+
task :start => "master:start" do
|
53
|
+
end
|
54
|
+
|
55
|
+
desc "Stop the master mongodb instance"
|
56
|
+
task :stop => "master:stop" do
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
set_default :mysql_home, `brew --prefix mysql`.strip
|
2
|
+
set_default :mysqld, "/usr/local/bin/mysqld_safe"
|
3
|
+
set_default :mysqladmin, "/usr/local/bin/mysqladmin"
|
4
|
+
set_default :mysql_install_db, "/usr/local/bin/mysql_install_db"
|
5
|
+
|
6
|
+
set_default :mysql_dir, ->{"#{data_dir}/mysql/#{mysql_port}"}
|
7
|
+
set_default :mysql_log_dir, ->{"#{log_dir}/mysql/#{mysql_port}"}
|
8
|
+
set_default :mysql_conf, ->{"#{etc_dir}/my.cnf"}
|
9
|
+
|
10
|
+
set_default :mysql_user, "root"
|
11
|
+
set_default :mysql_password, "123456"
|
12
|
+
|
13
|
+
set_default :mysql_pid_file, ->{"#{run_dir}/mysql/#{mysql_port}.pid"}
|
14
|
+
set_default :mysql_port, '3306'
|
15
|
+
set_default :mysql_socket, "/tmp/mysql.sock"
|
16
|
+
set_default :mysql_charset, 'UTF8'
|
17
|
+
set_default :mysql_general_log, 'ON'
|
18
|
+
set_default :mysql_slow_query_log, 'ON'
|
19
|
+
|
20
|
+
set_default :mysql_start, ->{"#{mysqld} --defaults-file=#{mysql_conf} --datadir=#{mysql_dir} --basedir=#{mysql_home} &"}
|
21
|
+
set_default :mysql_stop, ->{"#{mysqladmin} --verbose --user=#{mysql_user} --password=#{mysql_password} shutdown"}
|
22
|
+
set_default :mysql_status, ->{"#{mysqladmin} --verbose status variables"}
|
23
|
+
|
24
|
+
namespace :db do
|
25
|
+
|
26
|
+
namespace :mysql do
|
27
|
+
|
28
|
+
desc "Create mysql directorys, config file and run mysql_install_db"
|
29
|
+
task :init do
|
30
|
+
mkdir_p(mysql_dir, mysql_log_dir, "#{run_dir}/mysql/")
|
31
|
+
template("mysql/my.cnf.erb", mysql_conf, true)
|
32
|
+
run "#{mysql_install_db} --defaults-file=#{mysql_conf} --datadir=#{mysql_dir} --basedir=#{mysql_home}" if Dir["#{mysql_dir}/*"].empty?
|
33
|
+
end
|
34
|
+
|
35
|
+
[:start, :stop, :status].each do|t|
|
36
|
+
desc "#{t} mysql instance."
|
37
|
+
task t do
|
38
|
+
run self.send("mysql_#{t}")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
desc "Set mysql root user password."
|
43
|
+
task :set_root_pass do
|
44
|
+
run "mysqladmin --no-defaults --port=#{mysql_port} --user=root --protocol=tcp password '#{mysql_password}'"
|
45
|
+
end
|
46
|
+
|
47
|
+
namespace :web do
|
48
|
+
[:start, :stop].each do|t|
|
49
|
+
desc "#{t} phpMyAdmin, please put the phpMyAdmin to #{www_dir}"
|
50
|
+
task t => ["nginx:www:#{t}", "php:fcgi:#{t}"]
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
data/recipes/db/pg.rake
CHANGED
@@ -15,32 +15,30 @@ set_default :pg_super_users, {
|
|
15
15
|
|
16
16
|
namespace :db do
|
17
17
|
namespace :pg do
|
18
|
+
|
19
|
+
desc "Execute postgres initdb."
|
18
20
|
task :init do
|
19
21
|
if File.exists?("#{pg_data_dir}/postgresql.conf")
|
20
22
|
puts "Postgresql database has already initialized."
|
21
23
|
else
|
22
|
-
|
23
|
-
puts stat.inspect if !res
|
24
|
-
end
|
24
|
+
run pg_init
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
desc "Set super users for postgresql."
|
28
29
|
task :set_super_users do
|
29
30
|
pg_super_users.each do|user, password|
|
30
31
|
sqls = ["CREATE USER #{user} WITH PASSWORD '#{password}';", "ALTER USER #{user} WITH SUPERUSER;"]
|
31
32
|
sqls.each do|sql|
|
32
|
-
|
33
|
-
puts stat.inspect if !res
|
34
|
-
end
|
33
|
+
run "psql -d postgres -c \"#{sql}\""
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|
38
37
|
|
39
38
|
[:start, :stop, :restart, :reload].each do|cmd|
|
39
|
+
desc "#{cmd} postgresql instance."
|
40
40
|
task cmd do
|
41
|
-
|
42
|
-
puts stat.inspect if !res
|
43
|
-
end
|
41
|
+
run self.send("pg_#{cmd}")
|
44
42
|
end
|
45
43
|
end
|
46
44
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
set_default :redis_conf, ->{"#{etc_dir}/redis.conf"}
|
2
|
+
set_default :redis_dir, ->{"#{data_dir}/redis"}
|
3
|
+
set_default :redis_pid, ->{"#{run_dir}/redis.pid"}
|
4
|
+
set_default :redis_port, 6379
|
5
|
+
|
6
|
+
set_default :redis_start, ->{"redis-server #{redis_conf}"}
|
7
|
+
set_default :redis_stop, ->{"redis-cli -p #{redis_port} shutdown"}
|
8
|
+
set_default :redis_restart, ->{"kill -2 `#{redis_pid}` && #{redis_start}"}
|
9
|
+
|
10
|
+
set_default :redis_daemonize, "yes"
|
11
|
+
set_default :redis_timeout, 0
|
12
|
+
set_default :redis_loglevel, "notice"
|
13
|
+
set_default :redis_logfile, "stdout"
|
14
|
+
set_default :redis_databases, 16
|
15
|
+
set_default :rdbcompression, "yes"
|
16
|
+
set_default :rdbchecksum, "yes"
|
17
|
+
set_default :redis_dbfilename, "dump.rdb"
|
18
|
+
set_default :redis_appendonly, "yes"
|
19
|
+
set_default :redis_activerehashing, "yes"
|
20
|
+
|
21
|
+
namespace :db do
|
22
|
+
namespace :redis do
|
23
|
+
desc "Initialize redis directory and copy redis.conf to etc directory."
|
24
|
+
task :init do
|
25
|
+
mkdir_p(redis_dir)
|
26
|
+
template("redis.conf.erb", redis_conf)
|
27
|
+
end
|
28
|
+
|
29
|
+
[:start, :stop, :restart].each do|cmd|
|
30
|
+
desc "#{cmd} redis"
|
31
|
+
task cmd do
|
32
|
+
run self.send("redis_#{cmd}")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
set_default :es_plugins_dir, "/usr/local/var/lib/elasticsearch/plugins"
|
2
|
+
set_default :es_cluster_name, "default_cluster"
|
3
|
+
set_default :es_data_dir, ->{"#{data_dir}/elasticsearch/"}
|
4
|
+
set_default :es_network_host, "127.0.0.1"
|
5
|
+
set_default :es_config, ->{"#{etc_dir}/elasticsearch/config.yml"}
|
6
|
+
|
7
|
+
#-f can let elasticsearch running in the foreground
|
8
|
+
set_default :elasticsearch_start, ->{"elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid"}
|
9
|
+
#set_default :elasticsearch_stop, ->{"elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid stop"}
|
10
|
+
set_default :elasticsearch_stop, ->{"kill `cat #{run_dir}/elasticsearch.pid`"}
|
11
|
+
set_default :elasticsearch_shutdown, ->{"curl -XPOST 'http://#{es_network_host}:9200/_shutdown'"}
|
12
|
+
|
13
|
+
namespace :elasticsearch do
|
14
|
+
|
15
|
+
desc "Initialize elasticsearch directory and copy it's config files to etc path."
|
16
|
+
task :init do
|
17
|
+
mkdir_p("#{etc_dir}/elasticsearch")
|
18
|
+
template("elasticsearch/config.yml.erb", es_config)
|
19
|
+
template("elasticsearch/logging.yml.erb", "#{etc_dir}/elasticsearch/logging.yml")
|
20
|
+
end
|
21
|
+
|
22
|
+
[:start, :stop, :shutdown].each do|cmd|
|
23
|
+
desc "#{cmd} elasticsearch."
|
24
|
+
task cmd do
|
25
|
+
run self.send("elasticsearch_#{cmd}")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/recipes/httpd.rake
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
set_default :httpd, "/usr/sbin/httpd"
|
2
|
+
set_default :httpd_server_root, "/usr"
|
3
|
+
set_default :httpd_share_dir, "/usr/share/httpd"
|
4
|
+
|
5
|
+
set_default :httpd_etc_dir, ->{"#{etc_dir}/httpd"}
|
6
|
+
set_default :httpd_conf, ->{"#{httpd_etc_dir}/httpd.conf"}
|
7
|
+
|
8
|
+
set_default :httpd_log_dir, ->{"#{log_dir}/httpd"}
|
9
|
+
set_default :webdav_dir, ->{"#{var_dir}/webdav"}
|
10
|
+
set_default :auth_user_file, ->{"#{httpd_etc_dir}/user.passwd"}
|
11
|
+
set_default :httpd_server_admin, "zhiqiangzhan@gmail.com"
|
12
|
+
set_default :httpd_port, 8888
|
13
|
+
set_default :httpd_server_name, ->{"localhost:#{httpd_port}"}
|
14
|
+
|
15
|
+
set_default :auth_user, "admin"
|
16
|
+
|
17
|
+
namespace :httpd do
|
18
|
+
desc "Initialize httpd config files."
|
19
|
+
task :init do
|
20
|
+
search_paths.each do|sp|
|
21
|
+
mkdir_p(httpd_etc_dir, "#{httpd_etc_dir}/extra", httpd_log_dir, webdav_dir)
|
22
|
+
Dir["#{sp}/httpd/**/*.erb"].each do|fn|
|
23
|
+
target = fn.sub("#{sp}/httpd", "#{httpd_etc_dir}").sub(/.erb$/, "")
|
24
|
+
template(fn, target) unless File.exists?(target)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "Create AuthUserFile."
|
30
|
+
task :auth_user_file do
|
31
|
+
run "htpasswd -c #{auth_user_file} #{auth_user}"
|
32
|
+
end
|
33
|
+
|
34
|
+
namespace :webdav do
|
35
|
+
[:start, :restart, :stop].each do|t|
|
36
|
+
desc "#{t} httpd instance."
|
37
|
+
task t do
|
38
|
+
run "#{httpd} -f #{httpd_conf} -k #{t}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/recipes/nginx/www.rake
CHANGED
@@ -4,19 +4,21 @@ set_default :www_paths, {}
|
|
4
4
|
|
5
5
|
namespace :nginx do
|
6
6
|
namespace :www do
|
7
|
+
desc "Create www config files."
|
7
8
|
task :init do
|
8
9
|
template("nginx/www.conf.erb", "#{nginx_etc_dir}/www.conf", true)
|
9
10
|
template("nginx/sites-enabled/static.conf.erb", "#{nginx_etc_dir}/sites-enabled/static.http.conf", true) unless www_paths.empty?
|
11
|
+
template("nginx/sites-enabled/php.conf.erb", "#{nginx_etc_dir}/sites-enabled/php.http.conf", true)
|
10
12
|
end
|
11
13
|
|
12
14
|
[:start, :stop, :reload].each do|t|
|
15
|
+
desc "#{t} nginx www instance."
|
13
16
|
task t do
|
14
|
-
sudo self.send("nginx_#{t}_cmd", :www)
|
15
|
-
puts stat.inspect if !res
|
16
|
-
end
|
17
|
+
sudo self.send("nginx_#{t}_cmd", :www)
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
21
|
+
desc "Restart nginx www instance."
|
20
22
|
task :restart do
|
21
23
|
nginx_restart(:www)
|
22
24
|
end
|
data/recipes/nginx.rake
CHANGED
@@ -7,12 +7,12 @@ set_default :nginx_prefix, ->{"#{log_dir}/nginx"}
|
|
7
7
|
set_default :worker_processes, 8
|
8
8
|
|
9
9
|
set_default :upstreams, [
|
10
|
-
{name: :
|
10
|
+
{name: :fastcgi_server, servers: ["127.0.0.1:6666"]},
|
11
11
|
]
|
12
12
|
|
13
13
|
set_default :server_name, "localhost"
|
14
14
|
|
15
|
-
set_default :use_ssl,
|
15
|
+
set_default :use_ssl, false
|
16
16
|
set_default :ssl_certificate, ->{"#{etc_dir}/ssl/server.crt"}
|
17
17
|
set_default :ssl_certificate_key, ->{"#{etc_dir}/ssl/server.key"}
|
18
18
|
|
@@ -37,11 +37,9 @@ def nginx_restart(name)
|
|
37
37
|
end
|
38
38
|
|
39
39
|
namespace :nginx do
|
40
|
+
desc "Initialize nginx directory and create it's config files."
|
40
41
|
task :init do
|
41
|
-
|
42
|
-
FileUtils.mkdir_p(dir) unless File.exists?(dir)
|
43
|
-
fail "#{dir} must be a directory!" unless File.directory?(dir)
|
44
|
-
end
|
42
|
+
mkdir_p(nginx_etc_dir, nginx_run_dir, nginx_prefix)
|
45
43
|
unless File.exists?("#{nginx_etc_dir}/conf")
|
46
44
|
FileUtils.cp_r(find_templates("nginx/conf", false).first, nginx_etc_dir)
|
47
45
|
end
|
data/recipes/php.rake
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
set_default :php_home, ->{"#{share_dir}/php5"}
|
2
|
+
set_default :php_cgi, ->{"#{php_home}/bin/php-cgi"}
|
3
|
+
set_default :spawn_fcgi, "/usr/local/bin/spawn-fcgi"
|
4
|
+
set_default :fcgi_run_dir, ->{"#{run_dir}/fcgi"}
|
5
|
+
|
6
|
+
namespace :php do
|
7
|
+
namespace :fcgi do
|
8
|
+
desc "Create fcgi running directory."
|
9
|
+
task :init do
|
10
|
+
mkdir_p("#{run_dir}/fcgi")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Start fcgi."
|
14
|
+
task :start => :init do
|
15
|
+
run "#{spawn_fcgi} -a 127.0.0.1 -p 6666 -C 6 -f #{php_cgi} -u #{user} -P #{fcgi_run_dir}/spawn_fcgi.pid > /dev/null"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Kill fcgi."
|
19
|
+
task :stop do
|
20
|
+
run 'killall -9 php-fcgi > /dev/null 2>&1 || echo -n "not running"'
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Restart fcgi."
|
24
|
+
task :restart => :stop do
|
25
|
+
invoke "php:fcgi:stop"
|
26
|
+
sleep(6)
|
27
|
+
invoke "php:fcgi:start"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/spec/settings_spec.rb
CHANGED
@@ -28,7 +28,7 @@ describe Peony::Settings do
|
|
28
28
|
@settings.email.should == 'zhiqiangzhan@gmail.com'
|
29
29
|
end
|
30
30
|
|
31
|
-
it 'setting default value should
|
31
|
+
it 'setting set default value should be work' do
|
32
32
|
@settings.send(:x=, 1){ 3 }
|
33
33
|
@settings.x.should == 1
|
34
34
|
@settings.send(:y=, nil){ 3 }
|
@@ -37,8 +37,10 @@ describe Peony::Settings do
|
|
37
37
|
@settings.z.should == 6
|
38
38
|
end
|
39
39
|
|
40
|
-
|
41
|
-
|
40
|
+
|
41
|
+
it 'setting get default value should be work' do
|
42
|
+
@settings.x = -1
|
43
|
+
@settings.x{1}.should == -1
|
42
44
|
@settings.y{3}.should == 3
|
43
45
|
@settings.z{6}.should == 6
|
44
46
|
end
|