Я на OsX Yosemite и должен был сделать шаги здесь включить переадресацию портов.
Я получил это в конце бродячий до
==> default: Running triggers after up...
==> Fowarding Ports: 80 -> 8080, 443 -> 4443 & Enabling pf
Теперь проблема заключается в том, если я захожу в свой бродячий ящик ssh и запускаю php-сервер в порту 443 при выполнении
php -S localhost:443
Это говорит
Failed to listen on localhost:443 (reason: Permission denied)
Далее на моей коробке (хосте),
curl http://127.0.0.1:8080/
возвращает время ожидания операции
Как мне заставить php сервер работать на vagrant?
Попробуйте запустить php -S
как root (например, после sudo -s
на Ubuntu). Порты ниже 1024 являются привилегированными и могут быть открыты только пользователем root.
Порт внутри вашей виртуальной машины: 443. Но вы можете использовать php -s 0.0.0.0:4443
например. Перечисление на 127.0.0.1:4443 также не будет работать, потому что переадресация портов не обращается к ВМ через localhost — вместо нее внутри виртуального интерфейса есть дополнительный (виртуальный) сетевой интерфейс.
Предполагая, что ваш бродячий ящик — Linux, только root может прослушивать порты ниже 1024. Обычно люди используют сервер, такой как Apache или nginx, для прослушивания порта как root, а затем отбрасывают все остальные разрешения и передают обработку php. В качестве альтернативы вы можете использовать iptables для перенаправления трафика на порт 443 на порт более высокого уровня. (И запустите свой сервер с более высоким номером порта)