Laravel开发系列一:开发环境安装


前言

我们的开发环境确定为LNMP,其中PHP准备使用Laravel框架进行逻辑实现。 Linux+Nginx+Mysql,本地需要搭建虚拟机,方便调试。 这里使用Laravel提供的Homestead--一个已经集成了上述所有服务的虚拟机镜像。

一、安装虚拟机

1. 安装VirtualBox

下载地址:https://www.virtualbox.org/wiki/Downloads
在windows上,也可以选择VMWare,但是鉴于VirtualBox更轻量,且支持Mac,所以推荐这个。
虚拟机安装好之后,按理需要我们自己去linux官网下载安装镜像进行安装了,但是不需要。接下来的Vagrant,可以帮助我们自动去下载需要的虚拟机镜像文件。

2. 安装Vagrant

下载地址:
https://www.vagrantup.com/downloads
Vagrant是命令行工具,安装好之后会自动设置好环境变量,就可以在cmd环境下直接使用了。
它类似于一个虚拟机镜像的托管平台。我们下载它的目的,就是能够借助这个工具,从它的平台上下载并管理我们需要的虚拟机镜像。

3. 下载Homestead镜像

Homestead,就是一个提前准备好的虚拟机镜像。被托管在Vagrant平台上。它是Laravel的官方组织,提前准备好的,堪称全能的Linux系统镜像文件(不光安装了系统,还安装了很多我们需要的服务,比如Nginx,Mysql,PHP等等)。

安装方式有两个:

a. 利用Vagrant命令安装:在cmd窗口中,执行命令

vagrant box add laravel/homestead

这种方式简单,但问题在于它下载速度会比较慢,啥时候能下载完看网速了。

b. 既然是虚拟机镜像,当然也支持迅雷直接下载然后安装到Vagrant软件里。
b1. 下载地址:https://vagrantcloud.com/laravel/boxes/homestead/versions/11.0.0/providers/virtualbox.box

b2. 用迅雷下载这个文件,放入一个单独目录比如C:\Vagrant\,再创建一个文本文件,更名为:metadata.json,内容如下:

{
    "name": "laravel/homestead",
    "versions":
    [
        {
            "version": "11.0.0",
            "providers": [
                {
                  "name": "virtualbox",
                  "url": "virtualbox.box"
                }
            ]
        }
    ]
}

b3. 在cmd下执行:

1. cd C:\Vagrant\
2. #vagrant安装好之后,会在系统变量里加入其所在目录,是不需要指定目录来运行的。
   #这里先指定目录,是为了找到meta文件
4. vagrant box add metadata.json

到此,虚拟机镜像导入完成
验证:
导入结束后,cmd下执行:

vagrant box list

如果输出:

laravel/homestead (virtualbox, 11.0.0)

则导入成功,进入下一步,配置虚拟机!

二、配置虚拟机

1. 安装Homestead管理工具

前面已经下载并导入了虚拟机镜像,在启动之前,我们需要先配置下虚拟机的一些服务的细节,比如nginx的配置,共享目录。

其实这些配置,我们可以启动后在linux里手动修改,但可以想象,一旦有什么误操作,那我们很可能面临要将所有配置都要重新做一次。

所以这里做的,就是借助一些管理工具,将一些服务配置进行自动化设置。

Homestead除了提供前面下载的虚拟机镜像,还提供了一个针对这个镜像的配置管理工具(其实质是用php写的一个程序,可以生成vagrant配置文件,最终借助vagrant进行配置自动化管理)

因为是用php写的程序,所以我们需要从github上下载源码来进行编译执行。

  1. 需要先在win/mac下安装git客户端工具。
    下载地址:https://git-scm.com/downloads

  2. 安装完成后: 在cmd下执行

1. git clone https://github.com/laravel/homestead.git ~/Homestead
#请记住,我们的这个配置文件目录,就放在~/Homestead,后面还有用
2. cd ~/Homestead
3. # Windows...
init.bat
# Mac / Linux...
bash init.sh

执行结束,会发现目录下多出一个文件:

Homestead.yaml

