¿Por qué el servidor php artisan serve de laravel no es accesible desde la WWW en IIS?

12

Tengo una aplicación laravel ejecutándose a través del servidor artesanal laravel :

 php artisan serve

y funciona bien si voy en mi localhost:8000... Además, agregué una regla de entrada en el servidor IIS de esta manera:

Panel de control -> Herramientas administrativas -> Firewall de Windows con seguridad avanzada, reglas de entrada. Haga una nueva regla "Permitir puerto, TCP, 8000, Todos los perfiles

Sin embargo, por alguna razón, todavía no puedo acceder al sitio web desde la WWW (hice exactamente los mismos pasos para un servidor webrick (en la misma máquina) y las cosas funcionaron perfectamente) ... ¿alguna idea?

abbood
fuente
1
Sin conocer a Laravel o artisan, supongo que está limitado localhostsolo de forma predeterminada y debe configurarlo para manejar solicitudes no locales. Busque los documentos del sistema para verificar esto.
Sven
@SvW es correcto.
ceejayoz

Respuestas:

29

Para que funcione fuera de localhost, haga php artisan serve --host 0.0.0.0

Si quieres que funcione sin especificar el puerto en el navegador, php artisan serve --host 0.0.0.0 --port 80. sudoprobablemente será requerido.

Nota: php artisan servedebe nunca se puede utilizar para la producción. Es solo para desarrolladores y demostraciones y no podrá manejar más del tráfico de una o dos personas.

ceejayoz
fuente
ok suena bien ... de hecho, usando sus instrucciones pude verlo desde la WWW (es decir, mydomain.com:8080) ... sin embargo, todavía me pregunto por qué no puedo hacer que Apache realmente lo sirva a la WWW. este es mi escenario específico: la ejecución artisan servehace que funcione bien ... pero al encender apache me da page not founderrores ... he creado un proyecto de ejemplo de laravel usando composer ... y eso funcionó bien incluso en apache ... sin embargo, este proyecto i en realidad copiado de la máquina de otro desarrollador ... ¿Asumo que puede tener algo que ver con los permisos de archivo?
Abbood
2
Tendrá que configurar Apache correctamente para que apunte al directorio correcto. Consulte laravel.com/docs/installation#pretty-urls .
ceejayoz
ok ... cambié AllowOverridea Allen el httpd.confarchivo en la definición de DocumentRootcomo se indica aquí ... pero eso no funcionó ... en el sitio web de laravel dice que si eso no funciona, intente Options +FollowSymLinks RewriteEngine On ..... pero no estoy seguro de dónde poner esas cosas? ¿se supone que también deben ir al mismo archivo httpd.conf?
Abbood
¿Su DocumentRoot apunta al directorio público?
ceejayoz
1
@colinhoernig Solo recuerda no usarlo nunca para la producción.
ceejayoz