#!/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();
|