请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

浏览器访问swoole_http_server时报错

,Fatal error: Swoole\Server::__construct(): swoole_server only can be used in PHP CLI mode. in /data/wwwroot/swoole/index.php on line 8

$http = new swoole_http_server("0.0.0.0", 8855);

$http->on('request', function ($request, $response) {
   var_dump($request->get, $request->post);
   $response->header("Content-Type", "text/html; charset=utf-8");
   $response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
});

$http->start();

正在回答 回答被采纳积分+3

1回答

singwa 2018-05-15 18:56:09

您好。您需要在Linux终端里面去执行这个脚本, 然后在从浏览器通过IP+端口号访问才可以

0 回复 有任何疑惑可以回复我~
  • 提问者 用户1205655 #1
    不是这个问题,http_server开启运行了,代码如下:
    $http = new swoole_http_server("0.0.0.0", 8855);
    /**
     * 底层收到Http请求会先判断document_root路径下是否存在此文件,如果存在会直接发送文件内容给客户端,不再触发onRequest回调
    */
    $http->set([
        'enable_static_handler' => true,
        'document_root' => "/data/wwwroot/swoole/data",
    ]);
    
    $http->on('request', function($request, $response){
        $response->cookie('test', 'singwa', time() + 1800);
        $response->end("data" . json_encode($request->get));
    });
    
    $http->start();
    
    然后在 data文件夹有个index.html文件,代码如下:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        我是通过 http server获取的静态资源!
    </body>
    </html>
    
    我的是 阿里云服务器,做了域名解析,swoole.kinggui.com,目前是 在服务器上 
    curl http://127.0.0.1:8855/index.html  是可以访问到的;
    但是curl swoole.kinggui.com:8855/index.html ,没结果,报错如下:
    curl: (7) couldn't connect to host,我怀疑是端口问题,然后在 阿里云的 安全组也开放了8855 这个端口给 0.0.0.0,如果可以singwa老师可以加个q吗,278495340,谢谢了
    回复 有任何疑惑可以回复我~ 2018-05-17 10:14:18
  • 提问者 用户1205655 #2
    慕课怎么不能截图啊,哎提问题看问题不直观
    回复 有任何疑惑可以回复我~ 2018-05-17 10:14:52
  • 提问者 用户1205655 #3
    不好意思,singwa老师,解决了,是防火墙的问题。。。我无语了
    回复 有任何疑惑可以回复我~ 2018-05-17 10:41:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信