安装步骤
虚拟机还是得依靠 VirtualBox 来搭建,免费小巧。
下载地址:https://www.virtualbox.org/wiki/Downloads
安装步骤:
下载地址:http://downloads.vagrantup.com/?
先安装Vagrant,步骤如下:
通过百度获取镜像官网,根据自己需要下载相应的镜像。
这里选择"CentOS 7.0 x64 (Minimal, VirtualBox Guest Additions 4.3.28, Puppet 3.8.1 - see?here?for more infos)"。只需要点击"copy",复制下载地址然后通过迅雷下载即可;
我下载的镜像存放路径是?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 所在路径;
用?centos7?镜像初始化当前目录的环境。命令行下进入当前工作目录,执行下面命令进行初始化
vagrant init centos7
Vagrant 初始化成功后,会在初始化的目录里生成一个?Vagrantfile?的配置文件,可以修改配置文件进行个性化的定制。
Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似?http://localhost:80?这种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式显得方便多了。打开?Vagrantfile,将下面这行的注释去掉(移除#)并保存:
config.vm.network :private_network, ip: "192.168.33.10"
重启虚拟机,这样我们就能用?192.168.33.10?访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。
在命令行工作目录下执行下面命令进行启动虚拟机
vagrant up?
你会看到终端显示了启动过程,启动完成后,我们就可以用 SSH 登录虚拟机了,剩下的步骤就是在虚拟机里配置你要运行的各种环境和参数了。
SSH 登录也可以使用客户端连接工具连接,使用xshell和putty都行
vagrant ssh?
切换到开发目录
?cd /vagrant也就是宿主机上的 `H:/centos7/`
H:/centos7/目录对应虚拟机中的目录是?/vagrant
当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:
vagrant package
打包完成后会在当前目录生成一个?package.box?的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。
4.centos上安装ruby和rails(我用的是centos7,跟centos6安装步骤一样)
进入虚拟机默认用户名root密码vagrant,一般用户名是vagrant密码也是vagrant
如上,由于网络问题,如果下载没反应,那么久ctrl+c终止,然后再重新运行该命令。由于被墙原因,它会自动去跳转到github下载
?
然后根据提示执行命令source/etc/profile.d/rvm.sh就可以了,我的结果如下:
?
?
第五步我用rvm install ruby-1.9.3
?
?
?
开启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登陆方式,这两个密码可以不一样)
?
?
原文:http://www.cnblogs.com/blueColdFire/p/5292984.html