【者也】是由@huacnlee写的类似Quora的一个垂直问答社区,今天在本地安装过程中,填了一些坑,这篇文章不重点讲安装过程,而是说说安装过程中遇到的一些坑,希望对你有点帮助。
最终应用跑起来如图所示
环境:Mac + RVM + brew
先将工程clone下来
$ git clone git://github.com/huacnlee/quora.git
然后,使用mac命令行工具brew相继安装了MongoDB2.4.9,node.js0.10.25,Redis2.8.3 这三个软件的版本都比官网上面要求的高,但是没有关系。
$ brew install mongodb node.js redis
ruby的版本
首先确定你本机上面的ruby版本,我使用rvm进行ruby版本管理的,因为原来已经安装过ruby2.1.0这个版本,而官网上指定的是使用1.9.2,但是觉得高版本向下兼容,所以就在2.1.0这个版本下直接执行命令bundle来安装所有的gem包,结果不成功。
$ cd quora $ bundle install --path vendor/bundle
反复几次后,只好从rvm中删除掉2.1.0这个版本,然后重新安装1.9.2。
$ rvm uninstall 2.1.0 $ rvm install 1.9.2
bundle的cache
继续安装过程,执行bundle命令。
bundle install --path vendor/bundle
根据提示发现Gemfile中有个git仓库无法clone下来,打开Gemfile文件一看,原因是该htmldiff.git项目已经没有在huacnlee下了,可能他自己已经忘了这回事了,只好在github下搜索原作者的项目地址,修改为如下所示即可。
gem "htmldiff", :git => "git@github.com:myobie/htmldiff.git"
再次执行bundle,又给一个错误提示,rake这个gem无法读取,一开始以为是权限问题,然后到bundle安装的指定目录vendor/bundle/ruby/1.9.1/cache下将该rake.gem文件加上全部的读写执行权限,但是还是失败。这个时候只有求助万能的Stackoverflow了,根据类似的问题,删除掉原来的cache目录(我是直接删掉了vendor/bundle这个目录),然后重新执行bundle命令,一切ok,所有gem安装成功。估计问题原因是在原来的ruby 2.1.0 环境下,执行过一次bundle命令,导致cache中已经存在了一些gem文件。
mongodb的配置
接下来就是修改一些配置文件的问题了,如下
$ cp config/mongoid.yml.default config/mongoid.yml $ cp config/setting.yml.default config/setting.yml $ cp config/redis.yml.default config/redis.yml
redis.yml和setting.yml文件不需要修改,需要修改的是mongoid.yml文件,看其中有这样一行代码。
uri: mongodb://root:666666@flame.mongohq.com:27070/quora
这是连接mongodb的url串,我们需要在mongodb中建立数据库quora和用户root,其密码是666666;建立成功后,执行命令启动应用。
$ script/rails s -e development_mongohq
报错,还是报错,是权限验证错误,对于我们这种在bug环境中长大的同志,这点问题还是可以解决的,经过排查发现是uri串中本地地址写错了,应该改为localhost,端口改为27017,如下。
uri: mongodb://root:666666@localhost:27017/quora
重新启动应用,一切OK!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于