利用vagrant搭建rails开发环境

安装步骤

1. 安装 VirtualBox

虚拟机还是得依靠 VirtualBox 来搭建,免费小巧。
下载地址:https://www.virtualbox.org/wiki/Downloads

安装步骤:

2. 安装 Vagrant

下载地址:http://downloads.vagrantup.com/ 

先安装Vagrant,步骤如下:

3. 添加镜像到 Vagrant

(1)获取官方封装好的基础镜像,我已经下载好了

通过百度获取镜像官网,根据自己需要下载相应的镜像。

这里选择"CentOS 7.0 x64 (Minimal, VirtualBox Guest Additions 4.3.28, Puppet 3.8.1 - see here for more infos)"。只需要点击"copy",复制下载地址然后通过迅雷下载即可;

(2)添加镜像到 Vagrant

我下载的镜像存放路径是 H:/vagrantbox/centos-7.0-x86_64.box

创建一个开发目录 H:/centos7/,你也可以使用已有的目录,切换到开发目录里,在命令行进入当前工作目录

在终端里输入:

vagrant box add centos7 H:/vagrantbox/centos-7.0-x86_64.box

 centos7是我们给这个 box 命的名字, H:/vagrantbox/centos-7.0-x86_64.box  box 所在路径;

 (3)初始化开发环境

 centos7 镜像初始化当前目录的环境。命令行下进入当前工作目录,执行下面命令进行初始化

vagrant init centos7

(4)修改设置Vagrant

Vagrant 初始化成功后,会在初始化的目录里生成一个 Vagrantfile 的配置文件,可以修改配置文件进行个性化的定制。

Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似 http://localhost:80 这种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式显得方便多了。打开 Vagrantfile,将下面这行的注释去掉(移除#)并保存:

config.vm.network :private_network, ip: "192.168.33.10"

重启虚拟机,这样我们就能用 192.168.33.10 访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。

5启动和登录

在命令行工作目录下执行下面命令进行启动虚拟机

vagrant up 

你会看到终端显示了启动过程,启动完成后,我们就可以用 SSH 登录虚拟机了,剩下的步骤就是在虚拟机里配置你要运行的各种环境和参数了。

SSH 登录也可以使用客户端连接工具连接,使用xshell和putty都行

vagrant ssh 

切换到开发目录

 cd /vagrant也就是宿主机上的 `H:/centos7/`

H:/centos7/目录对应虚拟机中的目录是 /vagrant

(6)打包分发

当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:

vagrant package

打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。

(7)常用命令

4.centos上安装rubyrails(我用的是centos7,跟centos6安装步骤一样)

进入虚拟机默认用户名root密码vagrant,一般用户名是vagrant密码也是vagrant

如上,由于网络问题,如果下载没反应,那么久ctrl+c终止,然后再重新运行该命令。由于被墙原因,它会自动去跳转到github下载

 

然后根据提示执行命令source/etc/profile.d/rvm.sh就可以了,我的结果如下:

 

 

第五步我用rvm install ruby-1.9.3

 

 

安装mysql

 

开启3306端口并保存

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

/etc/rc.d/init.d/iptables save

 

解决Mysql乱码问题,我们也可以在虚拟机中创建数据库之后在宿主机的Navicat上更改数据库编码为utf8,不过这样的话要在改完编码之后再插入数据,原来的数据编码方式还是latin1

vim my.cnf

在[client]和[mysqld]下面都添加上

default-character-set=utf8

最后按Esc输入:wq保存退出

在宿主机中访问虚拟机的mysql报错如下则是填写的虚拟机ip没写对,如果使用ssh登陆的话,navicat也要设置使用ssh验证方式登陆:

 

在虚拟机中操作数据库,如下错误,那就输入su,然后输入密码avgrant获取权限才能执行mysql操作:

 

接下来就rails new demo –d mysql,然后去修改Gemfile的databse.yml设置数据库的用户名和密码,可以运行项目看看了,但是Bundle install的时候安装mysql2会报错:

然后我们使用命令安装如下,变成另一个错误:

 

如上报错如下图,我们根据提示运行yum install mysql-devel就没问题了

执行完这个命令就能安装mysql2了

但是bundle show mysql2还是有错误

 

这时候再bundle install一下就行了:

这时根据上图错误提示进行操作

然后就多安装成功了,接下来就是报其他的错误:

提示错误,那么可能就是密码错了,那么密码是什么呢?因为我们进入数据库只要mysql命令就行,所以密码是空(此时nvicat的密码还是vagrant,用户名是root,ssh登陆方式,这两个密码可以不一样)

 

 

posted @ 2016-03-18 17:26  SixEvilDragon  阅读(379)  评论(0编辑  收藏  举报