win10上面安装的phpStudy这些天有时候打不开网页 502,请求一直loading,就算是代码问题我也扶不住,安装个Redis,mongodb都超级麻烦,并且好多都模拟Linux做的东西,最终写出来的代码都要发布到linux的生产环境,倒不如就搞个服务器的克隆环境,有虚拟机+vagrant 简直是巴适。它可以实现文件的共享 从而方便宿主机到虚拟机的文件同步,也就是win上编代码,虚拟机测试运行,中间无需自行拷贝代码文件到虚拟环境。
PHP一键开发环境到目前用过phpnow phpstudy xampp,前两者仅限win平台,xampp可以跨win和mac平台。网上很多都推荐用vagrant搭建开发环境,可以完全模拟服务器环境,多平台支持 今天试试水。

安装VirtualBox虚拟机

官网:https://www.virtualbox.org/wiki/Downloads

安装vagrant

官网:https://www.vagrantup.com/downloads.html

挂载vagrant的box镜像文件

win下cmd命令进入你需要共享到虚拟环境的文件夹根目录 如:~/dev

使用vagrant init命令安装系统镜像,vagrant up启动即可

> cd ~/dev  # 切换目录到要共享到虚拟环境的文件夹
> vagrant init envimation/ubuntu-xenial #系统自动下载box镜像 然后安装

其此还可以下载box文件add镜像,毕竟大陆地区 防火墙贼溜。vagrant init操作的时候会回显downloading的地址,手动下载。
add操作

> vagrant box add boxname box文件路径  #boxname为镜像的自定义别名
> cd ~/dev
> vagrant init boxname # 用镜像别名boxname安装

若看到successfully关键字那就成功啦!

启动虚拟环境

> vagrant up  # 启动环境
或者
vagrant up --vagrantfile /Users/panc/Desktop/bjesc/Vagrantfile

若报错确保宿主机bios开启cpu虚拟化,因为我安装的镜像是ubuntu16.04 64位需要完全虚拟化。

解决报错

修改Vagrantfile文件
Vagrantfile文件可以自由配置虚拟环境
若启动提示Error VT-x需要在Vagrant.configure代码块中添加配置 最后如下:

Vagrant.configure("2") do |config|
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--cpus", "1"]
end
end

再次启动

成功

连接虚拟环境

就像普通ssh登录服务器一样,mac端直接使用终端。win下载Xshell,putty之类的软件操作,或者使用win10Dev版本的WSL ubuntu子系统
mac端可以直接在vagrant项目目录执行vagrant ssh

ip地址127.0.0.1,端口如上图这里变成了2222 默认用户名:vagrant 密码:vagrant

su账户:root  密码:root

这样就是完全的服务器环境,想折腾什么就整~

安装Lnmp

参照安装https://Lnmp.org/install.html

> cd ~
> wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4
> sudo ./install.sh lnmp

回车选择默认配置,之后大概一个小时就安装好了
系统默认将宿主机的共享文件夹挂载到/vagrant路径,cd /vagrant && ls -al执行进去看看就知道了。

连接数据库

我这使用MySQLWorkbench连接虚拟环境的数据库,其实都一样需要事先连接ssh然后再通过ssh连接内网ip:端口即可。操作起来很方便。

vagrant进阶配置

  #config.vm.network "private_network", ip: "10.10.10.10"  #启用私有环境  只有本机才可以访问指定的ip
config.vm.network "forwarded_port", guest: 80, host: 80 #端口映射 guest:虚拟机端口 host: 宿主机端口
config.vm.network "public_network", ip: "192.168.199.199" #启用公开网络 局域网中模拟一台电脑设备 ip:指定一个局域网内ip地址

package打包box镜像

若你的虚拟环境配置好了可以打包成新的box,方便以后分发,或者当作镜像备份也是极好。

> vagrant package --base boxname  --output php_new.box
#boxname为镜像设置的自定义别名
#php_new.box为保存的文件 若在Vagrantfile目录下(或者其子级目录也可) 可直接vagrant package 生成package.box

踩凼

  1. 静态文件加载问题 171010
    Nginx配置文件nginx.conf的中http块中添加或修改:sendfile off;
    刚开始没有问题或者没发现,时间永久了nginx无缘无故截取js等静态资源文件,或者末尾追加\u0的空字符。

2.vagrant up启动失败 提示Couldn't open file /path
有可能box镜像没有找到,重新add,init;亦或者重新安装 最新版本的vagrant。我遇到的问题是后者。

参考:
https://segmentfault.com/a/1190000002436885
https://segmentfault.com/a/1190000000264347

http://www.jianshu.com/p/a1108a4ee968

