對于如何創(chuàng)建一個Laravel項目,相信對新接觸Laravel的朋友并不存在太多的問題,但是今天我們要來看一下如何將已有的Laravel項目遷移(復制)到新的開發(fā)環(huán)境。
我們需要用到的工具是git,如果你不知道git是什么,這里有一個傳送門,看完之后再回來:
http://github.com
簡單說來,git就是Github開發(fā)的VCS(Version Control System),即版本控制系統(tǒng)。如果你使用過SVN,那么你應該很清楚版本控制是什么。
本文的示例環(huán)境是Ubuntu 16.04 LTS,Windows的朋友可以在Git bash下進行操作。
為了便于理解和操作,我會在本地系統(tǒng)環(huán)境下進行演示,如果項目在服務器端也沒關系,我在文中會提到具體操作。
假設我們已經創(chuàng)建好了一個項目,項目地址為/home/eagle/webdev/example,
我們先來講解一下整體步驟:
- 在項目文件夾中初始化Git并將所有項目文件添加至working tree。
- 使用git clone命令克隆項目至新地址。
- 配置Laravel并重新安裝dependencies
步驟很明確,那么我們就開始。
首先我們進入本地項目文件夾,初始化git:
$ cd /home/eagle/webdev/example
$ git init
$ git add .
$ git commit -m "initial commit"
這樣一來,我們就可以使用git clone來拷貝我們的項目了:
$ git clone /home/eagle/webdev/example /home/eagle/webdev/new_location
完成后,我們的項目就順利被遷移至了新的文件夾中。
那么如果我們的項目文件不在本地呢,而在遠端服務器呢?
這里我們分為兩種情況。
第一,如果你使用了Github的Repository,那么你的項目地址類似于以下地址
https://github.com/eagle/example.git
那么我們要克隆項目的話,可以直接使用以上地址:
$ git clone https://github.com/eagle/example
第二種情況,我們用了自己的服務器部署Git Server。這種情況稍微復雜一點,我們需要獲取服務器的公共ip(public address)。假設我的服務器公網ip是50.100.150.260,我的項目地址為/srv/git/example.git,那么我們要克隆項目,需要使用以下地址:
git@50.100.150.260:/srv/git/example.git
注意這里git是我們在部署Git Server時所創(chuàng)建專門用于git的用戶。
克隆命令并沒有變化:
$ git clone git@50.100.150.260:/srv/git/example.git
只是地址變更了而已。
好了,那么我們克隆完成之后,我們就需要進行下一步了。
首先我們需要先運行
來安裝項目需求的包裹。因為在git clone時,位于vendor文件夾下的包裹將不會被拷貝,所以我們需要重新安裝這些包裹。
完成之后,我們需要創(chuàng)建.env環(huán)境文件。
可能你已經注意到,我們新建Laravel項目的時候,.env文件將自動被創(chuàng)建在項目根目錄下。但是這個文件是用于不同環(huán)境下項目配置的,所以在git clone時這個文件同樣不會被拷貝至新路徑。
好在Laravel自帶了一個.env文件的樣本,來提供我們一個基礎的配置模板:
現(xiàn)在我們有了.env環(huán)境配置文件,我們需要生成新的app key:
$ php artisan key:generate
接下來打開.env文件,你會發(fā)現(xiàn)APP_KEY一行已經自動填入了我們剛剛生成的key。
接下來我們將數據庫信息填入相應的位置:
[...]
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=eagle
DB_USERNAME=homestead
DB_PASSWORD=secret
[...]
我們看到,DB_DATABASE一行,我們填入該環(huán)境下數據庫名稱,DB_USERNAME及DB_PASSWORD一行,我們分別填入管理該數據庫的用戶名和密碼。
好了,現(xiàn)在我們保存文件。如果你有數據庫遷移文件(migration),那么現(xiàn)在可以運行
來進行數據庫的遷移,如果有種子文件(seeder)的話,繼續(xù)運行
進行seeding即可。
當然以上兩個命令可以合并:
$ php artisan migrate --seed
注意,原始項目數據庫里除了使用seeder生成的數據仍然需要自行拷貝至新的數據庫。
好了,這樣一來我們后端的配置就完成了,如果你用了Laravel Mix來編譯前端文件,那么你還需要
注意:Windows環(huán)境下請運行npm install --save-dev --no-bin-links
最后要說的一點,如果你是遷移到服務器環(huán)境下,那么你需要將storage文件夾及其包含的文件進行權限的調整:
$ chown -R www-data: storage
否則可能出現(xiàn)相應權限的錯誤。具體的權限調整請根據你環(huán)境的具體情況進行。
好了,現(xiàn)在我們已經成功地將Laravel遷移至了新的開發(fā)環(huán)境!
本文主地講解了如何使用git遷移Laravel項目至新開發(fā)環(huán)境的步驟詳解,更多關于Laravel框架的使用技巧請查看下面的相關鏈接
您可能感興趣的文章:- 利用Docker搭建Laravel開發(fā)環(huán)境的完整步驟
- 詳解用Docker搭建Laravel和Vue項目的開發(fā)環(huán)境
- 詳解如何用docker安裝laravel開發(fā)環(huán)境
- 4種Windows系統(tǒng)下Laravel框架的開發(fā)環(huán)境安裝及部署方法詳解