window 安装Rails

1、安装ruby和DevKit

http://rubyinstaller.org/downloads 上下载Ruby 1.9.3-p194 和DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe 安装;

2、http://dev.mysql.com/downloads/mysql/ 下载最新版mysql

3、gem install rails

4、gem install mysql2

  将mysql安装bin目录下的libmySQL.dll 拷贝到ruby安装目录的bin目录下


5、cd到已有的rails工程执行

      bundle install

出现问题,总是提示Could not reach https://rubygems.org/,直接

gem update --system

然后该问题跳过去了


6、再次执行bundle install

出现问题,json包安装不上,直接gem install json 出现问题

Gem::InstallError: The 'json' native gem requires installed build tools.

找到http://*.com/questions/8100891/the-json-native-gem-requires-installed-build-tools

解决方案有如下几步:

1) Download Ruby 1.9.3-p0

2) Download DevKit file from http://rubyinstaller.org/downloads (DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe)

3) Extract DevKit to path C:\Ruby193\DevKit

4) cd C:\Ruby192\DevKit

5) ruby dk.rb init

6) ruby dk.rb review

7) ruby dk.rb install

确实有用

7、继续bundle install,中间有几次出现open ssl连接问题,多试几次(哭);等着长长的列表结束,安装therubyracer失败,搜了下;说Windows上不需要

http://www.ruby-forum.com/topic/4398451

更改Gemfile;

将gem 'therubyracer'改成

group :production do
  gem 'therubyracer-heroku', :platform => :ruby
end

然后bundle install --without production;

终于出现

Your bundle is complete!

8、然后rails server -p 80 出现

C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql2-0.3.11-x86-mingw32/lib/mysql2/mysql2.rb:2:in `require': 193: %1 不是有效的 Win32 应用程序。 

搜到原因是这是由于32位的Ruby与64位的MySQL的不兼容造成的。
使用32位的MySQL connector来屏蔽这些问题。下载时请看清32位windows的zip版本。
http://dev.mysql.com/downloads/connector/c/window 安装Rails

下载下来解压缩,将lib目录下的libmysql.dll和libmysql.lib拷贝到Ruby/bin目录下。


9、重新启动,rails启动一段一会,然后自己挂掉了报错误: WARN  TCPServer Error: Only one usage of each socket address (protocol/network address/port) is normally permitted. - bind(2)

之前安装的apache已经占用了80端口,所以没法使用80端口了。直接改成rails server -p 8080;启动成功。


10、停止rails服务,rake db:create 创建数据库,出现Can't connect to MySQL server on 'localhost' (10061)

修改 database.yml配置,host 改成127.0.0.1(据传不能写localhost,因为ipv6等事情,未尝试),最终配置如下

development:
  adapter: mysql2
  encoding: utf8
  database: development.mysql
  pool: 5
  username: root
  host: 127.0.0.1
  port: 3306
  password: MYSQL_PASSWORD

11、rake db:migrate,建表。重新启动rails服务。运行正常


转载于:https://my.oschina.net/chiyong/blog/91867