megalodon 0.1.0

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.
Files changed (109) hide show
  1. data/Gemfile +4 -0
  2. data/README.md +80 -0
  3. data/bin/megalodon +68 -0
  4. data/config/rake.rb +60 -0
  5. data/config/run_list.json +5 -0
  6. data/config/run_vhosts.json +5 -0
  7. data/config/solo.rb +20 -0
  8. data/cookbooks/dnsmasq/recipies/default.rb +28 -0
  9. data/cookbooks/elasticsearch/recipies/default.rb +23 -0
  10. data/cookbooks/erlang/README.rdoc +8 -0
  11. data/cookbooks/erlang/metadata.rb +6 -0
  12. data/cookbooks/erlang/recipes/default.rb +8 -0
  13. data/cookbooks/git/README.rdoc +8 -0
  14. data/cookbooks/git/metadata.rb +6 -0
  15. data/cookbooks/git/recipes/default.rb +24 -0
  16. data/cookbooks/git/templates/default/dot.gitconfig.erb +47 -0
  17. data/cookbooks/homebrew/README.rdoc +73 -0
  18. data/cookbooks/homebrew/libraries/homebrew_package.rb +85 -0
  19. data/cookbooks/homebrew/metadata.json +33 -0
  20. data/cookbooks/homebrew/metadata.rb +9 -0
  21. data/cookbooks/homebrew/recipes/default.rb +11 -0
  22. data/cookbooks/jenkins/metadata.rb +9 -0
  23. data/cookbooks/jenkins/recipes/default.rb +21 -0
  24. data/cookbooks/maatkit/recipes/default.rb +10 -0
  25. data/cookbooks/megalodon/attributes/default.rb +3 -0
  26. data/cookbooks/megalodon/definitions/megalodon_app.rb +21 -0
  27. data/cookbooks/megalodon/recipes/apache_vhosts.rb +46 -0
  28. data/cookbooks/megalodon/recipes/default.rb +55 -0
  29. data/cookbooks/megalodon/recipes/misc.rb +14 -0
  30. data/cookbooks/megalodon/templates/default/default.conf.erb +26 -0
  31. data/cookbooks/megalodon/templates/default/default.json.erb +5 -0
  32. data/cookbooks/megalodon/templates/default/dot.profile.erb +22 -0
  33. data/cookbooks/megalodon/templates/default/php5.conf.erb +12 -0
  34. data/cookbooks/megalodon/templates/default/vhost.conf.erb +28 -0
  35. data/cookbooks/memcached/README.rdoc +8 -0
  36. data/cookbooks/memcached/metadata.rb +2 -0
  37. data/cookbooks/memcached/recipes/default.rb +9 -0
  38. data/cookbooks/mongodb/recipes/default.rb +23 -0
  39. data/cookbooks/mvim/README.rdoc +8 -0
  40. data/cookbooks/mvim/metadata.rb +6 -0
  41. data/cookbooks/mvim/recipes/default.rb +47 -0
  42. data/cookbooks/mvim/templates/default/dot.vimrc.erb +23 -0
  43. data/cookbooks/mysql/README.rdoc +143 -0
  44. data/cookbooks/mysql/attributes/server.rb +58 -0
  45. data/cookbooks/mysql/metadata.rb +78 -0
  46. data/cookbooks/mysql/recipes/default.rb +24 -0
  47. data/cookbooks/mysql/recipes/mariadb.rb +41 -0
  48. data/cookbooks/mysql/templates/default/my.cnf.erb +161 -0
  49. data/cookbooks/nginx/recipes/default.rb +66 -0
  50. data/cookbooks/nginx/templates/default/app_nginx.conf.erb +42 -0
  51. data/cookbooks/nginx/templates/default/default.conf.erb +40 -0
  52. data/cookbooks/nginx/templates/default/fastcgi_params.erb +23 -0
  53. data/cookbooks/nginx/templates/default/nginx.conf.erb +33 -0
  54. data/cookbooks/node/README.rdoc +8 -0
  55. data/cookbooks/node/metadata.rb +6 -0
  56. data/cookbooks/node/recipes/default.rb +12 -0
  57. data/cookbooks/php/attributes/default.rb +3 -0
  58. data/cookbooks/php/metadata.rb +2 -0
  59. data/cookbooks/php/providers/pear.rb +229 -0
  60. data/cookbooks/php/providers/pear_channel.rb +91 -0
  61. data/cookbooks/php/recipes/default.rb +25 -0
  62. data/cookbooks/php/recipes/fpm.rb +45 -0
  63. data/cookbooks/php/recipes/module_apc.rb +12 -0
  64. data/cookbooks/php/recipes/module_memcached.rb +12 -0
  65. data/cookbooks/php/recipes/module_mongo.rb +11 -0
  66. data/cookbooks/php/recipes/module_xdebug.rb +11 -0
  67. data/cookbooks/php/resources/pear.rb +28 -0
  68. data/cookbooks/php/resources/pear_channel.rb +28 -0
  69. data/cookbooks/php/templates/default/mods/apc.ini.erb +4 -0
  70. data/cookbooks/php/templates/default/mods/memcached.ini.erb +1 -0
  71. data/cookbooks/php/templates/default/mods/mongo.ini.erb +1 -0
  72. data/cookbooks/php/templates/default/mods/xdebug.ini.erb +39 -0
  73. data/cookbooks/php/templates/default/net.php.php-fpm.plist.erb +23 -0
  74. data/cookbooks/php/templates/default/php-fpm.conf.erb +323 -0
  75. data/cookbooks/php/templates/default/php.ini.erb +1854 -0
  76. data/cookbooks/php.tgz +0 -0
  77. data/cookbooks/phpunit/metadata.rb +8 -0
  78. data/cookbooks/phpunit/recipes/default.rb +38 -0
  79. data/cookbooks/python/README.rdoc +8 -0
  80. data/cookbooks/python/metadata.rb +6 -0
  81. data/cookbooks/python/recipes/default.rb +6 -0
  82. data/cookbooks/redis/recipes/default.rb +23 -0
  83. data/cookbooks/siege/recipes/default.rb +4 -0
  84. data/cookbooks/solr/metadata.json +36 -0
  85. data/cookbooks/solr/metadata.rb +9 -0
  86. data/cookbooks/solr/recipes/default.rb +18 -0
  87. data/cookbooks/varnish/attributes/default.rb +2 -0
  88. data/cookbooks/varnish/recipes/default.rb +24 -0
  89. data/cookbooks/varnish/templates/default/default.vcl.erb +268 -0
  90. data/cookbooks/varnish/templates/default/ubuntu-default.erb +103 -0
  91. data/cookbooks/xhprof/metadata.json +36 -0
  92. data/cookbooks/xhprof/metadata.rb +12 -0
  93. data/cookbooks/xhprof/recipes/default.rb +43 -0
  94. data/cookbooks/xhprof/templates/default/xhprof.ini.erb +2 -0
  95. data/formulas/apc.rb +63 -0
  96. data/formulas/cclient.rb +57 -0
  97. data/formulas/megalodon.rb +27 -0
  98. data/formulas/memcached-php.rb +24 -0
  99. data/formulas/mongo-php.rb +25 -0
  100. data/formulas/mongodb-php.rb +31 -0
  101. data/formulas/php-memcached.rb +31 -0
  102. data/formulas/php.rb +261 -0
  103. data/formulas/xdebug.rb +36 -0
  104. data/formulas/xhprof.rb +33 -0
  105. data/lib/megalodon/version.rb +3 -0
  106. data/megalodon.gemspec +14 -0
  107. data/roles/nginx_web_server.json +23 -0
  108. data/roles/web_server.json +19 -0
  109. metadata +170 -0
