mengapa server penampil php laravel tidak dapat diakses dari WWW di IIS

12

Saya memiliki aplikasi laravel yang berjalan melalui server tukang laravel :

 php artisan serve

dan itu berfungsi dengan baik jika saya melanjutkan localhost:8000.. Selanjutnya, saya menambahkan aturan inbound di server IIS seperti:

Control Panel -> Tools Administratif -> Windows Firewall dengan Keamanan Lanjutan, Aturan Masuk. Buat aturan baru "Izinkan Port, TCP, 8000, Semua profil

Namun untuk beberapa alasan saya masih tidak dapat mengakses situs web dari WWW (saya melakukan langkah - langkah yang sama persis untuk server webrick (pada mesin yang sama) dan semuanya berjalan dengan sempurna) .. ada ide?

abbood
sumber
1
Tanpa mengetahui Laravel atau artisan, tebakan saya adalah bahwa itu hanya terikat localhostsecara default dan Anda harus mengonfigurasinya untuk menangani permintaan non-lokal. Cari dokumen sistem untuk memeriksa ini.
Sven
@ SVW sudah benar.
ceejayoz

Jawaban:

29

Untuk membuatnya bekerja di luar localhost, lakukan php artisan serve --host 0.0.0.0

Jika Anda ingin itu berfungsi tanpa menentukan port di browser php artisan serve --host 0.0.0.0 --port 80,. sudokemungkinan akan diperlukan.

Catatan: php artisan serveharus tidak pernah digunakan untuk produksi. Ini untuk dev dan demonstrasi saja dan tidak akan mampu menangani lebih dari satu atau dua nilai traffic.

ceejayoz
sumber
ok kedengarannya bagus .. memang menggunakan instruksi Anda saya bisa melihatnya dari WWW (yaitu mydomain.com:8080) .. namun saya masih bertanya-tanya mengapa saya tidak bisa membuat apache benar-benar menyajikannya ke WWW? ini adalah skenario spesifik saya: menjalankan artisan servemembuatnya bekerja dengan baik .. tapi kemudian menyalakan apache memberi saya page not foundkesalahan .. saya telah membuat proyek sampel laravel menggunakan komposer .. dan itu bekerja dengan baik bahkan pada apache .. namun proyek ini saya sebenarnya disalin dari mesin pengembang lain .. saya anggap itu ada hubungannya dengan izin file?
abbood
2
Anda harus mengkonfigurasi Apache dengan benar untuk menunjuk ke direktori yang benar. Lihat laravel.com/docs/installation#pretty-urls .
ceejayoz
ok .. saya ganti AllowOverrideke Alldalam httpd.conffile dalam definisi DocumentRootseperti yang diinstruksikan di sini .. tapi itu tidak berhasil .. di situs web laravel dikatakan jika itu tidak berhasil coba Options +FollowSymLinks RewriteEngine On .... tapi saya tidak yakin di mana harus letakkan barang-barang itu? apakah mereka juga harus pergi ke file httpd.conf yang sama?
abbood
Apakah DocumentRoot Anda diarahkan ke direktori publik?
ceejayoz
1
@colinhoernig Ingatlah untuk tidak pernah menggunakannya untuk produksi.
ceejayoz