熟悉Laravel框架开发(一)搭建Laravel统一开发环境

熟悉Laravel框架开发(一)搭建Laravel统一开发环境

  • 中文资料

构建Laravel开发环境:https://learnku.com/docs/laravel-development-environment

(一)开发环境搭建准备

1、宿主机(本地)环境
  • Windows 10
  • VirtualBox
  • Vagrant
2、安装VirtualBox
  • VirtualBox简介

VirtualBox是一款开源虚拟机软件(功能比VMware略少)

(1)选择最新版 VIrtualBox 6.1.26 下载 Windows hosts

在这里插入图片描述

(2)下载完成后,按照默认设置安装。
3、安装Vagrant
  • Vagrant简介

Vagrant是一个基于Ruby的工具。Vagrant 使用Oracle VM VirtualBox 动态创建和配置轻量级的,可重现的,便携的虚拟机环境。Vagrant 可以将一整套虚拟环境封装在一个box 内,只要都使用这个box,就可以实现开发环境的统一。

(1)选择Windows 64 bit下载最新版

在这里插入图片描述

(2)下载完成后按照默认设置安装

(二)Laravel开发环境Homestead

  • Homestead简介

Homestead 是一个官方预封装的 Vagrant box,提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件,并且Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。

  • Homestead 基于虚拟机技术 ( VirtualBox + vagrant )为Laravel提供了量身定制的开发环境。

  • 注意:在Laravel 8.x中,不再推荐使用“虚拟机开发环境-homestead”作为开发环境,而是换为了"Docker开发环境-Sail",Sail 依赖于 Docker 和 Docker Compose。

  • 官方预装的Homestead/laravel Box: https://app.vagrantup.com/laravel/boxes/homestead

1、初始化homestead: 向 Vagrant 添加 box

原型:vagrant box add address
描述:向Vagrant添加一个具有给定地址的box

  • 通常 vagrant 添加 box 有三种指定方式:公共镜像缩写名、指定URL、本地box,如下:
# 方式一:使用Vagrant公共镜像名称从默认地址远程添加box, vagrant从https://app.vagrantup.com/boxes/search中下载各种镜像
vagrant box add laravel/homestead

# 方式二:指定URL远程添加box,vagrant从指定的url下载box
vagrant box add https://app.vagrantup.com/laravel/boxes/homestead/virtualbox.box

# 方式三:导入本地box
vagrant box add alias xxx.box
  • 常用vagrant box命令
# 查看导入的box
vagrant box list
# 移除导入的box
vagrant box remove alias
2、初始化homestead: 初始化 Vagrant 环境(工作目录)

原型:vagrant init [name [url]]
描述:创建Vagrantfile文件(文件不存在)来初始化当前目录为 Vagrant 环境。
参数:name(可选):将在创建的Vagrantfile中预填充config.vm.box 。
参数:url(可选):将在创建的Vagrantfile中预填充config.vm.box_url。

  • vagrant init初始化vagrant工作目录生成Vagrantfile文件
vagrant init laravel/homestead
  • 注意:
  • vagrant init的主要作用是在当前目录下生成一个vagrantfile配置文件,如果该文件已经存在或者手动创建/移植,则不用执行该命令。
  • vagrantfile 仅在第一次执行vagrant up 时作用于虚拟机,如果修改后想作用于虚拟机需执行 vagrant reload 重新加载配置文件。
3、初始化homestead: Vagrantfile配置文件设置详解

1、初始化完成后,在工作目录下有一个Vagrantfile文件,该文件包含的配置信息可以定义虚拟机的各种配置,如网络、内存、主机名等。
2、其主要包括三个方面的配置,虚拟机的配置、SSH配置、Vagrant的一些基础配置。
3、Vagrant是使用Ruby开发的,所以它的配置语法也是Ruby的。

