Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gree/greefastprocessor


https://github.com/gree/greefastprocessor

Last synced: about 2 months ago
JSON representation

Awesome Lists containing this project

README

        

* GreeFastProcessor

enables mod_php to run like mod_perl (= no resouce shutdown for each request), w/out modifying most of codes (*very* experimental)

** usage

*** 1. install extension

configure, and make:

$ phpize
$ ./configure
$ make
$ sudo make install

add extension directive to your php.ini:

extension=gree_fastprocessor.so

*** 2. place php libraries

copy bundled php files (fllowings) anywhere you want, and as any file name you want:

$ cp gree_fastprocessor.php /path/to/lib/
$ cp gree_fastprocessor_listener.php /path/to/lib/

(and modify php executable path embeded in gree_fastprocessor_listener.php, if you need)

*** 3. modify your index.php

following lines are typical case in CakePHP:

--- index.php.original 2010-10-20 18:43:01.000000000 +0900
+++ index.php 2010-10-20 18:41:51.000000000 +0900
@@ -26,6 +26,9 @@
* @lastmodified $Date: 2008-01-02 00:33:52 -0600 (Wed, 02 Jan 2008) $
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
*/
+require_once '/home/cake/app/vendors/gree_fastprocessor.php';
+
+if (Gree_FastProcessor::run('example') === false) {
/**
* Do not change
*/
@@ -86,4 +89,5 @@
if (Configure::read() > 0) {
echo "";
}
+}
?>

*** 4. add your handler, and set your identity

first of all, modify bundled gree_fastprocessor_handler.php and create your own handler cli based on your index.php. you can find typical example using CakePHP in exmaple/gree_fastprocessor_handler_example.php

and then, set your handler path in gree_fastprocessor.php:

--- gree_fastprocessor.php.original 2010-10-20 18:51:22.000000000 +0900
+++ gree_fastprocessor.php 2010-10-20 18:51:43.000000000 +0900
@@ -8,7 +8,7 @@

var $ident_list = array(
// sample
- 'sample' => '/path/to/handler.php',
+ 'example' => '/home/cake/app/vendors/gree_fastprocessor_handler.php',
);

/**#@-*/

*** 5. run Gree FastProcessor

$ /path/to/gree_fastprocessor_listener.php --start --ident=example

to stop daemon:

$ /path/to/gree_fastprocessor_listener.php --stop --ident=example

and to restart:

$ /path/to/gree_fastprocessor_listener.php --restart --ident=example

** notice / limited features

- [notice] global, static variables and resources (e.g. database connections, static variables, etc) are not freed when requests completed
- [notice] use Gree_FastProcessor::header() instead of header()
- [notice] use Gree_FastProcessor::getAllHeaders() instead of getallheaders()
- [notice] if your program exited w/ fatal errors or exit(), request continued w/out Gree_FastProcessor
- [limited] file upload is not yet supported (though it is possible)
- [limited] session handling needs more brush up