mac vagrant 创建 lnmp 开发环境

简介: 建议使用迅雷下载,浏览器下载可能太慢。123实操笔记mac homebrew 安装 vagrant$ brew cask install vagrantCloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'.

centos7 官方镜像 https://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-1707_01.VirtualBox.box

建议使用迅雷下载,浏览器下载可能太慢。

实操笔记

mac homebrew 安装 vagrant

$ brew cask install vagrant
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 4189, done.
remote: Counting objects: 100% (4189/4189), done.
remote: Compressing objects: 100% (4167/4167), done.
remote: Total 4189 (delta 26), reused 654 (delta 19), pack-reused 0
Receiving objects: 100% (4189/4189), 1.33 MiB | 975.00 KiB/s, done.
Resolving deltas: 100% (26/26), done.
Checking connectivity... done.
Tapped 1 command and 4092 casks (4,197 files, 4.3MB).
==> Satisfying dependencies
==> Downloading https://releases.hashicorp.com/vagrant/2.2.2/vagrant_2.2.2_x86_64.dmg
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'vagrant'.
==> Installing Cask vagrant
==> Running installer for vagrant; your password may be necessary.
==> Package installers may write to any location; options such as --appdir are ignored.
Password:
installer: Package name is Vagrant
installer: Installing at base path /
installer: The install was successful.
vagrant was successfully installed!

把下载好的box镜像安装到本地

$ vagrant box add lnmp ~/Downloads/CentOS-7-x86_64-Vagrant-1707_01.VirtualBox.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'lnmp' (v0) for provider:
    box: Unpacking necessary files from: file:///Users/zhoumengkang/Downloads/CentOS-7-x86_64-Vagrant-1707_01.VirtualBox.box
==> box: Successfully added box 'lnmp' (v0) for 'virtualbox'!

查看已有的 vagrant box 列表

$ vagrant box list
lnmp (virtualbox, 0)

初始化该 box

$ vagrant init lnmp
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

我们执行 vagrant init <本地 box 名称> 会在当前目录生成 Vagrantfile 文件
屏幕快照 2019-01-05 08.58.49 AM.png

启动虚拟机

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'lnmp'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant-lnmp_default_1546650046283_10632
==> default: Vagrant has detected a configuration issue which exposes a
==> default: vulnerability with the installed version of VirtualBox. The
==> default: current guest is configured to use an E1000 NIC type for a
==> default: network adapter which is vulnerable in this version of VirtualBox.
==> default: Ensure the guest is trusted to use this configuration or update
==> default: the NIC type using one of the methods below:
==> default:
==> default:   https://www.vagrantup.com/docs/virtualbox/configuration.html#default-nic-type
==> default:   https://www.vagrantup.com/docs/virtualbox/networking.html#virtualbox-nic-type
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Rsyncing folder: /Users/zhoumengkang/vagrant-lnmp/ => /vagrant

登录虚拟机

$ vagrant ssh
Last login: Sat Jan  5 01:03:42 2019 from 10.0.2.2
[vagrant@bogon ~]$

修改虚拟机配置 Vagrantfile

我们修改两项即可,端口映射和目录同步,方便开发。

config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.synced_folder  "/Users/zhoumengkang/PhpstormProjects/yq-lib", "/home/vagrant/yq-lib"

这样宿主机的/Users/zhoumengkang/PhpstormProjects/yq-lib就和虚拟机的/home/vagrant/yq-lib可以同步了。

目录同步可能遇到的问题,解决办法参考 https://mengkang.net/1315.html

屏幕快照 2019-01-05 09.34.43 AM.png

虚拟机重启后

vagrant halt && vagrant up

查看目录同步是否正常

$ vagrant ssh
Last login: Sat Jan  5 02:33:05 2019 from 10.0.2.2
[vagrant@localhost ~]$ ls
yq-lib
[vagrant@localhost ~]$ cd yq-lib/
[vagrant@localhost yq-lib]$ ls
boot.php  composer.json  composer.lock  public  vendor  Yq

安装 lnmp 环境

我比较习惯lnmp.org一键安装包,所以参考官网的做法

yum install wget -y
wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5
sudo ./install.sh lnmp

问题1 虚拟机内存不够

You will Install MySQL 5.6.40
Memory less than 1GB, can't install MySQL 5.6+ or MairaDB 10+!

