#!/usr/bin/env php <?php
declare(ticks = 1); error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush();
require_once 'http.php';
$server = new HttpServer();
function sig_handler($signo) { global $server; $server->kill(); }
pcntl_signal(SIGTERM, 'sig_handler'); pcntl_signal(SIGINT, 'sig_handler');
$longopts = array( 'port:', 'webdir:', 'pidfile:' ); if (strpos(phpversion(), '5.2.') !== false) { $options = @getopt('p:w:P:'); } else { $options = @getopt('p:w:P:', $longopts); }
$port = 1080; if (isset($options['p'])) { $port = (int) $options['p']; } else if (isset($options['port'])) { $port = (int) $options['port']; }
$webdir = dirname(dirname(__FILE__)).'/web'; if (isset($options['w'])) { $webdir = $options['w']; } else if (isset($options['webdir'])) { $webdir = $options['webdir']; }
if (isset($options['P'])) { @file_put_contents($options['P'], getmypid()); } else if (isset($options['pidfile'])) { @file_put_contents($options['pidfile'], getmypid()); }
$server ->setPort($port) ->setWebDir(realpath($webdir)) ->run();
|