diff --git a/README.md b/README.md index 9af34c2..5c99d43 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,32 @@ Example: ```bash SCRIPT_NAME=/index.php \ +REQUEST_METHOD=GET \ SERVER_NAME=localhost \ SERVER_ADDRESS=127.0.0.1 \ DOCUMENT_ROOT=/var/www/html \ -/var/www/html/vendor/bin/ppm start /var/www/html \ +vendor/bin/ppm start /var/www/html \ --bridge=PHPPM\\Bridges\\DrupalKernel \ --bootstrap=PHPPM\\Bootstraps\\Drupal ``` + +## Starting under PHP-FPM + +General idea is to use `[cgi-fcgi](https://docs.oracle.com/cd/E53394_01/html/E54763/cgi-fcgi-1.html)` as a bridge. + +Draft outline (needs work): + +* Install `cgi-fcgi` on your system. +* Put `start-ppm-php-fpm.php` in your webroot. +* Install and configure `PHP-FPM` to listen on port `9000` +* Execute as `root`: + +``` +SCRIPT_FILENAME=/var/www/html/start-ppm-php-fpm.php \ +SCRIPT_NAME=/index.php \ +REQUEST_METHOD=GET \ +SERVER_NAME=localhost \ +SERVER_ADDRESS=127.0.0.1 \ +DOCUMENT_ROOT=/var/www/html \ +cgi-fcgi -bind -connect 127.0.0.1:9000 +``` diff --git a/web/start-ppm-php-fpm.php b/web/start-ppm-php-fpm.php new file mode 100644 index 0000000..1649e24 --- /dev/null +++ b/web/start-ppm-php-fpm.php @@ -0,0 +1,79 @@ +getEnvironment(); + } +} + +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Output\StreamOutput; +use PHPPM\Commands\StartCommand; +use PHPPM\Commands\StatusCommand; +use Symfony\Component\Console\Input\ArgvInput; +use Symfony\Component\Debug\Debug; +use Symfony\Component\Debug\ErrorHandler; +use Symfony\Component\Debug\BufferingLogger; + +// Debug::enable(); +// ErrorHandler::stackErrors(); +// ErrorHandler::register(new ErrorHandler(new BufferingLogger())); + +$input = new ArgvInput(['vendor/bin/ppm', 'start', '/var/www/html']); + +$app = new Application('PHP-PM'); +$app->add(new StartCommand); +$app->add(new StatusCommand); + +// This setup with php-fcgi SAPI doesn't support php://stderr or php://stdout. +$output = new StreamOutput(fopen('php://output', 'w')); + +$app->run($input, $output);