@@ -0,0 +1,229 @@
1
+ #
2
+ # Author:: Seth Chisamore <schisamo@opscode.com>
3
+ # Cookbook Name:: php
4
+ # Provider:: pear_package
5
+ #
6
+ # Copyright:: 2011, Opscode, Inc <legal@opscode.com>
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ require 'chef/mixin/shell_out'
22
+ require 'chef/mixin/language'
23
+ include Chef::Mixin::ShellOut
24
+
25
+ # the logic in all action methods mirror that of
26
+ # the Chef::Provider::Package which will make
27
+ # refactoring into core chef easy
28
+
29
+ action :install do
30
+ # If we specified a version, and it's not the current version, move to the specified version
31
+ if @new_resource.version != nil && @new_resource.version != @current_resource.version
32
+ install_version = @new_resource.version
33
+ # If it's not installed at all, install it
34
+ elsif @current_resource.version == nil
35
+ install_version = candidate_version
36
+ end
37
+
38
+ if install_version
39
+ Chef::Log.info("Installing #{@new_resource} version #{install_version}")
40
+ status = install_package(@new_resource.package_name, install_version)
41
+ if status
42
+ @new_resource.updated_by_last_action(true)
43
+ end
44
+ end
45
+ end
46
+
47
+ action :upgrade do
48
+ if @current_resource.version != candidate_version
49
+ orig_version = @current_resource.version || "uninstalled"
50
+ Chef::Log.info("Upgrading #{@new_resource} version from #{orig_version} to #{candidate_version}")
51
+ status = upgrade_package(@new_resource.package_name, candidate_version)
52
+ if status
53
+ @new_resource.updated_by_last_action(true)
54
+ end
55
+ end
56
+ end
57
+
58
+ action :remove do
59
+ if removing_package?
60
+ Chef::Log.info("Removing #{@new_resource}")
61
+ remove_package(@current_resource.package_name, @new_resource.version)
62
+ @new_resource.updated_by_last_action(true)
63
+ else
64
+ end
65
+ end
66
+
67
+ action :purge do
68
+ if removing_package?
69
+ Chef::Log.info("Purging #{@new_resource}")
70
+ purge_package(@current_resource.package_name, @new_resource.version)
71
+ @new_resource.updated_by_last_action(true)
72
+ end
73
+ end
74
+
75
+ def removing_package?
76
+ if @current_resource.version.nil?
77
+ false # nothing to remove
78
+ elsif @new_resource.version.nil?
79
+ true # remove any version of a package
80
+ elsif @new_resource.version == @current_resource.version
81
+ true # remove the version we have
82
+ else
83
+ false # we don't have the version we want to remove
84
+ end
85
+ end
86
+
87
+ def expand_options(options)
88
+ options ? " #{options}" : ""
89
+ end
90
+
91
+ # these methods are the required overrides of
92
+ # a provider that extends from Chef::Provider::Package
93
+ # so refactoring into core Chef should be easy
94
+
95
+ def load_current_resource
96
+ @current_resource = Chef::Resource::PhpPear.new(@new_resource.name)
97
+ @current_resource.package_name(@new_resource.package_name)
98
+ @bin = 'pear'
99
+ if pecl?
100
+ Chef::Log.debug("#{@new_resource} smells like a pecl...installing package in Pecl mode.")
101
+ @bin = 'pecl'
102
+ end
103
+ Chef::Log.debug("#{@current_resource}: Installed version: #{current_installed_version} Candidate version: #{candidate_version}")
104
+
105
+ unless current_installed_version.nil?
106
+ @current_resource.version(current_installed_version)
107
+ Chef::Log.debug("Current version is #{@current_resource.version}") if @current_resource.version
108
+ end
109
+ @current_resource
110
+ end
111
+
112
+ def current_installed_version
113
+ @current_installed_version ||= begin
114
+ v = nil
115
+ version_check_cmd = "#{@bin} -d preferred_state=#{can_haz(@new_resource, "preferred_state")} list#{expand_channel(can_haz(@new_resource, "channel"))}"
116
+ p = shell_out(version_check_cmd)
117
+ response = nil
118
+ if p.stdout =~ /\.?Installed packages/i
119
+ response = grep_for_version(p.stdout, @new_resource.package_name)
120
+ end
121
+ response
122
+ end
123
+ end
124
+
125
+ def candidate_version
126
+ @candidate_version ||= begin
127
+ candidate_version_cmd = "#{@bin} -d preferred_state=#{can_haz(@new_resource, "preferred_state")} search#{expand_channel(can_haz(@new_resource, "channel"))} #{@new_resource.package_name}"
128
+ p = shell_out(candidate_version_cmd)
129
+ response = nil
130
+ if p.stdout =~ /\.?Matched packages/i
131
+ response = grep_for_version(p.stdout, @new_resource.package_name)
132
+ end
133
+ response
134
+ end
135
+ end
136
+
137
+ def install_package(name, version)
138
+ pear_shell_out("echo -e \"\\r\" | #{@bin} -d preferred_state=#{can_haz(@new_resource, "preferred_state")} install -a#{expand_options(@new_resource.options)} #{prefix_channel(can_haz(@new_resource, "channel"))}#{name}-#{version}")
139
+ manage_pecl_ini(name, :create, can_haz(@new_resource, "directives")) if pecl?
140
+ end
141
+
142
+ def upgrade_package(name, version)
143
+ pear_shell_out("echo -e \"\\r\" | #{@bin} -d preferred_state=#{can_haz(@new_resource, "preferred_state")} upgrade -a#{expand_options(@new_resource.options)} #{prefix_channel(can_haz(@new_resource, "channel"))}#{name}-#{version}")
144
+ manage_pecl_ini(name, :create, can_haz(@new_resource, "directives")) if pecl?
145
+ end
146
+
147
+ def remove_package(name, version)
148
+ command = "#{@bin} uninstall #{expand_options(@new_resource.options)} #{prefix_channel(can_haz(@new_resource, "channel"))}#{name}"
149
+ command << "-#{version}" if version and !version.empty?
150
+ pear_shell_out(command)
151
+ manage_pecl_ini(name, :delete) if pecl?
152
+ end
153
+
154
+ def pear_shell_out(command)
155
+ p = shell_out!(command)
156
+ # pear/pecl commands return a 0 on failures...we'll grep for it
157
+ if p.stdout.split("\n").last =~ /^ERROR:.+/i
158
+ p.invalid!
159
+ end
160
+ p
161
+ end
162
+
163
+ def purge_package(name, version)
164
+ remove_package(name, version)
165
+ end
166
+
167
+ def expand_channel(channel)
168
+ channel ? " -c #{channel}" : ""
169
+ end
170
+
171
+ def prefix_channel(channel)
172
+ channel ? "#{channel}/" : ""
173
+ end
174
+
175
+ def manage_pecl_ini(name, action, directives)
176
+ template "#{node['php']['ext_conf_dir']}/#{name}.ini" do
177
+ source "extension.ini.erb"
178
+ cookbook "php"
179
+ owner "root"
180
+ group "root"
181
+ mode "0644"
182
+ variables(:name => name, :directives => directives)
183
+ action action
184
+ end
185
+ end
186
+
187
+ def grep_for_version(stdout, package)
188
+ v = nil
189
+
190
+ stdout.split(/\n/).grep(/^#{package}\s/i).each do |m|
191
+ # XML_RPC 1.5.4 stable
192
+ # mongo 1.1.4/(1.1.4 stable) 1.1.4 MongoDB database driver
193
+ # Horde_Url -n/a-/(1.0.0beta1 beta) Horde Url class
194
+ # Horde_Url 1.0.0beta1 (beta) 1.0.0beta1 Horde Url class
195
+ v = m.split(/\s+/)[1].strip
196
+ if v.split(/\//)[0] =~ /.\./
197
+ # 1.1.4/(1.1.4 stable)
198
+ v = v.split(/\//)[0]
199
+ else
200
+ # -n/a-/(1.0.0beta1 beta)
201
+ v = v.split(/(.*)\/\((.*)/).last.split(/\s/)[0]
202
+ end
203
+ end
204
+ v
205
+ end
206
+
207
+ def pecl?
208
+ @pecl ||= begin
209
+ # search as a pear first since most 3rd party channels will report pears as pecls!
210
+ search_cmd = "pear -d preferred_state=#{can_haz(@new_resource, "preferred_state")} search#{expand_channel(can_haz(@new_resource, "channel"))} #{@new_resource.package_name}"
211
+ if shell_out(search_cmd).stdout =~ /\.?Matched packages/i
212
+ false
213
+ else
214
+ # fall back and search as a pecl
215
+ search_cmd = "pecl -d preferred_state=#{can_haz(@new_resource, "preferred_state")} search#{expand_channel(can_haz(@new_resource, "channel"))} #{@new_resource.package_name}"
216
+ if shell_out(search_cmd).stdout =~ /\.?Matched packages/i
217
+ true
218
+ else
219
+ false
220
+ end
221
+ end
222
+ end
223
+ end
224
+
225
+ # TODO remove when provider is moved into Chef core
226
+ # this allows PhpPear to work with Chef::Resource::Package
227
+ def can_haz(resource, attribute_name)
228
+ resource.respond_to?(attribute_name) ? resource.send(attribute_name) : nil
229
+ end
@@ -0,0 +1,91 @@
1
+ #
2
+ # Author:: Seth Chisamore <schisamo@opscode.com>
3
+ # Cookbook Name:: php
4
+ # Provider:: pear_channel
5
+ #
6
+ # Copyright:: 2011, Opscode, Inc <legal@opscode.com>
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ # http://pear.php.net/manual/en/guide.users.commandline.channels.php
22
+
23
+ require 'chef/mixin/shell_out'
24
+ require 'chef/mixin/language'
25
+ include Chef::Mixin::ShellOut
26
+
27
+ action :discover do
28
+ unless exists?
29
+ Chef::Log.info("Discovering pear channel #{@new_resource}")
30
+ execute "pear channel-discover #{@new_resource.channel_name}" do
31
+ action :run
32
+ end
33
+ new_resource.updated_by_last_action(true)
34
+ end
35
+ end
36
+
37
+ action :add do
38
+ unless exists?
39
+ Chef::Log.info("Adding pear channel #{@new_resource} from #{@new_resource.channel_xml}")
40
+ execute "pear channel-add #{@new_resource.channel_xml}" do
41
+ action :run
42
+ end
43
+ new_resource.updated_by_last_action(true)
44
+ end
45
+ end
46
+
47
+ action :update do
48
+ if exists?
49
+ update_needed = false
50
+ begin
51
+ updated_needed = true if shell_out("pear search -c #{@new_resource.channel_name}").stdout =~ /channel-update/
52
+ rescue Chef::Exceptions::CommandTimeout
53
+ # CentOS can hang on 'pear search' if a channel needs updating
54
+ Chef::Log.info("Timed out checking if channel-update needed...forcing update of pear channel #{@new_resource}")
55
+ update_needed = true
56
+ end
57
+ if update_needed
58
+ Chef::Log.info("Updating pear channel #{@new_resource}")
59
+ shell_out!("pear channel-update #{@new_resource.channel_name}")
60
+ new_resource.updated_by_last_action(true)
61
+ end
62
+ end
63
+ end
64
+
65
+ action :remove do
66
+ if exists?
67
+ Chef::Log.info("Deleting pear channel #{@new_resource}")
68
+ execute "pear channel-delete #{@new_resource.channel_name}" do
69
+ action :run
70
+ end
71
+ new_resource.updated_by_last_action(true)
72
+ end
73
+ end
74
+
75
+ def load_current_resource
76
+ @current_resource = Chef::Resource::PhpPearChannel.new(@new_resource.name)
77
+ @current_resource.channel_name(@new_resource.channel_name)
78
+ @current_resource
79
+ end
80
+
81
+ private
82
+ def exists?
83
+ begin
84
+ shell_out!("pear channel-info #{@current_resource.channel_name}")
85
+ true
86
+ rescue Chef::Exceptions::ShellCommandFailed
87
+ false
88
+ rescue Mixlib::ShellOut::ShellCommandFailed
89
+ false
90
+ end
91
+ end
@@ -0,0 +1,25 @@
1
+ #
2
+ # Cookbook Name:: php
3
+ # Recipe:: default
4
+ #
5
+ #
6
+
7
+ package "php" do
8
+ action :install
9
+ options "--with-mysql --with-imap --with-apache --with-cgi"
10
+ end
11
+
12
+ bash "Fix the default PEAR permissions and config" do
13
+ code <<-EOS
14
+ chmod -R ug+w $(brew --prefix php)/lib/php
15
+ pear config-set php_ini $(brew --prefix php)/etc/php5/php.ini
16
+ pecl config-set php_suffix /$(brew --prefix php| awk -F'/' '{print $6}')/bin/php
17
+ EOS
18
+ end
19
+
20
+ FileUtils.mkdir_p(node[:php][:scan_dir]) unless File.exists?(node[:php][:scan_dir])
21
+
22
+ template "#{node['php']['conf_dir']}/php.ini" do
23
+ source "php.ini.erb"
24
+ mode "0644"
25
+ end
@@ -0,0 +1,45 @@
1
+ #
2
+ # Cookbook Name:: php
3
+ # Recipe:: default
4
+ #
5
+ #
6
+
7
+ package "php" do
8
+ action :install
9
+ options "--with-mysql --with-pgsql --with-mssql --with-imap --with-fpm --with-cgi"
10
+ end
11
+
12
+ bash "Fix the default PEAR permissions and config" do
13
+ code <<-EOS
14
+ chmod -R ug+w $(brew --prefix php)/lib/php
15
+ pear config-set php_ini $(brew --prefix)/etc/php5/php.ini
16
+ EOS
17
+ end
18
+
19
+ directory node['php']['scan_dir'] do
20
+ action :create
21
+ end
22
+
23
+ directory "#{node['php']['conf_dir']}/fpm" do
24
+ action :create
25
+ end
26
+
27
+ directory "/usr/local/var/php5/run" do
28
+ action :create
29
+ recursive true
30
+ end
31
+
32
+ template "#{node['php']['conf_dir']}/php.ini" do
33
+ source "php.ini.erb"
34
+ mode "0644"
35
+ end
36
+
37
+ template "#{node['php']['conf_dir']}/fpm/php-fpm.conf" do
38
+ source "php-fpm.conf.erb"
39
+ mode "0644"
40
+ end
41
+
42
+ template "#{ENV['HOME']}/Library/LaunchAgents/net.php.php-fpm.plist" do
43
+ source "net.php.php-fpm.plist.erb"
44
+ end
45
+
@@ -0,0 +1,12 @@
1
+ #
2
+ # Cookbook Name:: php
3
+ # Recipe:: default
4
+ #
5
+
6
+ package "apc" do
7
+ action :install
8
+ end
9
+
10
+ template "/usr/local/etc/php5/conf.d/apc.ini" do
11
+ source "mods/apc.ini.erb"
12
+ end
@@ -0,0 +1,12 @@
1
+ #
2
+ # Cookbook Name:: memcached
3
+ # Recipe:: default
4
+ #
5
+ #
6
+ include_recipe "memcached"
7
+
8
+ package "php-memcached"
9
+
10
+ template "/usr/local/etc/php5/conf.d/memcached.ini" do
11
+ source "mods/memcached.ini.erb"
12
+ end
@@ -0,0 +1,11 @@
1
+ #
2
+ # Cookbook Name:: php
3
+ # Recipe:: default
4
+ #
5
+ #
6
+
7
+ package "mongodb-php"
8
+
9
+ template "/usr/local/etc/php5/conf.d/mongo.ini" do
10
+ source "mods/mongo.ini.erb"
11
+ end
@@ -0,0 +1,11 @@
1
+ #
2
+ # Cookbook Name:: php
3
+ # Recipe:: default
4
+ #
5
+ #
6
+
7
+ package "xdebug"
8
+
9
+ template "/usr/local/etc/php5/conf.d/xdebug.ini" do
10
+ source "mods/xdebug.ini.erb"
11
+ end
@@ -0,0 +1,28 @@
1
+ #
2
+ # Author:: Seth Chisamore <schisamo@opscode.com>
3
+ # Cookbook Name:: php
4
+ # Resource:: pear_package
5
+ #
6
+ # Copyright:: 2011, Opscode, Inc <legal@opscode.com>
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ actions :install, :upgrade, :remove, :purge
22
+
23
+ attribute :package_name, :kind_of => String, :name_attribute => true
24
+ attribute :version, :default => nil
25
+ attribute :channel, :kind_of => String
26
+ attribute :options, :kind_of => String
27
+ attribute :directives, :kind_of => Hash, :default => {}
28
+ attribute :preferred_state, :default => 'stable'
@@ -0,0 +1,28 @@
1
+ #
2
+ # Author:: Seth Chisamore <schisamo@opscode.com>
3
+ # Cookbook Name:: php
4
+ # Resource:: pear_channel
5
+ #
6
+ # Copyright:: 2011, Opscode, Inc <legal@opscode.com>
7
+ #
8
+ # Licensed under the Apache License, Version 2.0 (the "License");
9
+ # you may not use this file except in compliance with the License.
10
+ # You may obtain a copy of the License at
11
+ #
12
+ # http://www.apache.org/licenses/LICENSE-2.0
13
+ #
14
+ # Unless required by applicable law or agreed to in writing, software
15
+ # distributed under the License is distributed on an "AS IS" BASIS,
16
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ # See the License for the specific language governing permissions and
18
+ # limitations under the License.
19
+ #
20
+
21
+ actions :discover, :add, :update, :remove
22
+
23
+ attribute :channel_name, :kind_of => String, :name_attribute => true
24
+ attribute :channel_xml, :kind_of => String
25
+
26
+ # TODO add authenticated channel support!
27
+ # attribute :username, :kind_of => String
28
+ # attribute :password, :kind_of => String
@@ -0,0 +1,4 @@
1
+ extension=apc.so
2
+ apc.shm_size=128M
3
+ apc.enable_cli=1
4
+ apc.rfc1867 = 1
@@ -0,0 +1 @@
1
+ extension=memcached.so
@@ -0,0 +1 @@
1
+ extension=mongo.so
@@ -0,0 +1,39 @@
1
+ zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
2
+
3
+ ; General config
4
+ ;Dumps local variables on exception
5
+ xdebug.show_local_vars=On
6
+ ;Dump server variables
7
+ ;xdebug.dump.SERVER=*
8
+ ;Dump global variables
9
+ ;xdebug.dump_globals=On
10
+ ;xdebug.collect_params=4;
11
+
12
+ ; Tracing
13
+ ;xdebug.auto_trace=On
14
+ ;xdebug.trace_output_dir= /opt/local/php_traces/
15
+ xdebug.trace_output_dir=/tmp
16
+ xdebug.show_mem_delta=On
17
+ xdebug.collect_return=On
18
+
19
+ ; Profiler
20
+ ;xdebug.profiler_enable=1
21
+ xdebug.profiler_enable_trigger = on
22
+ ;xdebug.profiler_output_dir=/opt/local/php_traces
23
+ xdebug.profiler_output_dir=/tmp
24
+
25
+ ; Set the filenames generated by xdebug to use REQUEST_URI instead of the apache process number
26
+ ; so all requests to the same page end up in the same file.
27
+ xdebug.profiler_output_name = cachegrind.out.%R
28
+ ; Settle for this since Macport's php 5.2 version has a bug that prevents %R from working.
29
+ xdebug.profiler_output_name = cachegrind.out.%s_%t
30
+
31
+ ; Set xdebug to append data to files instead of overwriting, this means you can view aggregate
32
+ ; function calls over multiple requests.
33
+ xdebug.profiler_append = TRUE
34
+
35
+ ; Debugging. You might need to specify your host with some additional options
36
+ xdebug.remote_enable=1
37
+ xdebug.remote_autostart = 1
38
+ xdebug.remote_host=127.0.0.1
39
+ xdebug.remote_port=9000
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>KeepAlive</key>
6
+ <true/>
7
+ <key>Label</key>
8
+ <string>net.php.php-fpm</string>
9
+ <key>LaunchOnlyOnce</key>
10
+ <true/>
11
+ <key>ProgramArguments</key>
12
+ <array>
13
+ <string>/usr/local/sbin/php-fpm</string>
14
+ <string>-y /usr/local/etc/php5/fpm/php-fpm.conf</string>
15
+ </array>
16
+ <key>RunAtLoad</key>
17
+ <true/>
18
+ <key>ServiceDescription</key>
19
+ <string>PHP FastCGI Process Manager</string>
20
+ <key>StandardErrorPath</key>
21
+ <string>/usr/local/var/log/php.log</string>
22
+ </dict>
23
+ </plist>