修改 Vagrantfile 调整内存

config.vm.provider "virtualbox" do |vb|
  vb.memory = 2048
end

问题2 目录没有权限 nginx 403

用lnmp工具设置web 目录为 /home/vagrant/yq-lib/public ,把vagrant设置为755

打包分享

进入我们生成Vagrantfile目录里,执行vagrant package打包
屏幕快照 2019-01-05 下午4.54.34.png
不过最后生成的 box 文件怎么这么大 3.8G

目录
相关文章
|
9月前
|
iOS开发 MacOS Python
在Mac 上搭建Pygame开发环境(含安装错误的解决办法)
在Mac 上搭建Pygame开发环境(含安装错误的解决办法)
|
C语言 计算机视觉 C++
Mac 下搭建 Clion + OpenCV4.x 的开发环境
Mac 下搭建 Clion + OpenCV4.x 的开发环境
494 0
Mac 下搭建 Clion + OpenCV4.x 的开发环境
|
4月前
|
关系型数据库 MySQL PHP
Docker六脉神剑(二) 使用Docker构建lnmp开发环境
Docker六脉神剑(二) 使用Docker构建lnmp开发环境
34 0
|
10月前
|
Go 开发工具
mac下安装go的开发环境
mac下安装go的开发环境
|
Go 开发工具 iOS开发
Mac 下搭建 Go 开发环境 | 学习笔记
快速学习 Mac 下搭建 Go 开发环境
381 0
|
敏捷开发 Ubuntu Unix
一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境
时光荏苒,过隙白驹,进入2023年,著名敏捷开发语言Python也放出了3.10最终版,本次我们来展示一下在不同的系统和平台中,高效部署Python3.10开发环境,这里我们并不依赖其他的三方软件,只通过Python官方的安装包进行配置,编辑器我们依然使用微软开源的Vscode,争取在一分钟以内就可以在一台干净的开发机上部署好环境,省去一些不必要的步骤。
一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境
|
Oracle Java 关系型数据库
珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)
也许有人从未听说过Python,但是不会有人没听说过Java,它作为一个拥有悠久历史的老牌编程语言,常年雄踞TIOBE编程语言榜首,其顶尖的霸主地位不可撼动,而M1 mac业已发布了一段时间,作为跨时代的顶级芯片系统,这两大巨头能否珠联璧合,让开发者们猛虎添翼、更上层楼?本次我们尝试在M1 mac系统中搭建Java开发环境,并且集成目前Web开发领域红的发紫的Springboot框架,另外,谁说玩儿Java就必须得用Eclipse或者IntelliJ IDEA?我们就骄傲地使用Vscode。
珠联壁合地设天造|M1 Mac os(Apple Silicon)基于vscode(arm64)配置搭建Java开发环境(集成web框架Springboot)
|
机器学习/深度学习 开发框架 Java
别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境
在每个开发者心里,都会有一门“最好”的语言,在这个世界的某个深处,在一些矫矫不群的人们心中,这门语言的名字叫做Ruby,它今年二十八岁了,历史和Java一样的悠久,但是它没有大厂背书、它的性能被开发者诟病、时至今日依然无法高效利用多核资源,甚至于它每年都要被“死亡”一次,相比于有太阳计算机系统、甲骨文、IBM 这些大公司支持的 Java,它是那么的一无所有,但是,它又拥有全世界最虔诚的“信徒”,拥有最活跃的开发者社区,这一切,又让它是那么的应有尽有。是的,这就是Rubyist的理念:有的时候,你想证明给一万个人看,到后来,你发现只得到了一个明白的人,那就够了。
别梦依稀咒逝川,Ruby二十八年前|M1芯片Mac os系统配置Ruby(3.0.0) on Rails(6.1.1)开发环境
|
JavaScript Java 关系型数据库
Mac不会用?玩转brew,部署web开发环境【jdk、git、msyql、maven、node】全家桶,前后端覆盖
Mac不会用?玩转brew,部署web开发环境【jdk、git、msyql、maven、node】全家桶,前后端覆盖
936 0
Mac不会用?玩转brew,部署web开发环境【jdk、git、msyql、maven、node】全家桶,前后端覆盖
|
存储 分布式计算 Hadoop
Hadoop学习(一) MAC OS下安装Hadoop开发环境
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
224 0