Tại sao máy chủ phục vụ php của laravel không thể truy cập được từ WWW trên IIS


12

Tôi có một ứng dụng laravel chạy qua máy chủ nghệ nhân laravel :

 php artisan serve

và nó hoạt động tốt nếu tôi tiếp tục localhost:8000.. Hơn nữa, tôi đã thêm một quy tắc gửi đến trong máy chủ IIS như sau:

Bảng điều khiển -> Công cụ quản trị -> Tường lửa Windows với Bảo mật nâng cao, Quy tắc gửi đến. Tạo quy tắc mới "Cho phép Cổng, TCP, 8000, Tất cả cấu hình

Tuy nhiên vì một số lý do tôi vẫn không thể truy cập trang web từ WWW (tôi đã thực hiện chính xác các bước tương tự cho máy chủ webrick (trên cùng một máy) và mọi thứ hoạt động hoàn hảo) .. có ý tưởng nào không?


1
Không biết Laravel hay artisan, tôi đoán là nó chỉ bị ràng buộc localhosttheo mặc định và bạn phải cấu hình nó để xử lý các yêu cầu không cục bộ. Tra cứu các tài liệu của hệ thống để kiểm tra điều này.
Sven

@SvW là chính xác.
ceejayoz

Câu trả lời:


29

Để làm cho nó hoạt động bên ngoài localhost, hãy làm php artisan serve --host 0.0.0.0

Nếu bạn muốn nó hoạt động mà không chỉ định cổng trong trình duyệt , php artisan serve --host 0.0.0.0 --port 80. sudosẽ có khả năng được yêu cầu.

Lưu ý: không bao giờphp artisan serve nên được sử dụng cho sản xuất. Nó chỉ dành cho nhà phát triển và trình diễn và sẽ không thể xử lý lưu lượng truy cập nhiều hơn một hoặc hai người.


ok nghe có vẻ tốt .. thực sự sử dụng hướng dẫn của bạn, tôi đã có thể xem nó từ WWW (tức là mydomain.com:8080) .. tuy nhiên tôi vẫn tự hỏi tại sao tôi không thể thực hiện apache thực sự phục vụ nó cho WWW? đây là kịch bản cụ thể của tôi: chạy artisan servelàm cho nó hoạt động tốt .. nhưng sau đó bật apache cho tôi page not foundlỗi .. tôi đã tạo một dự án laravel mẫu bằng cách sử dụng trình soạn thảo .. và nó hoạt động tốt ngay cả trên apache .. tuy nhiên dự án này tôi thực sự được sao chép từ máy của nhà phát triển khác .. tôi cho rằng nó có thể có liên quan đến quyền truy cập tệp?
abbood

2
Bạn sẽ phải cấu hình đúng cách Apache để trỏ đến thư mục bên phải. Xem laravel.com/docs/installation#pretty-urls .
ceejayoz

ok .. i thay đổi AllowOverrideđể Alltrong httpd.conftập tin trong định nghĩa của DocumentRoottheo hướng dẫn ở đây .. nhưng điều đó không làm việc .. trong trang web laravel nó nói nếu đó không làm việc cố gắng Options +FollowSymLinks RewriteEngine On .... nhưng tôi không chắc chắn nơi để Đặt những thứ đó? họ có nên đi đến cùng một tệp httpd.conf không?
abbood

Tài liệu của bạn chỉ vào thư mục công cộng?
ceejayoz

1
@colinhoernig Chỉ cần nhớ không bao giờ sử dụng nó cho sản xuất.
ceejayoz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.