Ubuntu下Laravel的开发环境安装及部署(Vagrant + Homestead)

时间:2024-10-03 07:49:05

2018-2-6 更新
注意! laravel/homestead box项目地址已经不再是原来的 /laravel/boxes/homestead,而已经变更成 /laravel/boxes/homestead
,所以本文中的操作以及链接也进行了相应的更新。

之前写了一篇如何在Windows 10下进行Laravel开发环境的安装及部署,今天我们要一起来看一下如何在Linux下进行搭建。

本文中使用了Ubuntu 16.04 LTSVagrant 2.0.0版本以及Homestead 5.1.0

好了,废话不多说,赶快开始吧!


首先还是需要下载相应的安装包文件。

/ 可以下载到Vagrant的最新版本:
Vagrant Download

注意,我们下载Debian 64-bit版本。下载完成后,双击下载的.deb文件进行安装(需要验证管理员密码)。完成后,我们继续下一步。


下面我们需要安装Virtual Box。请访问以下链接寻找适合你系统的版本,这里我们使用的是Ubuntu 16.04 LTS 64bit,所以我们AMD64版本。注意,图片中我们看到的是5.2.0版本,但是该版本不支持vagrant 2.0.0,所以我们需要下载VBox 5.1版本(图片下部的链接为5.1版本):
Virtual Box Installation
/wiki/Download_Old_Builds_5_1

下载完成后双击进行安装。


接下来我们需要下载Homestead 5.1.0。将以下的地址复制到下载工具中,并将下载的文件重命名为homestead.5.1.
/laravel/boxes/homestead/versions/5.1.0/providers/


接下来我们需要将Homestead添加至vagrant中):

$ sudo vagrant box add laravel/homestead ~/path/to/your/homestead.5.1.0.box
  • 1

注意,需要将以上~/path/to/your/路劲替换成你刚刚保存homestead.5.1.的路径,还有不要以root身份直接运行该命令,而是使用sudo,否则在~/中将找不到.文件夹。

然后我们进入到~/./boxes/laravel-VAGRANTSLASH-homestead文件夹中(如果没有看到这个文件夹,请在~/文件夹中按下ctrl + h显示所有文件),将0这个文件夹名字改为5.1.0。然后新建一个空白文件(无任何后缀),名字为metadata_url,里面的内容为:/laravel/homestead(注意不要留任何空白字符)。

完成后,我们就可以开始配置Homestead了。


我们从Github上把Homestead配置clone下来:

$ cd
$ git clone https:///laravel/
  • 1
  • 2

接下来,我们需要初始化配置:

# cd到我们刚刚克隆好的homestead文件夹
$ cd homestead
$ bash 
  • 1
  • 2
  • 3

然后我们就可以修改这个配置文件了:

$ vim Homestead.yaml
  • 1

可以看到,配置文件内容如下:

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

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

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

databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

# ports:
#     - send: 50000
#       to: 5000
#     - send: 7777
#       to: 777
#       protocol: udp
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

我们一项一项来配置。首先是

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa
  • 1
  • 2
  • 3
  • 4

这段,我们需要设置ssh的公钥和私钥。在本地环境输入以下命令:

eagle@EagleEye: cd ~/.ssh
eagle@EagleEye: ~/.ssh$ sudo ssh-keygen -t rsa -C "Homestead"

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): your_rsa_name
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in your_rsa_name.
Your public key has been saved in your_rsa_name.pub.
The key fingerprint is:
SHA256:lBUtkkHYGFtCugouCp9Xvp2eGP4xCArKmrCVA/HJam0 Homestead
The key's randomart image is:
+---[RSA 2048]----+
|     .+*+ooo     |
|     .o++o. .    |
|.   . . o. .     |
| + . . .         |
|+ + o   S        |
|+=.+ ...         |
|*+*E oo o        |
|B=.o...+ =       |
|= o.  ++*        |
+----[SHA256]-----+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

注意上面我们的文件名可以替换成自定义的名字,在输入密码的步骤时可以直接回车密码留空。
接下来我们需要把配置文件的名字替换成我们刚刚设置的文件名:

authorize: ~/.ssh/your_rsa_name.pub

keys:
    - ~/.ssh/your_rsa_name
  • 1
  • 2
  • 3
  • 4

那么这一步配置就OK了。


下一步我们看到这一段配置:

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

sites:
    - map: 
      to: /home/vagrant/Code/laravel/public

databases:
    - homestead
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

folders配置中,map之后的路径对应的是本地文件的路径,to对应的是本地文件映射到虚拟机中对应的路径。
sites配置中,map之后的字符串是我们在浏览器中输入的可以用来访问我们项目的地址,可以根据个人喜好来,比如或者,而to对应的是虚拟机中项目文件的public路径,类似于apache默认的/var/www/html文件夹,指向这个文件夹可以直接访问我们的项目。
databases配置中,是我们指定需要创建的数据库名称,默认为homestead,我们可以添加多个需要使用的数据库名称。

下面我给出一个配置的例子:

folders:
    - map: ~/webdev
      to: /home/webdev

sites:
    - map: 
      to: /home/webdev/phantastic/public

databases:
    - phantastic
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

这样我们的Homestead就配置完成。现在我们可以开启虚拟机了:

$ cd ~/Homestead
$ sudo vagrant up
  • 1
  • 2

注意,一定要加上sudo,也不能直接切换成su运行命令。
等虚拟机启动好后,我们输入
sudo vagrant ssh就可以ssh进入虚拟机了。

要访问我们的项目,我们还有一个很重要的步骤:更改一下hosts文件:

$ sudo su --
$ vim /etc/hosts

127.0.0.1       localhost
127.0.1.1       EagleEye

192.168.10.10   phantastic.test

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

可以看到,我们将我们的项目地址和对应虚拟机ip地址加入到了hosts文件中。如果我们有多个项目,那么我们可以将每一个项目的地址添加进去,项目对应的ip全部都是192.168.10.10

现在我们就可以打开浏览器访问我们的项目了!打开浏览器,输入,浏览器会自动访问该地址对应的项目。

好了,那么今天我们就讲解到这里,如果有阐释不清晰的地方,可以留言多多交流。