簡體   English   中英

Laravel 宅基地 IP 地址不起作用

[英]Laravel homestead IP address not working

我正在為我的 VM 使用 Laravel Homestead 2.0,並嘗試在 YAML 文件 192.168.10.10 中的默認 IP 地址上為我的站點提供服務

我的 /etc/hosts 文件如下所示:

 # Homestead 192.168.10.10 beta.dev 192.168.10.10 deploy.dev

我的 Homestead.yaml 文件如下所示:

 --- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa folders: - map: ~/Projects to: /home/vagrant/Projects sites: - map: beta.dev to: /home/vagrant/Projects/emorybeta/public - map: deploy.dev to: /home/vagrant/Projects/deploy/public ...

當我將我的域鏈接到 127.0.0.1 時,這些站點就會出現,但我必須將端口 8000 附加到 URL 的末尾(這沒什么大不了的,我只是想讓指定的 IP 地址工作)。

有誰知道為什么當我的域指向 192.168.10.10 時我無法連接到服務器?


更新:

當我 ping deploy.dev 時,正確的 IP 地址顯示出來,但我的瀏覽器仍然無法連接到服務器。 我認為這可能與優勝美地的 DNS 問題有關。

幾周前我遇到了同樣的問題。

首先:確保您的文件夾路徑正確,如果是,請仔細檢查

Next: 運行 homestead destroy 和 homestead up 來重新初始化虛擬機

如果這一切都不起作用:檢查您家里是否有任何設備也可能在 192.168.10.10 上。

如果這一切都不起作用,那么您的問題可能更難解決,我建議為它創建一個 github 問題。

嘿,我遇到了完全相同的問題。 我最終通過安裝已棄用的 net-tools 包使其工作: sudo apt-get updatesudo apt-get install gnome-nettool

此后, homestead destroyhomestead up

這使我可以使用我在主機文件中指定的“域”從本地計算機的瀏覽器訪問我的虛擬機站點 - 在您的情況下是 beta.dev 和 deploy.dev -無需參考本地主機或端口 8000。祝你好運,希望如此有幫助。

這是我為我的 Windows 10 機器所做的解決方案:

確保將持久路由添加到 vagrant 框在管理員命令提示符下輸入route -p add 192.168.10.0 mask 255.255.255.0 192.168.10.1

並確保您能夠ping 192.168.10.10

還要檢查為 virtualbox 僅主機適配器配置的 IP 地址是 192.168.10.1,掩碼為 255.255.255.0

在 ubuntu 上安裝 net-tools 為我解決了這個問題

$ sudo install net-tools
$ vagrant destroy
$ vagrant up

我遇到了這個問題,結果是 nginx 由於加載 TLS 證書時出錯而無法啟動。 vagrant up命令不會報告 nginx 啟動失敗,或者任何端口綁定失敗。

為了診斷這個,我做了以下事情:

