环境:ubuntu
首先安装ruby
sudo apt install ruby
查看ruby版本
ruby -v
安装rails
配置gem源
由于默认的gem源使用的是国外的源,在国内速度慢而且时常无法访问,所以先配置gem源,之前淘宝负责的源已经有ruby中国负责
gem sources #显示现在的gem源有哪些
gem sources -r https://rubygems.org/ #之前淘宝的gem源已经交给ruby中国负责
gem sources -a https://gems.ruby-china.org/
gem sources选项:
-a 添加源
-l 列出所有源
-r 删除源
-c 清除所有源
-u 更新source cache源缓存
安装ruby-dev
sudo apt-get install ruby-dev
centos下使用
yum install ruby-devel
否则会出现错误
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
删除冲突的linux-image*generic
dpkg -l 'linux-image-*' | grep 'ii'
sudo apt-get autotemove
或者使用
aptitude search ~ilinux-image #列出所有已安装的kernel
uname -r #找到现在正在运行的kernel
找出多余项然后删除,
否则会出现错误:
dpkg: error processing package linux-image-generic (--configure): dependency problems
缺少zlib2
sudo apt get install zlib1g-dev
否则出现错误
zlib.h: No such file or directory
安装sqlite3开发包
apt list | grep sqlite3 | grep dev
sudo apt install libsqlite3-dev
否则出现错误
sqlite3.h: No such file or directory
成功安装rails
sudo gem install rails # 以sudo来运行
启动rails server
新建一个ruby rails目录
rails new ~/Code/Ruby/weblog
切换到~/Code/Ruby/weblog目录然后启动rails server,
rails s #等同于命令rails server
出现错误:
bundler: command not found: spring Install missing gem executables with `bundle install`
执行
bundle install
默认的bundle从外网下载,会出现unkownhost的问题,添加一个国内源即可,
bundle config mirror.https://rubygems.org https://gems.ruby-china.org
bundle
再次启动rails s提示错误,缺少nodejs
sudo apt install nodejs
安装成功之后运行rails server
rails s
成功运行后发现从外网访问会出现拒绝请求的错误,使用wget也可以成功下载网页内容,
wget http://localhost:3000
绑定ip,从外网访问
查询之后发现通过默认绑定的是localhost而不是ip地址,所以使用-b选项绑定ip就可以从外网访问:
rails server -b hostip
-b 绑定rails到特定的ip
-p 在特定的端口上运行rails
-d 以守护进程的方式运行
-P 指定 PID file
-h 显示帮助信息
运行成功后在外网登录http://hostip:3000即可: