资讯专栏INFORMATION COLUMN

Vagrant搭建可移动的PHP开发环境

ckllj / 1097人阅读

摘要:准备开发所需工具系统环境搭建系统搭建环境以及环境为啥不用因为很多公司用的,然而才能正常支持,在下安装一大堆东西不行,折腾了好些下,决定不躺着个坑。

准备

开发所需工具:

Vagrant

Oneinstack

Virtualbox

Vagrant box

系统环境:macOS Sierra 10.12.5
搭建系统:CentOS 7
搭建环境:Oneinstack(PHP以及Java环境

为啥不用docker?因为很多公司用的windows,然而windows 10才能正常支持,在wineows下安装一大堆东西不行,折腾了好些下,决定不躺着个坑。

安装

首先需要先安装VirtualboxVagrant,按照官方文档选择对应操作系统安装即可。

检查是否安装完成

➜  ~ vagrant -v
Vagrant 1.9.8

准备就绪,走起!!!

走起
➜ morgan cd path          #cd 到你要操作的目录
➜ path mkdir vagrant      #创建目录
➜ vagrant cd vagrant      #进入目录

选择boxs,打开Vagrant box,在box列表选择CentOS 7 x64 (Minimal, Shrinked, Guest Additions 4.3.26) (Monthly updates)根据你的需要选择对应的系统,复制对应URL。

➜  vagrant vagrant init centos/7 #在Vagrant box 中的名字,然后等待
➜  vagrant vagrant up            #启动
➜  vagrant vagrant ssh           #进入ssh
[vagrant@localhost ~]$ cd /home/ #进入你准备用来下载oneinstack的目录,然后根据官方安装教程完成环境安装

到这里PHP环境安装完毕,问题来了,如何访问呢?端口映射。
打开所在目录Vagrant生成的Vagrantfile查找被注释的forwarded_port,其实该配置文件写的很详细,可以根据说明完成大部分配置。复制,粘贴之注释下方,端口号根据系统环境以及个人需求更改,然后保存。

# config.vm.network "forwarded_port", guest: 80, host: 8080
+ config.vm.network "forwarded_port", guest: 80, host: 8989

退出ssh,然后重启。

[vagrant@localhost root]$ exit; #退出ssh
➜  vagrant vagrant reload       #重启

访问127.0.0.1:8989OK,展示出欢迎service欢迎页面。
访问的问题解决了,那么该如何编辑代码呢?同步文件夹解决这个问题。为了更快的同步到box里面,Mac可以使用NFSWindows可以使用SMB方式。以Mac为例,配置不同的是type参数。打开Vagrantfile,查找synced_folder复制到下方,查找private_network复制到下方,修改对应目录,保存。

# config.vm.synced_folder "../data", "/vagrant_data"
+ config.vm.synced_folder "本机文件路径", "vagrant上面需要挂载的目录"
# config.vm.network "private_network", ip: "192.168.33.10"
+ config.vm.network "private_network", ip: "192.168.33.10" #文件同步需要通讯,所以需要配置网络,这里配置的私有网络。如果你需要局域网其他人能够访问你的Vagrant中的项目,那么你可能需要配置共有网络,查看Vagrant的docs Networking 查看更多。

重启服务

➜  vagrant vagrant up

到这里,环境的配置完成了!

其他修改

加注释的为其他修改

Vagrant.configure("2") do |config|
  config.vm.hostname = "morgan" #修改主机名,ssh登陆后的左侧提示
  config.vm.box = "centos/7"
  config.vm.network "forwarded_port", guest: 80, host: 8989    
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "/Users/morgan/Desktop/www/", "/data/wwwroot/default/", type: "nfs"

  config.vm.provider "virtualbox" do |vb|
      vb.name = "morgan-centos" #虚拟机名
      vb.memory = "1024"    #内存大小
      vb.cpus = 2    #CPU数量
  end
end

在开发测试的时候,发现要刷新几次才能够显示新的页面,查看文档发现是Nginx 的sendfile 导致的。修改配置。

#In Nginx:
sendfile off;

#In Apache:
EnableSendfile Off
打包
➜  vagrant vagrant package name

参考文档:
Vagrant docs

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25793.html

相关文章

  • 基于Vagrant搭建移植lnmp开发环境

    摘要:前言使用搭建开发环境可以避免团队开发带来的开发环境不一致问题,避免了很多不必要的麻烦,同时其分发机制也也有利于新来的同事立即部署适合于公司的开发环境,非常便利,是很多互联网公司的首选。因此,学习如何搭建基于的开发环境是很有必要的。 前言 使用vagrant搭建开发环境可以避免团队开发带来的开发环境不一致问题,避免了很多不必要的麻烦,同时其分发机制也也有利于新来的同事立即部署适合于公司的...

    summerpxy 评论0 收藏0
  • centos7下lamp开发环境搭建

    摘要:注本文开发环境搭建于在虚拟机内的。本文仅是自己配置环境的记录,也是我在的处女作,如若有错误,欢迎指出交流。已将本文配置完成的环境打包成上传到百度云,有需要可自行。输入一下内容访问查看是否显示正常。 注:本文lamp开发环境搭建于在virtualbox+vagrant+centos-7.0-x86_64.box虚拟机内的。本文仅是自己配置环境的记录,也是我在segmentfault的处女...

    Richard_Gao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<