peony 0.0.2 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|