2017-06-09 17 views
7

tôi có một thiết lập trang web tốt, nhưng thứ hai không thể được truy cập từ xa:Homestead truy cập không thể trang web thứ hai từ xa

YAML của tôi:

--- 
ip: "192.168.10.10" 
memory: 2048 
cpus: 1 
provider: virtualbox 

authorize: ~/.ssh/id_rsa.pub 

keys: 
    - ~/.ssh/id_rsa 

folders: 
    - map: ~/Projects 
    to: /home/vagrant/Projects 

sites: 
    - map: app.app 
     to: /home/vagrant/sites/app1/public 
    - map: app2.app 
     to: /home/vagrant/sites/app2/public 
     port: 8100 

ports: 
    - host: 81 
    - guest: 8100 

tôi có thể truy cập vào trang web đầu tiên sử dụng IP của tôi một cách dễ dàng - http://192.168.0.5/ nhưng thứ hai không thể chia sẻ cùng một cổng, vì vậy tôi đã thêm 81 -> 8100.

Khi tôi cố gắng hủy kích hoạt hộp chú thích nhà cửa của tôi, nó nói: Có lỗi trong cấu hình của máy này. Vui lòng sửa lỗi các lỗi sau và thử lại:

vm: 
* Forwarded port definitions require a "host" and "guest" value 
* Ports to forward must be 1 to 65535 
* Ports to forward must be 1 to 65535 

Bất kỳ ý tưởng nào?

+0

trong yaml của bạn, bạn có '192.168.10.10' và bạn có thể truy cập trang web từ' http: // 192.168.0.5/'.Tôi nghĩ rằng bạn có các máy ảo khác đang chạy hoặc cái gì khác –

+0

Không' 0,5' là một Ví dụ về IP cục bộ của máy tính xách tay của tôi, tôi đang cố gắng truy cập từ một ứng dụng di động – userqwert

+0

Về cơ bản tôi muốn biết cách truy cập hai trang riêng biệt, chạy trên cùng một cá thể homestead, từ một thiết bị từ xa. – userqwert

Trả lời

4

Dịch vụ xip.io có thể thực hiện công việc ngắn này. Dưới đây là cách thực hiện:

Ví dụ: tôi có thiết lập ứng dụng Homesite sau đây, 'rentmanager.test'. Đây là ứng dụng đầu tiên tôi cung cấp trên Homestead, vì vậy đó là tuyến đường mặc định. Để truy cập điều này từ mạng nội bộ của tôi, tất cả những gì tôi phải làm là truy cập:

http://rentmanager.test.192.168.5.124.xip.io:8000 

'Rentmanager.test' ở đâu ' là tên của ứng dụng Laravel của tôi trên Homestead, '192.166.5.124.' là địa chỉ IP của tôi trên mạng cục bộ, 'xip.io:8000' là tên miền dịch vụ chuyển hướng và cổng cần thiết để truy cập ứng dụng (8000) bên ngoài định tuyến mặc định mà Homestead thiết lập.

Bây giờ, tính năng này hoạt động tốt với hộp đầu tiên mà bạn cung cấp, nhưng điều gì sẽ xảy ra nếu chúng tôi có nhiều trang web? Điều đó đòi hỏi nhiều hơn một chút legwork. Giả sử chúng ta có một ứng dụng thứ hai được gọi là 'sitescanner.test' mà chúng ta muốn truy cập. Nếu tôi cố gắng truy cập cùng một URL ở trên với URL ứng dụng mới, bạn sẽ thấy tôi vẫn đang phục vụ ứng dụng đầu tiên! Hãy giải quyết điều đó.

Trước tiên, bạn sẽ cần thêm quy tắc bổ sung vào tệp lưu trữ của mình. Vì vậy, giả sử ứng dụng mới của chúng tôi được gọi là 'sitescanner.test':

# Vagrant Sites External Access 

192.168.10.10 sitescanner.test.192.168.5.124.xip.io 

Khi bạn đã sẵn tại chỗ thì chúng ta phải cập nhật các kịch bản dự phòng tại Homestead để tạo ra các mục máy chủ ảo chính xác để Homestead biết làm thế nào để định tuyến các yêu cầu . Để làm điều đó, chúng tôi sẽ chỉnh sửa Homestead.yaml của bạn.Dưới sự 'các trang web:' chỉ thị:

- map: sitescanner.test 
    to: /home/vagrant/Code/sitescanner/public 
- map: sitescanner.test.192.168.5.124.xip.io 
    to: /home/vagrant/Code/sitescanner/public 

Sau khi hoàn tất, chỉ cần 'dừng lại lang thang' (nếu nó đang chạy), sau đó 'lang thang lên --provision' và bạn sẽ có thể truy cập vào trang web của bạn từ

http://sitescanner.test.192.168.5.124.xip.io:8000 

Mọi nơi trên mạng của bạn! Hi vọng điêu nay co ich.

Trong khi tôi đang suy nghĩ về nó, có một xem xét cuối cùng cho cấu hình này:

  • Bạn có thể muốn thiết lập một địa chỉ IP tĩnh trên máy chủ của bạn nếu có thể. Nếu bạn đang được chỉ định một địa chỉ IP động thông qua DHCP thì có thể (và có khả năng) cấu hình này sẽ bị hỏng nếu bạn được gán một IP mới.
+1

Cảm ơn rất nhiều Michael đây chính xác là những gì tôi cần! Câu trả lời rất kỹ lưỡng. – userqwert

3

Theo tài liệu tìm thấy tại https://laravel.com/docs/5.4/homestead

bạn không cần phải xác định cổng khi thêm nhiều trang web

sites: 
    - map: homestead.app 
     to: /home/vagrant/Code/Laravel/public 
    - map: another.app 
     to: /home/vagrant/Code/another/public 

sau đó thêm dòng sau vào file hosts của mình

192.168.10.10 homestead.app 
192.168.10.10 another.app 

làm chắc chắn chạy vagrant reload --provision

+0

Thats chính xác những gì tôi có, nhưng làm cách nào để truy cập another.app từ điện thoại di động của tôi? – userqwert

+0

Nếu bạn đang chạy trên một mac và iphone, bạn có thể thiết lập điều này bằng cách sử dụng một công cụ gọi là SquidMan http://squidman.net/squidman/ – prola

+0

Ngoài ra còn có một cách với mục đích chia sẻ một trang web để ngrok sử dụng chia sẻ "app" – prola

Các vấn đề liên quan