Vagrant搭建虚拟化开发环境(三)高级配置

上一篇说了Web开发环境配置,其实还有点问题,留到搭建框架环境的时候说,本篇说下vagrant的高级配置。

我们为什么用vagrant,其实就是希望让代码运行到虚拟机的环境,但是开发还是用本机的软件。换句话说 我在Window的电脑上开发,代码却是运行在Linux环境上,我依然可以用Windows系统上的QQ聊天、谷歌浏览器调试或者是用IEDA等开发工具写代码等等,而实现这些操作就需要了解Vagrant的一些配置。

上一篇文章地址:https://www.cnblogs.com/phperpxy/p/10338009.html

端口转发

上一节结尾说了一下端口转发的操作,也就是可以通过宿主机的浏览器访问虚拟机Webserver,但是当重启vagrant虚拟机的时候 端口转发会失效,因为每次启动vagrant,它会按它的配置文件进行重新设置

官方教程 :https://www.vagrantup.com/docs/networking/forwarded_ports.html

 编辑vagrantfile文件 添加配置项 以下操作都是通过编辑这个配置文件实现

//guest虚拟机端口  host主机端口
//将主机8888端口 映射到虚拟机的80端口
config.vm.network "forwarded_port", guest: 80, host: 8888
//将主机8889端口 映射到虚拟机的8888端口
config.vm.network "forwarded_port", guest: 8888, host: 8889

重启vagrant reload/或者启动vagrant up 可以看到配置生效

可以看到Virtualbox也是设置好的

注意:实际开发过程中 这个操作用的很少,因为通常开发都是用一个WebServer,其次一般不用127.0.0.1这样的地址访问,后面会说

共享目录

这个说白就是,你在Window系统上有个目录比方说D:/phpcode,Linux虚拟机指定一个目录比如/home/www,共享目录就是你在D:/phpcode下的所有文件操作都会同步到虚拟机的home/www目录下,换句话说,D:/phpcode下的文件和/home/www保持一致,我认为这也就是vagrant的最强大的地方,实现Windows环境开发,Linux环境运行的关键

官方教程:https://www.vagrantup.com/docs/synced-folders/basic_usage.html

原理就是Linux的挂载操作,关于挂载看这篇文章:https://blog.csdn.net/qq_39521554/article/details/79501714

#主机目录--映射--虚拟机某个目录
config.vm.synced_folder "D:/phpcode", "/home/www"
#配置共享目录一定要配置成私有IP
config.vm.network "private_network", ip: "192.168.33.10"

重启虚拟机,我第一次卡住报错,挂载不上,后来发现主要是下面的问题

1. VirtualBox版本过低

2.缺少增强工具(主要是这个问题)

sudo apt-get install virtualbox-guest-utils #安装增强工具
vagrant reload #重启

解决同步目录bug(同步不及时)

官方文档:https://www.vagrantup.com/docs/synced-folders/virtualbox.html

cd /etc/nginx/
sudo vim nginx.conf  #更改sendfile off;  Apache默认已经禁用了
sudo service nginx restart #重启nginx

网络配置

官方教程 :https://www.vagrantup.com/docs/networking/

之前说共享目录提了下私有网络(要配置共享目录一定要配置私有网络),私有网络还有个好处就是可以直接输入这个ip访问Webserver

公有网络:ip需要和主机的ip段一致 也就是前3位要一样。好处是如果是在局域网下,其他人可以通过ip直接访问(基本用不上

#配置私有网络
config.vm.network "private_network", ip: "192.168.33.10"
#配置公有网络
config.vm.network "public_network", ip: "192.168.33.10"

猜你喜欢

转载自www.cnblogs.com/phperpxy/p/10338427.html