linux服务器上启动workerman
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace think\worker;
use think\App;
use think\Error;
use think\exception\HttpException;
use Workerman\Protocols\Http as WorkerHttp;
/**
* Worker应用对象
*/
class Application extends App
{
/**
* 处理Worker请求
* @access public
* @param \Workerman\Connection\TcpConnection $connection
* @param void
*/
public function worker($connection)
{
try {
ob_start();
// 重置应用的开始时间和内存占用
$this->beginTime = microtime(true);
$this->beginMem = memory_get_usage();
// 销毁当前请求对象实例
$this->delete('think\Request');
$pathinfo = ltrim(strpos($_SERVER['REQUEST_URI'], '?') ? strstr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI'], '/');
// $this->request
// ->setPathinfo($pathinfo);
$this->request
->setPathinfo($pathinfo)
->withInput($GLOBALS['HTTP_RAW_REQUEST_DATA']);
if ($this->config->get('session.auto_start')) {
WorkerHttp::sessionStart();
}
// 更新请求对象实例
$this->route->setRequest($this->request);
$response = $this->run();
$response->send();
$content = ob_get_clean();
// Trace调试注入
if ($this->env->get('app_trace', $this->config->get('app_trace'))) {
$this->debug->inject($response, $content);
}
$this->httpResponseCode($response->getCode());
foreach ($response->getHeader() as $name => $val) {
// 发送头部信息
WorkerHttp::header($name . (!is_null($val) ? ':' . $val : ''));
}
$connection->send($content);
} catch (HttpException $e) {
服务器启动worker后服务端返回错误信息。
ErrorException in Application.php Undefined index: HTTP_RAW_REQUEST_DATA
本地PHP版本和服务器PHP版本是否一致,不行改成
怎么改?能说详细点嘛?