pourquoi le serveur de service php artisan de laravel n'est-il pas accessible depuis le WWW sur IIS

12

J'ai une application laravel fonctionnant via le serveur artisan laravel :

 php artisan serve

et cela fonctionne très bien si je continue sur ma localhost:8000.. De plus, j'ai ajouté une règle entrante dans le serveur IIS comme ceci:

Panneau de configuration -> Outils d'administration -> Pare-feu Windows avec sécurité avancée, règles entrantes. Créer une nouvelle règle "Autoriser le port, TCP, 8000, tous les profils

Cependant, pour une raison quelconque, je ne peux toujours pas accéder au site Web à partir du WWW (j'ai fait exactement les mêmes étapes pour un serveur Webrick (sur la même machine) et les choses ont fonctionné parfaitement) .. des idées?

abbood
la source
1
Sans connaître Laravel ou artisan, je suppose qu'il n'est lié localhostqu'à par défaut et que vous devez le configurer pour gérer les demandes non locales. Recherchez les documents du système pour vérifier cela.
Sven
@SvW est correct.
ceejayoz

Réponses:

29

Pour le faire fonctionner en dehors de localhost, faites php artisan serve --host 0.0.0.0

Si vous voulez travailler sans spécifier le port dans le navigateur, php artisan serve --host 0.0.0.0 --port 80. sudosera probablement nécessaire.

Remarque: nephp artisan serve doit jamais être utilisé pour la production. C'est uniquement pour le développement et la démonstration et ne pourra pas gérer plus d'une personne ou deux pour du trafic.

ceejayoz
la source
ok sonne bien .. en effet en utilisant vos instructions j'ai pu le voir depuis le WWW (ie mydomain.com:8080) .. mais je me demande toujours pourquoi je ne peux pas faire qu'apache le serve réellement au WWW? c'est mon scénario spécifique: le faire fonctionner artisan servefonctionne très bien .. mais ensuite, page not foundactiver apache me donne des erreurs .. j'ai créé un exemple de projet laravel en utilisant composer .. et cela a très bien fonctionné même sur apache .. cependant ce projet i effectivement copié à partir de la machine d'un autre développeur .. je suppose que cela peut avoir quelque chose à voir avec les autorisations de fichiers?
abbood
2
Vous devrez configurer correctement Apache pour pointer vers le bon répertoire. Voir laravel.com/docs/installation#pretty-urls .
ceejayoz
ok .. je l' ai changé AllowOverridepour Alldans le httpd.conffichier dans la définition du suivant les DocumentRootinstructions ici .. mais cela ne fonctionne pas .. dans le site Laravel il est dit si cela ne cherche pas de travail Options +FollowSymLinks RewriteEngine On .... mais je ne suis pas sûr où mettre ces choses? sont-ils censés également aller dans le même fichier httpd.conf?
abbood
Votre DocumentRoot pointe-t-il vers le répertoire public?
ceejayoz
1
@colinhoernig N'oubliez pas de ne jamais l' utiliser pour la production.
ceejayoz