Переадресация бродячих портов на PHP-сервер / Ошибка доступа в php -s

Я на 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?

1

Решение

Попробуйте запустить php -S как root (например, после sudo -s на Ubuntu). Порты ниже 1024 являются привилегированными и могут быть открыты только пользователем root.

Порт внутри вашей виртуальной машины: 443. Но вы можете использовать php -s 0.0.0.0:4443 например. Перечисление на 127.0.0.1:4443 также не будет работать, потому что переадресация портов не обращается к ВМ через localhost — вместо нее внутри виртуального интерфейса есть дополнительный (виртуальный) сетевой интерфейс.

1

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

Предполагая, что ваш бродячий ящик — Linux, только root может прослушивать порты ниже 1024. Обычно люди используют сервер, такой как Apache или nginx, для прослушивания порта как root, а затем отбрасывают все остальные разрешения и передают обработку php. В качестве альтернативы вы можете использовать iptables для перенаправления трафика на порт 443 на порт более высокого уровня. (И запустите свой сервер с более высоким номером порта)

1

По вопросам рекламы [email protected]