почему сервер службы php artisan laravel не доступен из WWW на IIS

12

У меня есть приложение laravel, работающее через сервер laravel artisan :

 php artisan serve

и это работает очень хорошо, если я продолжаю на моем localhost:8000.. Далее, я добавил входящее правило на сервере IIS следующим образом:

Панель управления -> Администрирование -> Брандмауэр Windows в режиме повышенной безопасности, Правила для входящих подключений. Составьте новое правило «Разрешить порт», TCP, 8000, Все профили

Однако по какой-то причине я все еще не могу получить доступ к веб-сайту из WWW (я сделал те же самые шаги для сервера webrick (на той же машине), и все работало отлично) .. какие-нибудь идеи?

abbood
источник
1
Не зная Laravel или artisan, я думаю, что он связан localhostтолько по умолчанию, и вы должны настроить его для обработки нелокальных запросов. Посмотрите документы системы, чтобы проверить это.
Свен
@SvW правильно.
ceejayoz

Ответы:

29

Чтобы заставить его работать за пределами localhost, сделайте php artisan serve --host 0.0.0.0

Если вы хотите , чтобы работать без указания порта в браузере php artisan serve --host 0.0.0.0 --port 80. sudoскорее всего, потребуется.

Примечание: php artisan serveне должно никогда быть использовано для производства. Он предназначен только для разработчиков и демонстрации и не сможет обрабатывать больше, чем трафик человека или двоих.

ceejayoz
источник
хорошо звучит хорошо .. действительно, используя твои инструкции, я смог просмотреть его из WWW (т.е. mydomain.com:8080) ... однако я все еще задаюсь вопросом, почему я не могу заставить apache на самом деле подавать его WWW? это мой конкретный сценарий: запуск artisan serveзаставляет его работать просто отлично ... но затем включение apache вызывает у меня page not foundошибки .. я создал пример проекта laravel с использованием composer ... и это сработало очень хорошо даже на apache .. однако этот проект я фактически скопировано с компьютера другого разработчика. Я предполагаю, что это может иметь какое-то отношение к файлам?
abbood
2
Вам нужно будет правильно настроить Apache, чтобы он указывал на правильный каталог. См. Laravel.com/docs/installation#pretty-urls .
ceejayoz
хорошо ... я изменил AllowOverrideна Allв httpd.confфайле в определении, DocumentRootкак указано здесь ... но это не сработало ... на веб-сайте laravel говорится, что если это не сработает, попробуйте Options +FollowSymLinks RewriteEngine On ..... но я не уверен, где положить эти вещи? они должны идти в тот же файл httpd.conf?
abbood
Ваш DocumentRoot указывает на публичный каталог?
ceejayoz
1
@colinhoernig Только не забывайте никогда не использовать его для производства.
ceejayoz