bundle install 试试,可能你在生产环境有些 gem 包没有装
#2 楼 @blacksource 微博登录 OK 的话说明你可以拿到 access_token(注意!这个 access_token 只是一个字符串),你把这个 access_token 存到数据库里,假设存储为 users 表里的 access_token 字段,当你调用 friends_timeline 这个 api 时可以这样用:
RestClient.get('https://api.weibo.com/2/statuses/friends_timeline.json', {:access_token => current_user.access_token})`
上面的代码应该能够工作,我做过一个新浪微博分享的功能:
def weibo_share(content, pic_url=nil) if pic_url url = 'https://api.weibo.com/2/statuses/upload_url_text.json' else url = 'https://api.weibo.com/2/statuses/update.json' end form = { :access_token => current_account.access_token, :status => content } form.merge!(:url => pic_url) if pic_url begin_rescue do res = RestClient.post(url, form) res = JSON.parse(res.body) 4.times { if res['error_code'] res = RestClient.post(url, form) res = JSON.parse(res.body) else break end } end end
靠,说我啊
听楼上各位的分析,把服务器上的桌面进程全杀掉应该是正确的选择。 @kgen 哈哈,联系不上这个叫 aaron 的 s.a,我自己动手把一个叫 Xorg 的进程 kill 掉了,内存嗖的往上窜了 1g 多,我真担心这哥们上班时又把桌面打开了
这个问题已经解决,感谢楼上各位的帮助,我采用的是@zhangyuan 提供的方案
bundle exec rake db:create
发现这些所谓的猎头专业素质真 tmd 差劲,就像爬虫似的,爬到某个论坛就发一堆垃圾贴
#1 楼 @master 谢谢问题解决了,仍然用的是 oauth2.0
顺便说一下自己的解决过程,首先感叹一下,ruby-china 是块福地,每次发贴后都会出现灵感,让问题得到解决。 我前面创建的那个应用 (app key 是 1771041510) 按新浪的说法是一个站内应用,要命的是你无法给一个站内应用设置回调地址,但诡异的是如果你用 weibo 这个 gem 的话,你这个回调地址 (在 oauth 中叫 oauth_callback 区别于 oauth2.0 的 redirect_uri) 随便设置成什么都不会造成连接错误,觉得自己确实有点 2,就是想用 oauth2.0,哈哈,还好刚才脑袋转了一下弯,重新创建了一个应用按新浪的说法就是"其他应用",丫的这个“其他应用”里正好有个地方可以设置回调地址,于是设置成http://test.dx.com:3000,就成了
我现在也在做 weibo 的对接,发现你用的这个 Omniauth-weibo gem 用的不是 oath2,不知道你是不是 fork 了代码,然后自己去实现 oath2 的连接
development: adapter: postgresql encoding: unicode host: /tmp database: dx_development pool: 5 username: dx password: 123456
test: &test adapter: postgresql encoding: unicode host: /tmp database: dx_test pool: 5 username: dx password: 123456
production: adapter: postgresql encoding: unicode host: /tmp database: dx_production pool: 5 username: password:
cucumber: <<: *test
前面有跑过一次 rake db:migrate,结果导致了同样的结果,就是不断地有 rake 进程生成,然后服务挂掉
对,我只是为了创建数据库和表,看来是不能跑 rake 了,只是对这个问题有点纠结
找到原因了,rake db:migrate 默认会给所有的环境做数据迁移,test 环境用的是 sqlite3,而我没有在服务器上安装 sqlite3,有点诡异的是我用 ps aux | grep rake 时看到无数的 rake 程序在跑,这就导致了服务器宕机了 rake -v 会运行测试,而 rake -V 才会输出 rake 的版本号,所以我 rake -v 时会加速服务器的宕机
补充一下 rake 的版本是 0.9.2.2
哈哈,很 NB 的游戏
问题解决了,装 postgresql 的时候,postgresql 会自作主张的在/etc/sysconfig/iptables 这个文件里追加一条规则-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT 这样会导致-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 不是最后的一条规,把-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited 这条规则移动到所有规则之后,然后重启防火墙,就可以了
@iceskysl 查看了/var/log/nginx/error.log 这个文件,里面是空白的,因为 nginx 其实是能够正常运行的,这样看来 http 请求应该还没有到达 nginx 这一层
找到解决方法了, gem install pg -- --with-pg-config=/usr/local/pgsql/bin/pg_config /usr/local/pgsql/bin/pg_config是我电脑上的pg_config路径 如果用 bundle,可以 bundle config build.pg --with-pg-config=/usr/local/pgsql/bin/pg_config bundle install