} public function onWorkerError() { $params = func_get_args(); // echo "{$params[1]} error, code: {$params[3]}".PHP_EOL; } public static function getInstance($webPath, $config = 'default') { if (!self::$instance) { self::$instance = new HttpServer($webPath, $config); } return self::$instance; } private function getStaticFile($file, $path = 'webroot') { return $this->webPath . DIRECTORY_SEPARATOR . $path . $file; } } define('USE_SWOOLE_HTTP_SERVER', 1); $opt = getopt("d", ["path::", "ip::", "port::", "worker::", "config::"]); if (empty($opt['path'])) { echo "examples: php swoole_http_server.php --path=/home/www/zphpdemo --config=default --ip=0.0.0.0 --port=9501 --worker=4 -d" . PHP_EOL; echo "path is required" . PHP_EOL; return; } if (!extension_loaded('swoole')) { echo 'pls install swoole extension, url: https://github.com/swoole/swoole-src or pecl install swoole' . PHP_EOL; return; } HttpServer::getInstance($opt);
}*/ $_SERVER["PATH_INFO"] = explode('/', $_SERVER["PATH_INFO"], 3)[2]; $_SERVER['argv'][1] = $_SERVER["PATH_INFO"]; ob_start(); // 记录加载文件时间 G('loadTime'); // 运行应用 \Think\App::run(); $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); } public function onWorkerStart() { define('APP_DEBUG', False); define('_PHP_FILE_', ''); define('APP_PATH', __DIR__ . '/../Application/'); require_once '../ThinkPHP/ThinkPHP.php'; } public static function getInstance() { if (!self::$instance) { self::$instance = new HttpServer(); } return self::$instance; } } HttpServer::getInstance();
<?php /** * @Author: WenJun * @Date: 15/10/23 15:37 * @Email: wenjun01@baidu.com * @File: server.php * @Desc: ... */ ini_set('memory_limit', '2048M'); error_reporting(E_ALL); date_default_timezone_set('Asia/Shanghai'); define('DS', DIRECTORY_SEPARATOR); define('ROOT_PATH', dirname(__FILE__)); define('CONF_PATH', ROOT_PATH . DS . 'conf'); define('APPLICATION_PATH', ROOT_PATH . DS . 'application'); define('LIBRARY_PATH', APPLICATION_PATH . DS . 'library'); require LIBRARY_PATH . DS . 'HttpServer.php'; $serverObj = HttpServer::getInstance(); $serverObj->setServerConfigIni(CONF_PATH . DS . 'server.ini'); $serverObj->setAppConfigIni(CONF_PATH . DS . 'application.ini'); $serverObj->start();