这个文件,就是我们要操作的配置文件,最终,vagrant也就是通过读取这个文件里的配置,来进行虚拟机镜像的启动设置。

2. 配置 Homestead

打开Homestead.yaml文件,设置如下几个配置项:

#虚拟机所在局域网IP
ip: "192.168.10.10"

#设置虚拟机工具
provider: virtualbox

#共享目录
#将工程创建在这个目录里,就可以在Win/Mac下写代码,Linux虚拟机那边实施运行测试了
#需要提前在win/mac机器上将~/code/Laravel/Projects目录创建好
folders:
    - map: ~/code/Laravel/Projects
      to: /home/vagrant/Laravel/Projects

#Nginx设置域名对应根目录
#假设我们创建的Laravel工程目录是TestProject,而其web服务入口文件就在public/index.php
#这样设置之后,就可以在win/mac这边的浏览器直接输入homestead.test来测试TestProject工程
sites:
    - map: homestead.test
      to: /home/vagrant/Laravel/Projects/TestProject/public

3. 配置WebServer域名

前面步骤的nginx域名,其实是局域网域名,必须在win/mac上设置host文件,指定其IP进行关联。
在 Mac 和 Linux 上,其位于 /etc/hosts 。在 Windows 上,其位于 C:\Windows\System32\drivers\etc\hosts 。添加到 hosts 文件中的记录如下:

192.168.10.10  homestead.test

注意:win下可能需要管理员权限才能编辑

4. 启动虚拟机

在cmd下执行:

#要启动虚拟机,要用使用到第二步完成的配置文件
#Homestead.yaml,所以这里要先指定目录
1. cd ~/Homestead
2. vagrant up

启动成功后,可以用这个命令来登陆虚拟机:

vagrant ssh

登陆后,就可以在linux下去修改一些其他服务的配置了。

但是,homestead.test域名目前还是无法打开,因为webserver其实没有启动成功,毕竟,我们还没有创建Laravel工程。之前的site目录,只是预留而已。

至此,系统环境已经配置完成!

三、检查虚拟机

安装完所有环境之后,我们有必要进行一次检查,确定是否所有服务都已经按照预想启动
因为我们要经常ssh到虚拟机,所以推荐用Xshell这样比较专业的ssh软件。
或者前面安装git附带的git-bash也不错,完全可以替代CMD。启动方式如下图:

1. 共享目录

还记得在Homestead.yaml中设置的共享目录吧

folders:
    - map: ~/code/Laravel/Projects
      to: /home/vagrant/Laravel/Projects

在启动虚拟机之前,一定要确保本地的目录已经创建好。

为了方便检验,甚至可以放一个测试的test.txt文件到 win/mac: ~/code/Laravel/Projects 目录下(~指的是用户根目录,一般在C盘)

虚拟机那边,我们连接之后,会自动进入共享根目录:

vagrant@laravel:~$ pwd
/home/vagrant
vagrant@laravel:~$ ls
Laravel
vagrant@laravel:~$ ls Laravel/Projects/
test.txt

当你能在虚拟机这边找到映射的目录和文件之后,说明共享目录设定OK。两边的文件完全同步了。

2. Nginx设置

对照Homestead.yaml中设置的Nginx映射地址

sites:
    - map: homestead.test
      to: /home/vagrant/Laravel/Projects/TestProject/public

在虚拟机中,这一步会为Nginx生成新的配置文件,只要这个文件存在既是成功:

vagrant@laravel:~$ cat /etc/nginx/sites-enabled/homestead.test
server {
    listen 80;
    listen 443 ssl http2;
    server_name .homestead.test;
    root "/home/vagrant/Laravel/Projects/TestProject/public";
    ......

如果发现没有这个文件,或者目录不对,很有可能是在完成Homestead.yaml配置之前,
就已经启动过虚拟机,导致新配置没有重新生效。
这种情况,可以用如下命令重新打开虚拟机:

#要重启虚拟机,要用使用到第二步完成的配置文件
#Homestead.yaml,所以这里要先指定目录
1. cd ~/Homestead
#--provision代表重新加载配置文件
2. vagrant reload --provision

至此,系统环境已经检查完成!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值