# Vagrantfile配置文件描述,“2”表示用于1.1+到2.0.x的配置(目前仅支持“1”和“2”)
Vagrant.configure("2") do |config|

  # 虚拟机配置
  # box设置,可以通过vagrant init时预设,需要使用的已经添加到vagrant的box (如果不同,或者直接指定路径,会再次添加一个box, 其所有box存储在C:/user(用户)/登录名/.vagrant.d/boxes下)
  config.vm.box = "laravel/homestead"
  # box url设置,如果config.vm.box的配置是已经添加到vagrant的box,那么不需要配置该项,否则应该指向该box的地址
  config.vm.box_url = false|URL
  # hostname设置,虚拟机主机名,可在vagrant up时指定需要启动的虚拟机
  config.vm.hostname = "print_server"
  # 虚拟机网络设置,vagrant网络连接方式有三种:NAT(缺省创建,用于让vm可以通过host转发访问局域网甚至互联网。)、HOST-ONLY(仅主机)、BRIDGE(桥接网络)
  config.vm.network "private_network,ip=xx.xx.xx.xx" #配置当前虚拟机host-only网络的ip为xx.xx.xx.xx
  config.vm.network "private_network","type=dhcp"	 #配置当前虚拟机host-only网络的ip才用dhcp方式生成
  config.vm.network "public_network", ip: "192.168.0.17" #创建一个bridge桥接网络,指定IP
  config.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" #创建一个bridge桥接网络,指定桥接适配器
  config.vm.network "public_network"	#创建一个bridge桥接网络,不指定桥接适配器
  # 设置同步目录,将本地目录同步共享到虚拟机,并设置文件权限
  config.vm.synced_folder "宿主机目录","虚拟机挂载目录",mount_options:["dmode=777,fmode=777"]
  # config.vm.provider: vm提供者配置,针对virtualbox定义一个提供者并对virtualbox特有的配置(不同的provider配置不完全相同)
  config.vm.provider "virtualbox" do |vb| # 服务提供者为virtualbox,定义别名为vb
    vb.name = "xxx" 	#通用配置:virtualbox控制台中的虚拟机名称,如果不指定 会默认生成一个随机的名称
	vb.gui = false  	#通用配置:vagrant up启动虚拟机时是否自动打开virtual box窗口
    vb.memory = "1024" 	#通用配置:设置虚拟机内存 
    vb.cpus = 2  		#通用配置:设置虚拟机CPU个数
    # 还有一些仅适用与virtualbox的个性化设置:https://www.virtualbox.org/manual/
  end
  
  # 虚拟机配置 - 分布式环境(多个虚拟机)
  # 当定义了多个主机后,在使用vagrant 操作虚拟机时需要加上主机名(由nodename.vm.hostname指定,同时不再设置config.vm.hostname)
  # 分布式环境的配置可以与上述虚拟机配置一同使用,但处于config.vm.define中虚拟机配置仅针对于其指定hostname的虚拟机。
  # 其命令与 config.vm.xx 区别在于前缀采用自定义的节点名称: nodename.vm.xx
  # 单个虚拟机环境可以忽略该配置。
  # config.vm.define: 定义虚拟机配置节点(一个节点就是一个虚拟机,可以定义多个主机,主要用于建立分布式环境)
  config.vm.define “dev”,primary:true do |dev| #primary 指定主节点
	dev.vm.hostname = "dev"  #设置主节点的主机名称
	dev,vm.network  =  ....  #设置主节点的网络
  end
  
  # SSH配置(配置vagrant怎样通过ssh访问虚拟机)
  # config.ssh.username:设置ssh登录用户名,默认为'vagrant',官方预封装的box采用默认值
  config,ssh.username = "root"
  # config.ssh.password: 设置用于认证 Vagrant 的 SSH 用户的密码,官方预封装的box不用设置。
  config.ssh.password = “vagrant”
  # config.ssh.host: ssh连接到的主机名或IP地址。默认为空,一般由provider自动找出
  config.ssh.host = xxxx
  # config.ssh.port: ssh连接到的端口,默认为22
  config.ssh.port = 22
  # config.ssh.insert_key : 是否插入密钥对,如果为 true,Vagrant 会自动插入一个用于 SSH 的密钥对,如果检测到机器内部的 Vagrant 默认不安全密钥,则替换。默认情况下是 true。
  config。ssh.insert_key = 'true'
end
4、初始化homestead: 启动 laravel/homestead
# 启动 laravel/homestead box 虚拟机(ubuntu 20.04.2)
vagrant up 或 vagrant up laravel/homestead

# 启动完成后登录系统,对于非自定义的box,若无特殊说明 vagrantfile 中 ssh 均采用默认设置
vagrant ssh

# 登录成功后,可修改root密码,如下:
vagrant@vagrant:/$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
  • 设置完成后,laravel开发环境搭建完成。

(三)自定义Laravel开发环境

  • vagrant 官方提供的 laravel/homestead 的操作系统为ubuntu,而如果想要使用其他系统搭建的统一开发环境可以l利用VirtualBox和Vagrant自定义laravel开发环境并导出为box,作为统一开发环境。
1、VirtualBox新建虚拟机
  • 系统镜像:CentOS-8.4.2105-x86_64-dvd1.iso
  • VirtualBox新建虚拟机,设置虚拟机名称,存储目录,类型选择为linux,版本为red har(64-bit),如图:
    在这里插入图片描述
  • 选择内存大小
    在这里插入图片描述
  • 创建虚拟硬盘:现在创建
    在这里插入图片描述
  • 创建虚拟硬盘:VMDK
    在这里插入图片描述
  • 创建虚拟硬盘:动态分配
    在这里插入图片描述
  • 创建虚拟硬盘:文件位置和大小
    在这里插入图片描述
  • 创建完成后启动虚拟机,并选择启动盘(没有就选择 创建 找到系统镜像并添加)
    在这里插入图片描述
  • 选择完成后,正常安装系统
2、虚拟机Laravel环境配置
  • 安装必要的软件
yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum install -y https://repo.ius.io/ius-release-el7.rpm
yum install yum-utils
yum clean all
yum makecache

yum install -y wget vim zip unzip screen

yum-config-manager --disable 'remi-php*'
yum-config-manager --enable   remi-php80
yum update

yum install -y php php-fpm php-redis php-mysql php-mbstring php-pecl-imagick php-pecl-imagick-devel php-mcrypt php-opcache
systemctl enable php-fpm

yum install redis5
systemctl enable redis

yum localinstall  http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install mysql-community-server mysql-community-devel
systemctl start mysqld
grep 'temporary password' /var/log/mysqld.log
systemctl enable mysqld

wget https://openresty.org/package/centos/openresty.repo
mv openresty.repo /etc/yum.repos.d/
yum check-update
yum install -y openresty
systemctl enable openresty
3、导出box
  • 查看已经安装的虚拟机
cd virtualbox安装目录
./VBoxManage list vms
  • 进入到虚拟机的安装目录,打包导出工作环境
cd /e/virtualbox vms/
vagrant package --base CentOS8-laravel --output my_centos8_laravel.box
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值