public function go() { $is_parent = true; foreach ($this->servers as $server) { $app = new $server[0](); foreach (array_reverse($server[1]) as $mw_name) { $mw_class = 'MFS\\AppServer\\Middleware\\' . $mw_name . '\\' . $mw_name; $app = new $mw_class($app); } $handler = new \MFS\AppServer\DaemonicHandler($server[3], $server[2], 'Socket'); for ($i = 0; $i < $server[4]; $i++) { $pid = pcntl_fork(); if ($pid == -1) { die('could not fork'); } elseif ($pid === 0) { // we are the child $is_parent = false; try { $handler->serve($app); } catch (\Exception $e) { } die; } else { // parent-process, just continue } } } if ($is_parent) { // should be called one time for each child? pcntl_wait($status); //Protect against Zombie children } }
<?php require 'AppServer/autoload.php'; use MFS\AppServer\Apps\FileServe\FileServe as file_server; use MFS\AppServer\Middleware\PHP_Compat\PHP_Compat as aip_php_compat; use MFS\AppServer\Middleware\Logger\Logger as aip_logger; use MFS\AppServer\Middleware\Session\Session as aip_session; require __DIR__ . '/appserv_app.php'; try { $app = new aip_php_compat(new aip_session(new midgardmvc_appserv_app())); $_midcom_root = realpath(__DIR__ . '/../..') . '/'; $map = new \MFS\AppServer\Middleware\URLMap\URLMap(array('/' => $app, '/favicon.ico' => function ($ctx) { return array(404, array(), ''); }, '/midcom-static/midgardmvc_core' => new file_server($_midcom_root . 'midgardmvc_core/static', 4000000), '/midcom-static/midgardmvc_helper_forms' => new file_server($_midcom_root . 'midgardmvc_helper_forms/static'), '/midcom-static/midgardmvc_admin_asgard' => new file_server($_midcom_root . 'midgardmvc_admin/static'))); $handler = new \MFS\AppServer\DaemonicHandler('tcp://127.0.0.1:8080', 'HTTP'); $handler->serve(new aip_logger($map, STDOUT)); } catch (Exception $e) { echo $e; }
<?php require 'AiP/autoload.php'; require __DIR__ . '/appserv_runner_app.php'; try { $handler = new \MFS\AppServer\DaemonicHandler('tcp://127.0.0.1:8001', 'HTTP'); $handler->serve(new midgardmvc_appserv_runner_app()); } catch (Exception $e) { echo $e; }
Ak::setStaticVar('AppServer.SessionHandler', new AkAppServerFunctionHandler()); Ak::setStaticVar('AppServer.HeadersHandler', new AkAppServerFunctionHandler()); Ak::setStaticVar('AppServer.PutsHandler', new AkAppServerFunctionHandler()); $_headers = array(); $_puts = ''; $_status = 200; $counter = 0; $app = new \MFS\AppServer\Middleware\URLMap\URLMap(array('/' => function ($context = null) { global $counter, $_headers, $_puts, $_status; $counter++; $_puts = ''; $_status = 200; //AkConfig::setOption('Request.remote_ip', AK_REMOTE_IP); ob_start(); $_headers = array('Server', 'Akelos (via AppServer)'); $Dispatcher = new AkDispatcher(); $Response = $Dispatcher->dispatchAppServer($context); if (count($_headers) == 2) { foreach ((array) $Response->getHeaders() as $k => $v) { $_headers[] = $k; $_headers[] = $v; } } $extra_content = ob_get_clean(); return array($_status, $_headers, (empty($_puts) && is_string($Response->body) ? $Response->body : $_puts) . $extra_content); })); echo "Akelos dev server listening at 127.0.0.1:" . $_SERVER['SERVER_PORT'] . "\n\n"; $handler = new \MFS\AppServer\DaemonicHandler('tcp://127.0.0.1:' . $_SERVER['SERVER_PORT'], 'HTTP'); // serving app $handler->serve($app); echo "\nBye!\n";