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://stackoverflow.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/
下载下来解压缩,将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服务。运行正常