Laravel Homestead踩坑記2——建立專案

long0發表於2020-12-22

homestead 的下載與安裝已經完成了,那麼問題來了,在哪個目錄下建立專案?如何建立專案?

- 在哪建立專案?

在電腦上的哪個目錄下都可以,可以在當前 windows 中建立專案目錄,也可以在虛擬機器中的 ubuntu 系統中建立專案目錄。但是前提是必須將 windows 目錄與 ubuntu 目錄進行對映!

雖然我們知道 ubuntu 執行在虛擬機器上,但是虛擬機器上對應的檔案目錄還是基於當前 windows 的。也就是在 ubuntu 中建立的目錄,在 windows 上是可以找到對應的目錄;在 windows 中建立的目錄,只要配置好對映,在 ubuntu 上也是可以找到對應的目錄。

- 檢視 ubuntu 目錄:

方法一:
開啟虛擬機器軟體——輸入密碼 “vagrant”——點選左上角 Activities ——開啟 ImageMagick ——單擊這個圖片——選擇 file —— open,便可以檢視 ubuntu 目錄

方法二:
執行下面的命令,就可以在 windows下操作 ubuntu 中的命令列了。( ubuntu 中的命令列我也不清楚為什麼打不開)

// 在 D:\homestead\homestead 目錄下
$ vagrant ssh
...
vagrant@homestead:~$ ls   //輸入 ls :檢視當前目錄的全部檔案
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  vendor  Videos
vagrant@homestead:~$ cd Desktop  //輸入cd XX :進入某個檔案
vagrant@homestead:~/Desktop$ cd ..    //輸入cd .. :返回到上一個目錄

homestead 環境可以完全隔離 windows,整個開發環境全部被集中在 ubuntu 中,那麼,總不能讓我們在虛擬機器裡面或用命令列來寫程式碼吧?

當然不是,我們需要做的是,在虛擬機器中建立專案,將該專案對映到 windows 的目錄中,我們在 windows 環境下寫程式碼,而程式碼在虛擬機器的環境中被做處理,在 windows 環境下訪問對應的站點檢視執行結果,沒錯,就是這麼個意思。

當然,我們也可以在 windows 下建立普通的 laravel 專案,然後對映到 ubuntu 的目錄中,但這樣做的話,需要 laravel 命令或 composer 命令,我們並沒有在 windows 下安裝 laravel 安裝器或 composer,別忘了 homestead 環境的初心哦~ ubuntu 中已經自帶了 composer 和laravel 安裝器了,windows 就沒必要在安裝了~。

- 建立專案前的配置

專案目錄對映:

在建立專案前,我們要在windows下選擇一個目錄存放專案,比如在D盤建立一個projects資料夾: D:\projects (虛擬機器中的專案的實體就放在這裡面了)

配置對映:開啟D:\homestead\homestead\Homestead.yaml,修改內容如下

我們知道,所有的一切都在虛擬機器當中,包括apache、Nginx等web伺服器,而windows下並沒有安裝 apache 等web伺服器,而訪問 192.168.10.10 該站點,即是訪問虛擬機器的 web 伺服器,從而可以實現訪問 index.php

檢查專案目錄是否對映成功:

每次修改 Homestead.yaml 內容,都要重啟虛擬機器

// 在 D:\homestead\homestead 目錄下
$ vagrant reload --provision
重啟成功

切換到虛擬機器命令列,檢視目錄結構:

// 在 D:\homestead\homestead 目錄下
$ vagrant ssh
...
vagrant@homestead:~$ ls
Desktop  Documents  Downloads  Music  Pictures  projects  Public  Templates  vendor  Videos

會發現多了一個 projects 目錄,這就說明專案檔案對映成功了。

檢查站點是否對映成功:

開啟 192.168.10.10 顯示了一段字元 :No input file specified. 就代表對映成功了,因為沒有 index.php ,所以就顯示這段字元,若失敗了,會顯示“無法顯示此網頁”。

檢查站點目錄是否對映成功:

D:\projects 中建立一個 demo 資料夾,在 demo 中再建立一個 public 資料夾,再在 public 中建立 index.php ,即 D:\projects\demo\public\index.php ,在 index.php 中寫入以下內容並儲存:

<?php
echo "abc";

將剛剛開啟的網頁關閉(不關閉的話可能顯示的還是剛剛的內容),重新開啟該站點 192.168.10.10 ,顯示 “abc” 代表對映成功。

將 ip 地址訪問形式改成 url 的形式訪問:

開啟 Homestead.yaml ,將紅色框框裡的網址改成你想要的,並儲存。

開啟 C:\Windows\System32\drivers\etc\hosts ,填入:

192.168.10.10 homestead.test

便實現了url 與 ip 地址的對映了。

重啟虛擬機器:

// 在 D:\homestead\homestead 目錄下
$ vagrant reload --provision
重啟成功

訪問 homestead.test 成功顯示 “abc” 代表成功。

- 建立基於 Homestead 環境的 Laravel 框架

上面我們只是建立了一個index.php,它顯然不是一個框架。

之前說了,需要在虛擬機器中建立專案,但由於虛擬機器裡面無法開啟命令列的問題暫時沒有解決,所以我們直接從 windows 命令列中,切換到 ubuntu 命令列,在 windows 中使用 ubuntu 的命令列進行建立專案。(記住, windows 下可是沒有 composer 或 laravel 安裝器,只有虛擬機器中有!)

  1. 刪除 D:\projects 目錄下的 demo 檔案。

  2. 切換命令列至 ubuntu 命令列:

    // 在 D:\homestead\homestead 目錄下
    $ vagrant ssh
    ...
    vagrant@homestead:~$ ls
    Desktop  Documents  Downloads  Music  Pictures  projects  Public  Templates  vendor  Videos
    vagrant@homestead:~$ cd projects  
    vagrant@homestead:~$ laravel new demo // 建立一個名為 demo 的 laravel 專案
    ...耐心等待
    Application ready! Build something amazing.
    建立成功。

    注意:要在 projects 目錄下 執行 laravel new demo 才會成功。

  3. 關閉已經開啟的站點並重新訪問:homestead.test

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章