我无法访问 VM 上的 php 内置服务器 运行

I cannot reach php built-in server running on a VM

我有一个太基础的 php 应用程序,我想通过内置 php 服务器 运行 并且它位于我 windows 机器的虚拟机中:

<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

require '../vendor/autoload.php';

$app = new \Slim\App();

$app->get('/', function (Request $req, Response $res, $arg = []) {
    return 'hello world!!';
});

$app->run();

我的项目结构

tree -I vendor
.
|-- cache
|   `-- 6a
|       `-- 532bg9987gt23f4356546poo999vvb234234.php
|-- composer.json
|-- composer.lock
|-- public
|   `-- js
|       `-- app.js
|-- routes
|   `-- web.php
`-- views
    `-- templates
        `-- index.html

7 directories, 7 files

当我从我的 VM 中 运行 curl 时,它显然有效:

php -S localhost:9899&
curl localhost:9899/routes/web.php

Hello world!!

问题是当我尝试从我的浏览器(windows 机器)连接到这个服务器时,我得到

This site can’t be reached

虽然这不适用于我的 php 内置服务器,但它非常适合用 that are on the same VM as the 开发的另外两个项目。

为什么我无法访问 php 内置服务器,尤其是 内置服务器可以访问?

您正在将您的服务器绑定到 localhost。它只监听 localhost 网络接口。在该机器之外将无法访问它。

让它改为侦听您面向外部的 IP 地址。

或者,告诉它监听所有个网络接口:

php -S 0.0.0.0:9889