mamp-buildout
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:MacOS/Apache/MySQL/PHP (MAMP) buildout
MAMP-buildout
==============
Install Apache/MySQL/PHP stack on your Mac for development purposes.

**PHP 5.2/5.3/5.4 support!**

Works on OSX 10.9.5 / Xcode 6.0.1 


Installation
-------------

### Prerequisites

1. Make sure you have latest Xcode installed, otherwise all compilation stuff will fail.
2. At least Python 2.7 is installed python2.7
3. Install requred MySQL version via [brew](http://mxcl.github.com/homebrew/)

### Run bootstrap.py

```bash

[bananos@amber]$ git clone git@github.com:bananos/mamp-buildout.git
[bananos@amber]$ cd mamp-buildout

[bananos@amber]$ /usr/bin/python2.7 bootstrap.py
Creating directory '/Users/bananos/Projects/github/mamp-buildout/bin'.
Creating directory '/Users/bananos/Projects/github/mamp-buildout/parts'.
Creating directory '/Users/bananos/Projects/github/mamp-buildout/eggs'.
Creating directory '/Users/bananos/Projects/github/mamp-buildout/develop-eggs'.
Generated script '/Users/bananos/Projects/github/mamp-buildout/bin/buildout'.
```

### Specify your user/group

Open ``buildout.cfg``,  navigate to ``[buildout]`` section and modify some lines:

```ini

[buildout]
# We extend the buildout-development.cfg configuration
extends = buildout-base.cfg

# you should specify your user here
user  = bananos
group = staff

[mysql]
version = 5.5.30
# Override default mysql port
port = 3305
# brew installed mysql
basedir = /usr/local/Cellar/mysql55/5.5.30/

```
Save and proceed to next step.

### Run buildout

```bash

[bananos@amber]$ bin/buildout
```

Grab a cup of coffee & wait for a while for parts to compile. On core i5 mac it takes about 20min.


### Run supervisor

Once compilation is done, run [supervisor](http://supervisord.org), a client/server system that allows its users
to monitor and control a number of processes on UNIX-like operating systems.

```bash

[bananos@amber]$ bin/supervisord
```

Once supervisor daemon starts, you've already started mysql & apache processes. You can check them out:

```bash

[bananos@amber]$ bin/supervisorctl status
httpd                            RUNNING    pid 46002, uptime 0:00:08
mysqld                           RUNNING    pid 46003, uptime 0:00:08
```


### Test it in your browser

Go to ``var/www``  and create a simple ``index.php``:

```php


```

Open your browser at ``http://localhost:8080``, you should see PHP info page.


Project structure
------------------

After successful buildout you'll end up with something like this:

```bash

[bananos@amber]$ ls -l
 README.md
 bin
 bootstrap.py
 buildout-base.cfg
 buildout.cfg
 develop-eggs
 eggs
 etc             # <---- configuration for mysql/php/apache/supervisor
 parts           # <---- binary distributions live there
 templates       # <---- configuration templates
 thirdparty      # <---- source code & recipe downloads
 var             # <---- mysql data, PIDs, logs, www-root, etc.
```

**Note:**  To tune configuration for mysql/php or apache you should modify files in ``templates/``,
not in ``etc/`` which is recreated each time buildout is run.


Working with MySQL
-------------------

``mysql`` and ``mysqladmin`` are symlinked into ``bin/`` for convenience.


```bash

[bananos@amber]$ bin/mysql --protocol=TCP -u root --port=3305 --host=localhost

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.60-innodb-plugin-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> status
--------------
bin/mysql  Ver 14.14 Distrib 5.1.60, for apple-darwin11.3.0 (i386) using  EditLine wrapper

Connection id:		  1
Current database:
Current user:		  root@localhost
SSL:			      Not in use
Current pager:		  stdout
Using outfile:		  ''
Using delimiter:	  ;
Server version:		  5.1.60-innodb-plugin-log Source distribution
Protocol version:	  10
Connection:		      localhost via TCP/IP
Server characterset:  utf8
Db     characterset:  utf8
Client characterset:  utf8
Conn.  characterset:  utf8
TCP port:		      3305
Uptime:			      2 min 22 sec

Threads: 1  Questions: 4  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.28
--------------

mysql>
```

**Note:**  MySQL is compiled to listen on non-default ``3305`` port


Logs
-----
All logging happens to be in ``var/log/`` directory:

```bash

[bananos@amber]$ ls -l var/log/
total 32
-rw-r--r--  1 bananos  staff  1531 Feb  9 16:30 httpd.stdout.log
-rw-r--r--  1 bananos  staff     0 Feb  9 16:30 httpd_access.log
-rw-rw----  1 bananos  staff   303 Feb  9 16:30 mysqld-5.1.60.slow.log
-rw-r--r--  1 bananos  staff   925 Feb  9 16:30 mysqld-5.1.60.stdout.log
-rw-r--r--  1 bananos  staff   736 Feb  9 16:31 supervisord.log
```

MySQL/Apache stdout/stderr logs are intercepted by supervisor:

```bash

[bananos@amber]$ bin/supervisorctl tail httpd

httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.99.249 for ServerName
[Thu Feb 09 16:30:40 2012] [info] Init: Seeding PRNG with 144 bytes of entropy
[Thu Feb 09 16:30:40 2012] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Thu Feb 09 16:30:40 2012] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Thu Feb 09 16:30:40 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Feb 09 16:30:40 2012] [info] Init: Initializing (virtual) servers for SSL
[Thu Feb 09 16:30:40 2012] [info] mod_ssl/2.2.22 compiled against Server: Apache/2.2.22, Library: OpenSSL/0.9.8r
httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.99.249 for ServerName
[Thu Feb 09 16:30:40 2012] [info] Init: Seeding PRNG with 144 bytes of entropy
[Thu Feb 09 16:30:40 2012] [info] Init: Generating temporary RSA private keys (512/1024 bits)
[Thu Feb 09 16:30:40 2012] [info] Init: Generating temporary DH parameters (512/1024 bits)
[Thu Feb 09 16:30:40 2012] [info] Init: Initializing (virtual) servers for SSL
[Thu Feb 09 16:30:40 2012] [info] mod_ssl/2.2.22 compiled against Server: Apache/2.2.22, Library: OpenSSL/0.9.8r
[Thu Feb 09 16:30:40 2012] [notice] Apache/2.2.22 (Unix) PHP/5.3.8 mod_ssl/2.2.22 OpenSSL/0.9.8r configured -- resuming normal operations
[Thu Feb 09 16:30:40 2012] [info] Server built: Feb  9 2012 16:02:28
[Thu Feb 09 16:30:40 2012] [debug] prefork.c(1023): AcceptMutex: flock (default: flock)
```


PHP/MySQL versions known to work
--------------------------------

This buildout currently tested on following configurations:

1. php-5.3.25 / MySQL-5.1.60
2. php-5.2.17 / MySQL-5.1.60
2. php-5.4.15 / MySQL-5.1.60



TODO
-----
1. Add PostgreSQL



FAQ
----

### What is buildout?

[Buildout](http://www.buildout.org/) is a Python-based build system for creating, assembling
and deploying applications from multiple parts, some of which may be non-Python-based. 
It lets you create a buildout configuration and reproduce the same software later.


### Why didn't you use homebrew?

Though, [brew](http://mxcl.github.com/homebrew/) is really cool it does not support installation of custom php/mysql versions in an easy manner.


### Why not [MAMP](http://www.mamp.info/)?

Because I'm a command-liner, dude :)


本源码包内暂不包含可直接显示的源代码文件,请下载源码包。