win平台搭建Lnmp环境的更多相关文章

  1. CentOS7——搭建LNMP环境(WordPress案例)

    CentOS7--搭建LNMP环境(WordPress案例) LNMP组成介绍 LNMP(Linux-Nginx-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统 ...

  2. 阿里云体验实验室 教你如何《快速搭建LNMP环境》

    ## 体验平台简介 面向开发者和中小企业打造的一站式.全云端的开发平台,打开浏览器就可以开发.调试.上线,所测即所得,并结合无服务器的模式,重新定义云原生时代的研发工作方法论.旨在降低开发者上手成本和 ...

  3. CentOS6.6搭建LNMP环境

    CentOS6.6搭建LNMP环境 1.设置yum源,本地安装依赖包 1 yum -y install gcc gcc-c++ automake autoconf libtool make 2.下载依 ...

  4. Yum搭建LNMP环境(动、静、库分离)(week4_day5)--技术流ken

    前言 本篇博客使用yum来搭建lnmp环境,将采用动态,静态以及数据库分开安装的方式即nginx,php,mysql.会被分开安装在不同的服务器之上,搭建出来一套lnmp环境,并部署wordpress ...

  5. [Linux] deepin15.8搭建LNMP环境

    LAMP和LNMP LAMP==Linux+Apache+Mysql+PHP LNMP==Linux+Nginx+Mysql+PHP 安装nginx sudo apt install nginx 安装 ...

  6. CentOS 7 源码搭建LNMP环境

    搭建 LNMP 环境 源码包版本 :  CentOS Linux  7 nginx-1.15.1.tar.gz  mysql-boost-5.7.21.tar.gz  php-7.2.7.tar.gz ...

  7. Vmware搭建LNMP环境(Centos7+Nginx+Mysql+PHP7.1.8)

    参考:1.Linux学习之CentOS(一)----在VMware虚拟机中安装CentOS 7(图文教程) 2.Centos7搭建LNMP环境 3.MySQL5.7修改默认root密码 4.CentO ...

  8. ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装

    v 一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展, 在安装中遇 ...

  9. Mac下docker搭建lnmp环境 + redis + elasticsearch

    之前在windows下一直使用vagrant做开发, 团队里面也是各种开发环境,几个人也没有统一环境,各种上线都是人肉,偶尔还会有因为开发.测试.生产环境由于软件版本或者配置不一致产生的问题, 今年准 ...

随机推荐

  1. WebGL射线拾取模型——八叉树优化

    经过前面2篇WebGL射线拾取模型的文章,相信大家对射线和模型面片相交的原理已经有所了解,那么今天我们再深入探究关于射线拾取的一个问题,那就是遍历场景中的所有与射线相交的模型的优化问题.首先我们来复习 ...

  2. 大前端全栈CSS3移动端开发

    作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 本节课学习视频来源:https://ww ...

  3. PSP表格记录功能

    关于王者荣耀交流协会的PSP表格记录功能,就是针对我们平时做表格时候遇到问题的简化与解决.这部分功能可以记录我们开始时间,暂停时间,结束时间,并自动计算出各个时间段的净时间.只要你开始工作时点一下开始 ...

  4. ASP.NET MVC5 学习系列之模型绑定

    一.理解 Model Binding Model Binding(模型绑定) 是 HTTP 请求和 Action 方法之间的桥梁,它根据 Action 方法中的 Model 类型创建 .NET 对象, ...

  5. VUE AXIOS 跨域问题

    背景: 后台跨域使用通配符:context.Response.Headers.Add("Access-Control-Allow-Origin", "*"); ...

  6. android入门 — ProgressDialog/DatePickerDialog/TimePickerDialog

    这三个Dialog都是AlertDialog的子类. ①DatePickerDialog 1.创建DatePickerDialog的实例: 2.通过Calendar类获得系统时间: 3.通过DateP ...

  7. 201621123037《Java程序设计》第二周学习总结

    #Week02-Java基本语法与类库 1. 本周学习总结 关键词:常量池.对象.null.不可变性.string对象拼接.字符串池 关键概念之间的联系:Java中有常量池,超出常量池以外的就会新开辟 ...

  8. Vue 自定义指令练习

    Vue.directive(id,definition)注册一个全局自定义指令,接收两个参数,指令ID以及定义对象 取值: <div v-demo="{ color: 'white', ...

  9. 【ASP.NET Core 】ASP.NET Core 源码学习之 Logging[1]:Introduction

    在ASP.NET 4.X中,我们通常使用 log4net, NLog 等来记录日志,但是当我们引用的一些第三方类库使用不同的日志框架时,就比较混乱了.而在 ASP.Net Core 中内置了日志系统, ...

  10. 【bzoj2257】[Jsoi2009]瓶子和燃料 扩展裴蜀定理+STL-map

    题目描述 给出 $n$ 个瓶子和无限的水,每个瓶子有一定的容量.每次你可以将一个瓶子装满水,或将A瓶子内的水倒入B瓶子中直到A倒空或B倒满.从中选出 $k$ 个瓶子,使得能够通过这 $k$ 个瓶子凑出 ...