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

时间:2017-09-12 09:25:32

标签: php virtual-machine remote-access php-builtin-server

我有一个太基本的php应用程序,我想通过内置的php服务器运行,它存在于我的Windows机器中的VM中:

<?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内置服务器不起作用,但它适用于使用开发的另外两个与一个在同一个VM上的项目。

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

1 个答案:

答案 0 :(得分:4)

您将服务器绑定到localhost。它只是在localhost网络接口上侦听。它无法在该机器外部访问。

告诉它听取您面向外部的IP地址。

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

php -S 0.0.0.0:9889