对于如何创建一个Laravel项目,相信对新接触Laravel的朋友并不存在太多的问题,但是今天我们要来看一下如何将已有的Laravel项目迁移(复制)到新的开发环境。
我们需要用到的工具是git,如果你不知道git是什么,这里有一个传送门,看完之后再回来:
简单说来,git就是Github开发的VCS(Version Control System),即版本控制系统。如果你使用过SVN,那么你应该很清楚版本控制是什么。
本文的示例环境是Ubuntu 16.04 LTS,Windows的朋友可以在Git bash下进行操作。
为了便于理解和操作,我会在本地系统环境下进行演示,如果项目在服务器端也没关系,我在文中会提到具体操作。
假设我们已经创建好了一个项目,项目地址为/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时所创建专门用于git的用户。
克隆命令并没有变化:
$ git clone git@50.100.150.260:/srv/git/example.git
只是地址变更了而已。
好了,那么我们克隆完成之后,我们就需要进行下一步了。
首先我们需要先运行
$ composer install
来安装项目需求的包裹。因为在git clone时,位于vendor文件夹下的包裹将不会被拷贝,所以我们需要重新安装这些包裹。
完成之后,我们需要创建.env环境文件。
可能你已经注意到,我们新建Laravel项目的时候,.env文件将自动被创建在项目根目录下。但是这个文件是用于不同环境下项目配置的,所以在git clone时这个文件同样不会被拷贝至新路径。
好在Laravel自带了一个.env文件的样本,来提供我们一个基础的配置模板:
$ cp .env.example .env
现在我们有了.env环境配置文件,我们需要生成新的app key:
$ php artisan key:generate
接下来打开.env文件,你会发现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一行,我们填入该环境下数据库名称,DB_USERNAME及DB_PASSWORD一行,我们分别填入管理该数据库的用户名和密码。
好了,现在我们保存文件。如果你有数据库迁移文件(migration),那么现在可以运行
$ php artisan migrate
来进行数据库的迁移,如果有种子文件(seeder)的话,继续运行
$ php artisan db:seed
进行seeding即可。
当然以上两个命令可以合并:
$ php artisan migrate --seed
注意,原始项目数据库里除了使用seeder生成的数据仍然需要自行拷贝至新的数据库。
好了,这样一来我们后端的配置就完成了,如果你用了Laravel Mix来编译前端文件,那么你还需要
$ npm install
注意:Windows环境下请运行npm install --save-dev --no-bin-links
最后要说的一点,如果你是迁移到服务器环境下,那么你需要将storage文件夹及其包含的文件进行权限的调整:
$ chown -R www-data: storage
否则可能出现相应权限的错误。具体的权限调整请根据你环境的具体情况进行。
好了,现在我们已经成功地将Laravel迁移至了新的开发环境!
本文主地讲解了如何使用git迁移Laravel项目至新开发环境的步骤详解,更多关于Laravel框架的使用技巧请查看下面的相关链接