megalodon 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -0
- data/README.md +80 -0
- data/bin/megalodon +68 -0
- data/config/rake.rb +60 -0
- data/config/run_list.json +5 -0
- data/config/run_vhosts.json +5 -0
- data/config/solo.rb +20 -0
- data/cookbooks/dnsmasq/recipies/default.rb +28 -0
- data/cookbooks/elasticsearch/recipies/default.rb +23 -0
- data/cookbooks/erlang/README.rdoc +8 -0
- data/cookbooks/erlang/metadata.rb +6 -0
- data/cookbooks/erlang/recipes/default.rb +8 -0
- data/cookbooks/git/README.rdoc +8 -0
- data/cookbooks/git/metadata.rb +6 -0
- data/cookbooks/git/recipes/default.rb +24 -0
- data/cookbooks/git/templates/default/dot.gitconfig.erb +47 -0
- data/cookbooks/homebrew/README.rdoc +73 -0
- data/cookbooks/homebrew/libraries/homebrew_package.rb +85 -0
- data/cookbooks/homebrew/metadata.json +33 -0
- data/cookbooks/homebrew/metadata.rb +9 -0
- data/cookbooks/homebrew/recipes/default.rb +11 -0
- data/cookbooks/jenkins/metadata.rb +9 -0
- data/cookbooks/jenkins/recipes/default.rb +21 -0
- data/cookbooks/maatkit/recipes/default.rb +10 -0
- data/cookbooks/megalodon/attributes/default.rb +3 -0
- data/cookbooks/megalodon/definitions/megalodon_app.rb +21 -0
- data/cookbooks/megalodon/recipes/apache_vhosts.rb +46 -0
- data/cookbooks/megalodon/recipes/default.rb +55 -0
- data/cookbooks/megalodon/recipes/misc.rb +14 -0
- data/cookbooks/megalodon/templates/default/default.conf.erb +26 -0
- data/cookbooks/megalodon/templates/default/default.json.erb +5 -0
- data/cookbooks/megalodon/templates/default/dot.profile.erb +22 -0
- data/cookbooks/megalodon/templates/default/php5.conf.erb +12 -0
- data/cookbooks/megalodon/templates/default/vhost.conf.erb +28 -0
- data/cookbooks/memcached/README.rdoc +8 -0
- data/cookbooks/memcached/metadata.rb +2 -0
- data/cookbooks/memcached/recipes/default.rb +9 -0
- data/cookbooks/mongodb/recipes/default.rb +23 -0
- data/cookbooks/mvim/README.rdoc +8 -0
- data/cookbooks/mvim/metadata.rb +6 -0
- data/cookbooks/mvim/recipes/default.rb +47 -0
- data/cookbooks/mvim/templates/default/dot.vimrc.erb +23 -0
- data/cookbooks/mysql/README.rdoc +143 -0
- data/cookbooks/mysql/attributes/server.rb +58 -0
- data/cookbooks/mysql/metadata.rb +78 -0
- data/cookbooks/mysql/recipes/default.rb +24 -0
- data/cookbooks/mysql/recipes/mariadb.rb +41 -0
- data/cookbooks/mysql/templates/default/my.cnf.erb +161 -0
- data/cookbooks/nginx/recipes/default.rb +66 -0
- data/cookbooks/nginx/templates/default/app_nginx.conf.erb +42 -0
- data/cookbooks/nginx/templates/default/default.conf.erb +40 -0
- data/cookbooks/nginx/templates/default/fastcgi_params.erb +23 -0
- data/cookbooks/nginx/templates/default/nginx.conf.erb +33 -0
- data/cookbooks/node/README.rdoc +8 -0
- data/cookbooks/node/metadata.rb +6 -0
- data/cookbooks/node/recipes/default.rb +12 -0
- data/cookbooks/php/attributes/default.rb +3 -0
- data/cookbooks/php/metadata.rb +2 -0
- data/cookbooks/php/providers/pear.rb +229 -0
- data/cookbooks/php/providers/pear_channel.rb +91 -0
- data/cookbooks/php/recipes/default.rb +25 -0
- data/cookbooks/php/recipes/fpm.rb +45 -0
- data/cookbooks/php/recipes/module_apc.rb +12 -0
- data/cookbooks/php/recipes/module_memcached.rb +12 -0
- data/cookbooks/php/recipes/module_mongo.rb +11 -0
- data/cookbooks/php/recipes/module_xdebug.rb +11 -0
- data/cookbooks/php/resources/pear.rb +28 -0
- data/cookbooks/php/resources/pear_channel.rb +28 -0
- data/cookbooks/php/templates/default/mods/apc.ini.erb +4 -0
- data/cookbooks/php/templates/default/mods/memcached.ini.erb +1 -0
- data/cookbooks/php/templates/default/mods/mongo.ini.erb +1 -0
- data/cookbooks/php/templates/default/mods/xdebug.ini.erb +39 -0
- data/cookbooks/php/templates/default/net.php.php-fpm.plist.erb +23 -0
- data/cookbooks/php/templates/default/php-fpm.conf.erb +323 -0
- data/cookbooks/php/templates/default/php.ini.erb +1854 -0
- data/cookbooks/php.tgz +0 -0
- data/cookbooks/phpunit/metadata.rb +8 -0
- data/cookbooks/phpunit/recipes/default.rb +38 -0
- data/cookbooks/python/README.rdoc +8 -0
- data/cookbooks/python/metadata.rb +6 -0
- data/cookbooks/python/recipes/default.rb +6 -0
- data/cookbooks/redis/recipes/default.rb +23 -0
- data/cookbooks/siege/recipes/default.rb +4 -0
- data/cookbooks/solr/metadata.json +36 -0
- data/cookbooks/solr/metadata.rb +9 -0
- data/cookbooks/solr/recipes/default.rb +18 -0
- data/cookbooks/varnish/attributes/default.rb +2 -0
- data/cookbooks/varnish/recipes/default.rb +24 -0
- data/cookbooks/varnish/templates/default/default.vcl.erb +268 -0
- data/cookbooks/varnish/templates/default/ubuntu-default.erb +103 -0
- data/cookbooks/xhprof/metadata.json +36 -0
- data/cookbooks/xhprof/metadata.rb +12 -0
- data/cookbooks/xhprof/recipes/default.rb +43 -0
- data/cookbooks/xhprof/templates/default/xhprof.ini.erb +2 -0
- data/formulas/apc.rb +63 -0
- data/formulas/cclient.rb +57 -0
- data/formulas/megalodon.rb +27 -0
- data/formulas/memcached-php.rb +24 -0
- data/formulas/mongo-php.rb +25 -0
- data/formulas/mongodb-php.rb +31 -0
- data/formulas/php-memcached.rb +31 -0
- data/formulas/php.rb +261 -0
- data/formulas/xdebug.rb +36 -0
- data/formulas/xhprof.rb +33 -0
- data/lib/megalodon/version.rb +3 -0
- data/megalodon.gemspec +14 -0
- data/roles/nginx_web_server.json +23 -0
- data/roles/web_server.json +19 -0
- metadata +170 -0
data/formulas/apc.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class Apc < Formula
|
4
|
+
url 'http://pecl.php.net/get/APC-3.1.9.tgz'
|
5
|
+
homepage 'http://pecl.php.net/package/apc'
|
6
|
+
md5 'a2cf7fbf6f3a87f190d897a53260ddaa'
|
7
|
+
|
8
|
+
depends_on 'pcre'
|
9
|
+
depends_on 'autoconf' => :build
|
10
|
+
|
11
|
+
def patches
|
12
|
+
# fixes "PHP Fatal error: Unknown: apc_fcntl_unlock failed: in Unknown on line 0"
|
13
|
+
# this has been fixed in the APC trunk but has not been released yet (as of 3.1.9)
|
14
|
+
# https://bugs.php.net/bug.php?id=59750
|
15
|
+
DATA
|
16
|
+
end
|
17
|
+
|
18
|
+
def install
|
19
|
+
extensions = lib + %x[php-config --extension-dir].split('lib/')[1].strip
|
20
|
+
|
21
|
+
Dir.chdir "APC-#{version}" do
|
22
|
+
system "phpize"
|
23
|
+
system "./configure", "--prefix=#{prefix}"
|
24
|
+
system "make"
|
25
|
+
|
26
|
+
prefix.install "apc.php"
|
27
|
+
extensions.install "modules/apc.so"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def caveats; <<-EOS.undent
|
32
|
+
To finish installing APC:
|
33
|
+
* Add the following lines to php.ini:
|
34
|
+
[apc]
|
35
|
+
extension="#{prefix}/apc.so"
|
36
|
+
apc.enabled=1
|
37
|
+
apc.shm_segments=1
|
38
|
+
apc.shm_size=64M
|
39
|
+
apc.ttl=7200
|
40
|
+
apc.user_ttl=7200
|
41
|
+
apc.num_files_hint=1024
|
42
|
+
apc.mmap_file_mask=/tmp/apc.XXXXXX
|
43
|
+
apc.enable_cli=1
|
44
|
+
* Restart your webserver
|
45
|
+
* Copy "#{prefix}/apc.php" to any site to see APC's usage.
|
46
|
+
EOS
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
__END__
|
51
|
+
diff --git a/APC-3.1.9/apc_lock.h b/APC-3.1.9/apc_lock.h
|
52
|
+
index 77f66d5..aafa3b7 100644
|
53
|
+
--- a/APC-3.1.9/apc_lock.h
|
54
|
+
+++ b/APC-3.1.9/apc_lock.h
|
55
|
+
@@ -154,7 +154,7 @@
|
56
|
+
# define apc_lck_nb_lock(a) apc_fcntl_nonblocking_lock(a TSRMLS_CC)
|
57
|
+
# define apc_lck_rdlock(a) apc_fcntl_rdlock(a TSRMLS_CC)
|
58
|
+
# define apc_lck_unlock(a) apc_fcntl_unlock(a TSRMLS_CC)
|
59
|
+
-# define apc_lck_rdunlock(a) apc_fcntl_unlock(&a TSRMLS_CC)
|
60
|
+
+# define apc_lck_rdunlock(a) apc_fcntl_unlock(a TSRMLS_CC)
|
61
|
+
#endif
|
62
|
+
|
63
|
+
#endif
|
data/formulas/cclient.rb
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class Cclient <Formula
|
4
|
+
url 'ftp://ftp.cac.washington.edu/mail/imap.tar.Z'
|
5
|
+
homepage 'http://www.washington.edu/imap/'
|
6
|
+
md5 'd9f7fd4e1d93ad9fca1df8717a79d1c5'
|
7
|
+
version '2007e'
|
8
|
+
|
9
|
+
def patches; DATA; end
|
10
|
+
|
11
|
+
def install
|
12
|
+
# make breaks with -j option
|
13
|
+
system "/usr/bin/make", "oxp","MAKEFLAGS="
|
14
|
+
system "install -m 755 -d #{prefix}/include/c-client"
|
15
|
+
system "cd c-client; install -m 644 \
|
16
|
+
c-client.h dummy.h env.h env_unix.h fdstring.h flockcyg.h flocksim.h \
|
17
|
+
flstring.h fs.h ftl.h imap4r1.h linkage.c linkage.h mail.h \
|
18
|
+
misc.h netmsg.h newsrc.h nl.h nntp.h osdep.h \
|
19
|
+
pseudo.h rfc822.h smtp.h sslio.h tcp.h tcp_unix.h unix.h \
|
20
|
+
utf8.h utf8aux.h \
|
21
|
+
#{prefix}/include/c-client"
|
22
|
+
lib.install "c-client/c-client.a" => "libc-client4.a"
|
23
|
+
#system "ranlib #{prefix}/lib/libc-client4.a"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
__END__
|
28
|
+
diff --git a/Makefile b/Makefile
|
29
|
+
index e6e4987..d75306c 100644
|
30
|
+
--- a/Makefile
|
31
|
+
+++ b/Makefile
|
32
|
+
@@ -418,7 +418,7 @@ oxp: an
|
33
|
+
$(TOUCH) ip6
|
34
|
+
$(BUILD) BUILDTYPE=osx IP=$(IP6) EXTRAAUTHENTICATORS="$(EXTRAAUTHENTICATORS) gss" \
|
35
|
+
PASSWDTYPE=pam \
|
36
|
+
- EXTRACFLAGS="$(EXTRACFLAGS) -DMAC_OSX_KLUDGE=1" \
|
37
|
+
+ EXTRACFLAGS="$(EXTRACFLAGS)" \
|
38
|
+
SPECIALS="SSLINCLUDE=/usr/include/openssl SSLLIB=/usr/lib SSLCERTS=/System/Library/OpenSSL/certs SSLKEYS=/System/Library/OpenSSL/private GSSINCLUDE=/usr/include GSSLIB=/usr/lib PAMDLFLAGS=-lpam"
|
39
|
+
|
40
|
+
osx: osxok an
|
41
|
+
diff --git a/src/osdep/unix/ckp_pam.c b/src/osdep/unix/ckp_pam.c
|
42
|
+
index 60c6c1f..674941c 100644
|
43
|
+
--- a/src/osdep/unix/ckp_pam.c
|
44
|
+
+++ b/src/osdep/unix/ckp_pam.c
|
45
|
+
@@ -27,11 +27,7 @@
|
46
|
+
*/
|
47
|
+
|
48
|
+
|
49
|
+
-#ifdef MAC_OSX_KLUDGE /* why can't Apple be compatible? */
|
50
|
+
-#include <pam/pam_appl.h>
|
51
|
+
-#else
|
52
|
+
#include <security/pam_appl.h>
|
53
|
+
-#endif
|
54
|
+
|
55
|
+
struct checkpw_cred {
|
56
|
+
char *uname; /* user name */
|
57
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class Megalodon <Formula
|
4
|
+
head 'git://github.com/msonnabaum/megalodon.git'
|
5
|
+
homepage 'https://github.com/msonnabaum/megalodon'
|
6
|
+
|
7
|
+
def patches; DATA; end
|
8
|
+
|
9
|
+
def install
|
10
|
+
prefix.install Dir['config', 'cookbooks', 'formulas', 'roles']
|
11
|
+
bin.install "megalodon"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
__END__
|
16
|
+
diff --git a/megalodon b/megalodon
|
17
|
+
index f04db01..da7d117 100755
|
18
|
+
--- a/megalodon
|
19
|
+
+++ b/megalodon
|
20
|
+
@@ -54,7 +54,7 @@ end
|
21
|
+
directory_name = "#{ENV['HOME']}/.megalodon/data_bags/vhosts"
|
22
|
+
FileUtils.mkdir_p(directory_name) unless FileTest::directory?(directory_name)
|
23
|
+
|
24
|
+
-cwd = Dir.pwd
|
25
|
+
+cwd = `brew --prefix megalodon`.strip
|
26
|
+
|
27
|
+
chef_solo = which('chef-solo') || install_chef
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class MemcachedPhp < Formula
|
4
|
+
url 'http://pecl.php.net/get/memcached-1.0.2.tgz'
|
5
|
+
homepage 'http://pecl.php.net/package/memcached'
|
6
|
+
md5 'b91f815ad59086d0c3564cce022b5c4f'
|
7
|
+
|
8
|
+
def install
|
9
|
+
Dir.chdir "memcached-#{version}" do
|
10
|
+
system "phpize"
|
11
|
+
system "./configure", "--prefix=#{prefix}"
|
12
|
+
system "make"
|
13
|
+
prefix.install 'modules/memcached.so'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def caveats; <<-EOS.undent
|
18
|
+
To finish installing memcached:
|
19
|
+
* Add the following line to php.ini:
|
20
|
+
extension="#{prefix}/memcached.so"
|
21
|
+
* Restart your webserver
|
22
|
+
EOS
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class MongoPhp < Formula
|
4
|
+
url 'http://pecl.php.net/get/mongo-1.1.4.tgz'
|
5
|
+
homepage 'http://pecl.php.net/package/mongo'
|
6
|
+
md5 '22f1e25690589f6d80d5ed29e56644eb'
|
7
|
+
|
8
|
+
def install
|
9
|
+
Dir.chdir "mongo-#{version}" do
|
10
|
+
system "phpize"
|
11
|
+
system "./configure", "--prefix=#{prefix}"
|
12
|
+
system "make"
|
13
|
+
prefix.install "modules/mongo.so"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def caveats; <<-EOS.undent
|
18
|
+
To finish installing MongoDB extension:
|
19
|
+
* Add the following lines to #{etc}/php.ini:
|
20
|
+
[mongo]
|
21
|
+
extension="#{prefix}/mongo.so"
|
22
|
+
* Restart your webserver
|
23
|
+
EOS
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class MongodbPhp <Formula
|
4
|
+
url 'http://pecl.php.net/get/mongo-1.2.2.tgz'
|
5
|
+
homepage 'http://pecl.php.net/package/mongo'
|
6
|
+
md5 'b589a922222bfe5a13e5b18359e87437'
|
7
|
+
|
8
|
+
depends_on 'mongodb'
|
9
|
+
depends_on 'autoconf' => :build
|
10
|
+
|
11
|
+
def install
|
12
|
+
extensions = lib + %x[php-config --extension-dir].split('lib/')[1].strip
|
13
|
+
Dir.chdir "mongo-#{version}" do
|
14
|
+
system "phpize"
|
15
|
+
system "./configure", "--prefix=#{prefix}"
|
16
|
+
system "make"
|
17
|
+
|
18
|
+
extensions.install "modules/mongo.so"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def caveats; <<-EOS.undent
|
24
|
+
To finish installing mongodb:
|
25
|
+
* Add the following lines to php.ini:
|
26
|
+
[mongodb]
|
27
|
+
extension="#{prefix}/mongo.so"
|
28
|
+
* Restart your webserver
|
29
|
+
EOS
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class PhpMemcached <Formula
|
4
|
+
url 'http://pecl.php.net/get/memcached-2.1.0.tgz'
|
5
|
+
homepage 'http://pecl.php.net/package/memcached'
|
6
|
+
md5 'daf070aad13bebffdff50acf6e93043c'
|
7
|
+
|
8
|
+
depends_on 'autoconf' => :build
|
9
|
+
depends_on 'libmemcached'
|
10
|
+
|
11
|
+
def install
|
12
|
+
extensions = lib + %x[php-config --extension-dir].split('lib/')[1].strip
|
13
|
+
Dir.chdir "memcached-#{version}" do
|
14
|
+
system "phpize"
|
15
|
+
system "./configure", "--prefix=#{prefix}"
|
16
|
+
system "make"
|
17
|
+
|
18
|
+
extensions.install "modules/memcached.so"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def caveats; <<-EOS.undent
|
24
|
+
To finish installing memcached:
|
25
|
+
* Add the following lines to php.ini:
|
26
|
+
[memcached]
|
27
|
+
extension="#{prefix}/memcached.so"
|
28
|
+
* Restart your webserver
|
29
|
+
EOS
|
30
|
+
end
|
31
|
+
end
|
data/formulas/php.rb
ADDED
@@ -0,0 +1,261 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
def mysql_installed?
|
4
|
+
`which mysql_config`.length > 0
|
5
|
+
end
|
6
|
+
|
7
|
+
class Php < Formula
|
8
|
+
url 'http://www.php.net/get/php-5.3.17.tar.gz/from/this/mirror'
|
9
|
+
homepage 'http://php.net/'
|
10
|
+
md5 '002e02e36c2cbcada8c49a7e5956d787'
|
11
|
+
version '5.3.17'
|
12
|
+
|
13
|
+
# So PHP extensions don't report missing symbols
|
14
|
+
skip_clean ['bin', 'sbin']
|
15
|
+
|
16
|
+
depends_on 'gettext'
|
17
|
+
depends_on 'readline' unless ARGV.include? '--without-readline'
|
18
|
+
depends_on 'libxml2'
|
19
|
+
depends_on 'jpeg'
|
20
|
+
depends_on 'libpng'
|
21
|
+
depends_on 'mcrypt'
|
22
|
+
depends_on 'libtool'
|
23
|
+
|
24
|
+
if ARGV.include? '--with-mysql'
|
25
|
+
depends_on 'mysql' unless mysql_installed?
|
26
|
+
end
|
27
|
+
if ARGV.include? '--with-fpm'
|
28
|
+
depends_on 'libevent'
|
29
|
+
end
|
30
|
+
if ARGV.include? '--with-pgsql'
|
31
|
+
depends_on 'postgresql'
|
32
|
+
end
|
33
|
+
if ARGV.include? '--with-mssql'
|
34
|
+
depends_on 'freetds'
|
35
|
+
end
|
36
|
+
if ARGV.include? '--with-intl'
|
37
|
+
depends_on 'icu4c'
|
38
|
+
end
|
39
|
+
if ARGV.include? '--with-imap'
|
40
|
+
depends_on 'cclient'
|
41
|
+
end
|
42
|
+
|
43
|
+
def options
|
44
|
+
[
|
45
|
+
['--with-mysql', 'Include MySQL support'],
|
46
|
+
['--with-pgsql', 'Include PostgreSQL support'],
|
47
|
+
['--with-mssql', 'Include MSSQL-DB support'],
|
48
|
+
['--with-fpm', 'Enable building of the fpm SAPI executable'],
|
49
|
+
['--with-apache', 'Build shared Apache 2.0 Handler module'],
|
50
|
+
['--with-intl', 'Include intl extension'],
|
51
|
+
['--without-readline', 'Build without readline support'],
|
52
|
+
['--with-imap', 'Include IMAP support.'],
|
53
|
+
['--with-cgi', 'Include CGI support.']
|
54
|
+
]
|
55
|
+
end
|
56
|
+
|
57
|
+
def patches; DATA; end
|
58
|
+
|
59
|
+
def install
|
60
|
+
ENV.x11 # For freetype and libpng
|
61
|
+
ENV.O3 # Speed things up
|
62
|
+
ENV["EXTENSION_DIR"] = "/usr/local/lib/php/extensions/no-debug-non-zts-20090626"
|
63
|
+
|
64
|
+
args = [
|
65
|
+
"--prefix=#{prefix}",
|
66
|
+
"--disable-debug",
|
67
|
+
"--disable-dependency-tracking",
|
68
|
+
"--with-config-file-path=#{HOMEBREW_PREFIX}/etc/php5",
|
69
|
+
"--with-config-file-scan-dir=#{HOMEBREW_PREFIX}/etc/php5/conf.d",
|
70
|
+
"--with-iconv-dir=/usr",
|
71
|
+
"--enable-exif",
|
72
|
+
"--enable-soap",
|
73
|
+
"--enable-sqlite-utf8",
|
74
|
+
"--enable-wddx",
|
75
|
+
"--enable-ftp",
|
76
|
+
"--enable-sockets",
|
77
|
+
"--enable-zip",
|
78
|
+
"--enable-pcntl",
|
79
|
+
"--enable-shmop",
|
80
|
+
"--enable-sysvsem",
|
81
|
+
"--enable-sysvshm",
|
82
|
+
"--enable-sysvmsg",
|
83
|
+
"--enable-memory-limit",
|
84
|
+
"--enable-mbstring",
|
85
|
+
"--enable-mbregex",
|
86
|
+
"--enable-bcmath",
|
87
|
+
"--enable-calendar",
|
88
|
+
"--enable-memcache",
|
89
|
+
"--enable-zend-multibyte",
|
90
|
+
"--with-openssl=/usr",
|
91
|
+
"--with-zlib=/usr",
|
92
|
+
"--with-bz2=/usr",
|
93
|
+
"--with-ldap",
|
94
|
+
"--with-ldap-sasl=/usr",
|
95
|
+
"--with-xmlrpc",
|
96
|
+
"--with-iodbc",
|
97
|
+
"--with-kerberos=/usr",
|
98
|
+
"--with-xsl=/usr",
|
99
|
+
"--with-curl=/usr",
|
100
|
+
"--with-gd",
|
101
|
+
"--with-snmp=/usr",
|
102
|
+
"--enable-gd-native-ttf",
|
103
|
+
"--with-mcrypt=#{Formula.factory('mcrypt').prefix}",
|
104
|
+
"--with-jpeg-dir=#{Formula.factory('jpeg').prefix}",
|
105
|
+
"--with-png-dir=/usr/X11",
|
106
|
+
"--with-gettext=#{Formula.factory('gettext').prefix}",
|
107
|
+
"--with-tidy",
|
108
|
+
"--mandir=#{man}"
|
109
|
+
]
|
110
|
+
|
111
|
+
# Bail if both php-fpm and apxs are enabled
|
112
|
+
# http://bugs.php.net/bug.php?id=52419
|
113
|
+
if (ARGV.include? '--with-fpm') && (ARGV.include? '--with-apache')
|
114
|
+
onoe "You can only enable PHP FPM or Apache, not both"
|
115
|
+
puts "http://bugs.php.net/bug.php?id=52419"
|
116
|
+
exit 99
|
117
|
+
end
|
118
|
+
|
119
|
+
# Enable PHP FPM
|
120
|
+
if ARGV.include? '--with-fpm'
|
121
|
+
args.push "--enable-fpm"
|
122
|
+
args.push "--with-fpm-conf=#{HOMEBREW_PREFIX}/etc/php5/fpm/php-fpm.conf"
|
123
|
+
end
|
124
|
+
|
125
|
+
# Build Apache module
|
126
|
+
if ARGV.include? '--with-apache'
|
127
|
+
args.push "--with-apxs2=/usr/sbin/apxs"
|
128
|
+
args.push "--libexecdir=#{prefix}/libexec"
|
129
|
+
end
|
130
|
+
|
131
|
+
if ARGV.include? '--with-mysql'
|
132
|
+
args.push "--with-mysql-sock=/tmp/mysql.sock"
|
133
|
+
args.push "--with-mysqli=mysqlnd"
|
134
|
+
args.push "--with-mysql=mysqlnd"
|
135
|
+
args.push "--with-pdo-mysql=mysqlnd"
|
136
|
+
end
|
137
|
+
|
138
|
+
if ARGV.include? '--with-pgsql'
|
139
|
+
args.push "--with-pgsql=#{Formula.factory('postgresql').prefix}"
|
140
|
+
args.push "--with-pdo-pgsql=#{Formula.factory('postgresql').prefix}"
|
141
|
+
end
|
142
|
+
|
143
|
+
if ARGV.include? '--with-mssql'
|
144
|
+
args.push "--with-mssql=#{Formula.factory('freetds').prefix}"
|
145
|
+
end
|
146
|
+
|
147
|
+
if ARGV.include? '--with-intl'
|
148
|
+
args.push "--enable-intl"
|
149
|
+
args.push "--with-icu-dir=#{Formula.factory('icu4c').prefix}"
|
150
|
+
end
|
151
|
+
|
152
|
+
if ARGV.include? '--with-imap'
|
153
|
+
args.push "--with-imap=#{Formula.factory('cclient').prefix}"
|
154
|
+
args.push "--with-imap-ssl=#{Formula.factory('cclient').prefix}"
|
155
|
+
end
|
156
|
+
|
157
|
+
if ARGV.include? '--with-cgi'
|
158
|
+
unless (ARGV.include? '--with-fpm') && (ARGV.include? '--with-apache')
|
159
|
+
args.push "--enable-cgi"
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
args.push "--with-readline=#{Formula.factory('readline').prefix}" unless ARGV.include? '--without-readline'
|
164
|
+
|
165
|
+
system "./configure", *args
|
166
|
+
|
167
|
+
unless ARGV.include? '--without-apache'
|
168
|
+
# Use Homebrew prefix for the Apache libexec folder
|
169
|
+
inreplace "Makefile",
|
170
|
+
"INSTALL_IT = $(mkinstalldirs) '$(INSTALL_ROOT)/usr/libexec/apache2' && $(mkinstalldirs) '$(INSTALL_ROOT)/private/etc/apache2' && /usr/sbin/apxs -S LIBEXECDIR='$(INSTALL_ROOT)/usr/libexec/apache2' -S SYSCONFDIR='$(INSTALL_ROOT)/private/etc/apache2' -i -a -n php5 libs/libphp5.so",
|
171
|
+
"INSTALL_IT = $(mkinstalldirs) '#{prefix}/libexec/apache2' && $(mkinstalldirs) '$(INSTALL_ROOT)/private/etc/apache2' && /usr/sbin/apxs -S LIBEXECDIR='#{prefix}/libexec/apache2' -S SYSCONFDIR='$(INSTALL_ROOT)/private/etc/apache2' -i -a -n php5 libs/libphp5.so"
|
172
|
+
end
|
173
|
+
|
174
|
+
if ARGV.include? '--with-intl'
|
175
|
+
inreplace 'Makefile' do |s|
|
176
|
+
s.change_make_var! "EXTRA_LIBS", "\\1 -lstdc++"
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
system "make"
|
181
|
+
system "make install"
|
182
|
+
|
183
|
+
if ARGV.include? '--with-cgi'
|
184
|
+
if ARGV.include? '--with-fpm'
|
185
|
+
args.delete "--enable-fpm"
|
186
|
+
args.delete "--with-fpm-conf=#{HOMEBREW_PREFIX}/etc/php5/fpm/php-fpm.conf"
|
187
|
+
end
|
188
|
+
|
189
|
+
if ARGV.include? '--with-apache'
|
190
|
+
args.delete "--with-apxs2=/usr/sbin/apxs"
|
191
|
+
args.delete "--libexecdir=#{prefix}/libexec"
|
192
|
+
end
|
193
|
+
|
194
|
+
args.push "--enable-cgi"
|
195
|
+
system "./configure", *args
|
196
|
+
system "make"
|
197
|
+
system "make install"
|
198
|
+
end
|
199
|
+
|
200
|
+
(prefix+'etc/php5').install "php.ini-production" => "php.ini"
|
201
|
+
|
202
|
+
if ARGV.include? '--with-fpm'
|
203
|
+
(prefix+'org.php.php-fpm.plist').write startup_plist
|
204
|
+
system "cp #{prefix}/etc/php-fpm.conf.default #{prefix}/etc/php-fpm.conf"
|
205
|
+
(prefix+'var/log').mkpath
|
206
|
+
touch prefix+'var/log/php-fpm.log'
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def caveats; <<-EOS
|
211
|
+
For 10.5 and Apache:
|
212
|
+
Apache needs to run in 32-bit mode. You can either force Apache to start
|
213
|
+
in 32-bit mode or you can thin the Apache executable.
|
214
|
+
|
215
|
+
To enable PHP in Apache add the following to httpd.conf and restart Apache:
|
216
|
+
LoadModule php5_module #{prefix}/libexec/apache2/libphp5.so
|
217
|
+
|
218
|
+
The php.ini file can be found in:
|
219
|
+
#{prefix}/etc/php5/php.ini
|
220
|
+
EOS
|
221
|
+
end
|
222
|
+
|
223
|
+
def startup_plist; <<-EOPLIST.undent
|
224
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
225
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
226
|
+
<plist version="1.0">
|
227
|
+
<dict>
|
228
|
+
<key>Label</key>
|
229
|
+
<string>org.php.php-fpm</string>
|
230
|
+
<key>Program</key>
|
231
|
+
<string>#{sbin}/php-fpm</string>
|
232
|
+
<key>RunAtLoad</key>
|
233
|
+
<true/>
|
234
|
+
</dict>
|
235
|
+
</plist>
|
236
|
+
EOPLIST
|
237
|
+
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
__END__
|
242
|
+
diff -Naur php-5.3.2/ext/tidy/tidy.c php/ext/tidy/tidy.c
|
243
|
+
--- php-5.3.2/ext/tidy/tidy.c 2010-02-12 04:36:40.000000000 +1100
|
244
|
+
+++ php/ext/tidy/tidy.c 2010-05-23 19:49:47.000000000 +1000
|
245
|
+
@@ -22,6 +22,8 @@
|
246
|
+
#include "config.h"
|
247
|
+
#endif
|
248
|
+
|
249
|
+
+#include "tidy.h"
|
250
|
+
+
|
251
|
+
#include "php.h"
|
252
|
+
#include "php_tidy.h"
|
253
|
+
|
254
|
+
@@ -31,7 +33,6 @@
|
255
|
+
#include "ext/standard/info.h"
|
256
|
+
#include "safe_mode.h"
|
257
|
+
|
258
|
+
-#include "tidy.h"
|
259
|
+
#include "buffio.h"
|
260
|
+
|
261
|
+
/* compatibility with older versions of libtidy */
|
data/formulas/xdebug.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class Xdebug < Formula
|
4
|
+
url 'http://xdebug.org/files/xdebug-2.1.1.tgz'
|
5
|
+
homepage 'http://xdebug.org'
|
6
|
+
md5 'fcdf078e715f44b77f13bac721ad63ce'
|
7
|
+
|
8
|
+
depends_on 'autoconf' => :build
|
9
|
+
|
10
|
+
def install
|
11
|
+
extensions = lib + %x[php-config --extension-dir].split('lib/')[1].strip
|
12
|
+
|
13
|
+
Dir.chdir "xdebug-#{version}" do
|
14
|
+
# See https://github.com/mxcl/homebrew/issues/issue/69
|
15
|
+
ENV.universal_binary
|
16
|
+
|
17
|
+
system "phpize"
|
18
|
+
system "./configure", "--disable-debug", "--disable-dependency-tracking",
|
19
|
+
"--prefix=#{prefix}",
|
20
|
+
"--enable-xdebug"
|
21
|
+
system "make"
|
22
|
+
extensions.install "modules/xdebug.so"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def caveats; <<-EOS.undent
|
27
|
+
To use this software:
|
28
|
+
* Add the following line to php.ini:
|
29
|
+
zend_extension="#{prefix}/xdebug.so"
|
30
|
+
* Restart your webserver.
|
31
|
+
* Write a PHP page that calls "phpinfo();"
|
32
|
+
* Load it in a browser and look for the info on the xdebug module.
|
33
|
+
* If you see it, you have been successful!
|
34
|
+
EOS
|
35
|
+
end
|
36
|
+
end
|
data/formulas/xhprof.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'formula'
|
2
|
+
|
3
|
+
class Xhprof <Formula
|
4
|
+
url 'http://pecl.php.net/get/xhprof-0.9.2.tgz'
|
5
|
+
homepage 'http://mirror.facebook.net/facebook/xhprof/doc.html'
|
6
|
+
md5 'ae40b153d157e6369a32e2c1a59a61ec'
|
7
|
+
|
8
|
+
depends_on 'pcre'
|
9
|
+
depends_on 'autoconf' => :build
|
10
|
+
|
11
|
+
def install
|
12
|
+
extensions = lib + %x[php-config --extension-dir].split('lib/')[1].strip
|
13
|
+
|
14
|
+
Dir.chdir "xhprof-#{version}/extension" do
|
15
|
+
system "phpize"
|
16
|
+
system "./configure", "--prefix=#{prefix}"
|
17
|
+
system "make"
|
18
|
+
extensions.install 'modules/xhprof.so'
|
19
|
+
end
|
20
|
+
Dir.chdir "xhprof-#{version}" do
|
21
|
+
prefix.install %w(xhprof_html xhprof_lib)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def caveats; <<-EOS.undent
|
26
|
+
To finish installing XHProf:
|
27
|
+
* Add the following lines to php.ini:
|
28
|
+
[xhprof]
|
29
|
+
extension="#{prefix}/xhprof.so"
|
30
|
+
* Restart your webserver
|
31
|
+
EOS
|
32
|
+
end
|
33
|
+
end
|
data/megalodon.gemspec
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
require "megalodon/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "megalodon"
|
6
|
+
s.version = Megalodon::VERSION
|
7
|
+
s.summary = "Setup a modern PHP development environment on Mac."
|
8
|
+
s.homepage = "http://msonnabaum.github.com/megalodon/"
|
9
|
+
s.authors = ['Mark Sonnabaum', 'Glenn Pratt']
|
10
|
+
s.files = `git ls-files`.split($\)
|
11
|
+
s.executables = `git ls-files bin | cut -c5-`.split($\)
|
12
|
+
|
13
|
+
s.add_dependency "chef", "~> 10.24.0"
|
14
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"name": "nginx_web_server",
|
3
|
+
"default_attributes": {
|
4
|
+
},
|
5
|
+
"json_class": "Chef::Role",
|
6
|
+
"default": {
|
7
|
+
},
|
8
|
+
"override": {
|
9
|
+
},
|
10
|
+
"run_list": [
|
11
|
+
"recipe[nginx]",
|
12
|
+
"recipe[mysql::mariadb]",
|
13
|
+
"recipe[php::fpm]",
|
14
|
+
"recipe[php::module_apc]",
|
15
|
+
"recipe[php::module_memcached]",
|
16
|
+
"recipe[php::module_xdebug]",
|
17
|
+
"recipe[xhprof]"
|
18
|
+
],
|
19
|
+
"description": "",
|
20
|
+
"chef_type": "role",
|
21
|
+
"override_attributes": {
|
22
|
+
}
|
23
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{
|
2
|
+
"name": "web_server",
|
3
|
+
"default_attributes": {
|
4
|
+
},
|
5
|
+
"json_class": "Chef::Role",
|
6
|
+
"run_list": [
|
7
|
+
"recipe[mysql::mariadb]",
|
8
|
+
"recipe[php]",
|
9
|
+
"recipe[php::module_apc]",
|
10
|
+
"recipe[php::module_memcached]",
|
11
|
+
"recipe[php::module_xdebug]",
|
12
|
+
"recipe[xhprof]",
|
13
|
+
"recipe[megalodon::apache_vhosts]"
|
14
|
+
],
|
15
|
+
"description": "",
|
16
|
+
"chef_type": "role",
|
17
|
+
"override_attributes": {
|
18
|
+
}
|
19
|
+
}
|