$ nmap homestead.app
Starting Nmap 7.01 ( https://nmap.org ) at 2017-10-03 16:16 NZDT
Nmap scan report for homestead.app (192.168.10.10)
Host is up (0.00077s latency).
Not shown: 995 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
1025/tcp open  NFS-or-IIS
3306/tcp open  mysql
5432/tcp open  postgresql

列表中沒有端口 80。 讓我們仔細檢查端口 80。

$ nmap homestead.app -p 80
...
Host is up (0.00020s latency).
PORT   STATE  SERVICE
80/tcp closed http

所以它肯定是關閉的。 客人日志說什么? vagrant ssh和...

    $ systemctl status nginx.service
    ...
    Active: failed (Result: exit-code) since Tue 2017-10-03 03:06:12 UTC; 1min 30s ago
    ...
 homestead systemd[1]: Starting A high performance web server and a reverse proxy server...
 homestead nginx[1250]: nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/ssl/homestead.app.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICA
 homestead nginx[1250]: nginx: configuration file /etc/nginx/nginx.conf test failed
 homestead systemd[1]: nginx.service: Control process exited, code=exited status=1
 homestead systemd[1]: Failed to start A high performance web server and a reverse proxy server.
 homestead systemd[1]: nginx.service: Unit entered failed state.
homestead systemd[1]: nginx.service: Failed with result 'exit-code'.

由於配置錯誤,Nginx 無法啟動。 PEM_read_bio_X509_AUX錯誤指向/etc/nginx/ssl/homestead.app.crt文件。 配置中使用的文件在哪里?

$ sudo vim /etc/nginx/sites-enabled/homestead.app

我注釋掉了相關的行:

@@ -1,6 +1,6 @@
 server {
     listen 80;
-    listen 443 ssl http2;
+#    listen 443 ssl http2;
     server_name homestead.app;
     root "/home/vagrant/Code/public";

@@ -42,7 +42,7 @@ server {
         deny all;
     }

-    ssl_certificate     /etc/nginx/ssl/homestead.app.crt;
-    ssl_certificate_key /etc/nginx/ssl/homestead.app.key;
+#    ssl_certificate     /etc/nginx/ssl/homestead.app.crt;
+#    ssl_certificate_key /etc/nginx/ssl/homestead.app.key;
 }

使用$ sudo service start nginx並從主機再次運行nmap

$ nmap homestead.app -p 80,443
...
PORT   STATE SERVICE
80/tcp open  http
443/tcp closed https

端口 80 已打開,現在應該可以從http://homestead.app訪問。 當然 TLS 將無法工作,但您應該能夠通過生成新證書來修復它。 我不確定證書無法首先加載的原因。

我有同樣的情況,但我做了改變。

我用這個 IP 127.0.0.1更改了我的 /etc/hosts 文件

昨天我在 Homestead 5 上遇到了類似的問題。原來我的問題的原因是我運行了錯誤的 Vagrantfile。

一個實例應該對ip地址做出響應:192.168.10.10

為了糾正我的問題,我所做的是按照以下說明進行操作: http : //laravel.com/docs/5.0/homestead

回顧一下:

在終端運行中:

vagrant box add laravel/homestead

然后

git clone https://github.com/laravel/homestead.git Homestead

然后

cd ./Homestead  

並從新的“Homestead”文件夾中運行此命令

bash init.sh

然后運行命令vagrant upvagrant provision到該 Vagrantfile,它應該已經在./Homestead創建

以下是vagrant provision命令在我的系統上的輸出:

    vagrant provision
==> default: Running provisioner: file...
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Running provisioner: shell...
    default: Running: /var/folders/q6/pgygb1ln4rg7_nvv0p8n1v300000gn/T/vagrant-shell20150714-94163-17xwlzk.sh
==> default: Running provisioner: shell...
    default: Running: /var/folders/q6/pgygb1ln4rg7_nvv0p8n1v300000gn/T/vagrant-shell20150714-94163-rncs6l.sh
==> default: nginx stop/waiting
==> default: nginx start/running, process 1751
==> default: php5-fpm stop/waiting
==> default: php5-fpm start/running, process 1766
==> default: Running provisioner: shell...
    default: Running: /var/folders/q6/pgygb1ln4rg7_nvv0p8n1v300000gn/T/vagrant-shell20150714-94163-e9qxwn.sh
==> default: Warning: Using a password on the command line interface can be insecure.
==> default: Warning: Using a password on the command line interface can be insecure.
==> default: Running provisioner: shell...
    default: Running: /var/folders/q6/pgygb1ln4rg7_nvv0p8n1v300000gn/T/vagrant-shell20150714-94163-14rlz2c.sh
==> default: Running provisioner: shell...
    default: Running: /var/folders/q6/pgygb1ln4rg7_nvv0p8n1v300000gn/T/vagrant-shell20150714-94163-16ethaq.sh
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: php5-fpm stop/waiting
==> default: php5-fpm start/running, process 1861
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: You are already using composer version 92faf1c7a83a73794fb914a990be435e1df373ca.
==> default: Running provisioner: shell...
    default: Running: /var/folders/q6/pgygb1ln4rg7_nvv0p8n1v300000gn/T/vagrant-shell20150714-94163-btuuhg.sh

在我的情況下,問題是通過讓vagrant up安裝來賓添加來解決的:

~/Homestead (master|✔) $ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'laravel/homestead' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
[...]
GuestAdditions versions on your host (5.0.26) and guest (5.0.20) do not match.
[...]
Copy iso file /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso
mount: /dev/loop0 is write-protected, mounting read-only
Installing Virtualbox Guest Additions 5.0.26 - guest version is 5.0.20
Verifying archive integrity... All good.
Uncompressing VirtualBox 5.0.26 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 5.0.20 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox DKMS kernel modules ...done.
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

在此之后,我得到了一個具有預期 IP 地址的新接口:

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:e8:04:04
          inet addr:192.168.8.10  Bcast:192.168.8.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fee8:404/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:996 (996.0 B)

我在我的 Windows 機器上出現了這個問題,結果我不小心顛倒了文件夾部分“map”和“to”。 當我發現該文件夾不在 vagrant ssh 會話中的 ~/code/ 下時,很明顯它無法正常工作,但仔細檢查路徑並沒有產生任何結果。

以下是在 Windows 計算機上映射文件夾部分的正確方法:

folders:
    - map: D:/Development/PHP/projects/
      to: /home/vagrant/code

唯一的原因是需要將主機名和 IP 放在主機文件中

C:\\Windows\\System32\\drivers\\etc

  • 以管理員身份打開記事本
  • 單擊打開文件並選擇“主機”文件
  • 把你的域名(例如 192.168.10.10 homestead.app)
  • 保存(確保您以管理員身份保存)

完畢!

使用這個 Vagrant 插件

vagrant plugin install vagrant-hostmanager

然后在您的 homestead 文件夾中運行它以再次配置

vagrant reload --provision

這樣就不用每次添加新項目都更新host文件了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM