виртуальная машина — я не могу подключиться к встроенному серверу php, работающему на виртуальной машине

У меня слишком простое 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

Когда я запускаю curl изнутри моей виртуальной машины, это очевидно работает:

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

Hello world!!

Проблема в том, что когда я пытаюсь подключиться к этому серверу через браузер (Windows Machine), я получаю

This site can’t be reached

Хотя это не работает для моего встроенного сервера php, оно отлично работает для двух других проектов, разработанных с которые находятся на той же виртуальной машине, что и один.

Почему я не могу получить доступ к встроенному серверу php особенно встроенный сервер доступен?

2

Решение

Вы привязываете свой сервер к localhost, Это только слушать на localhost сетевой интерфейс. Он не будет доступен за пределами этой машины.

Скажите ему прослушивать ваш внешний IP-адрес.

В качестве альтернативы, скажи это слушать все сетевые интерфейсы:

php -S 0.0.0.0:9889
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector