服务器建站笔记-应用安装
mysql+ruby+rails环境搭建 apache的各种一般模块中MPM采用基本配置prefork模式,prefork各参数对于访问量低的应用不配置也可。 rails routes的原因,apache对于rewrite模块的需求不是很大,rewrite规则不写也可。
1. mysql安装
# 安装mysql,mysql-devel。后者是在安装sqlite的依赖
sudo yum install mysql mysql-devel
# 设置mysql开机自启动级别
sudo chkconfig --add mysqld
sudo chkconfig --level 35 mysqld on
# 启动mysql
sudo service mysqld start
# 连接数据库是否正常: root密码<空>
mysql -uroot
# mysql用户以及权限,可以按照自己需求添加,例:
# GRANT ALL PRIVILEGES ON *.* to 'rails'@'localhost' IDENTIFIED BY 'password'
2. Ruby安装
ruby on rails的开发语言。
# 安装ruby相关组件gem安装器
sudo yum install readline readline-devel ruby rubygems
# CentOs的Repo里面无ruby-devel,需指定安装
sudo yum --enablerepo=remi,remi-test -y install ruby-devel
# 查看ruby版本,过低版本的ruby需要升级,建议2.0.0-p247以后
ruby -v
# 更新Gem
gem update system
现在安装的Ruby版本过低,无法安装rails,rails需ruby1.9.x以上版本支持,所以要进行ruby的版本管理 这里安装rbenv进行ruby版本管理
# 安装rbenv
cd ~
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
# 设置环境变量
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL -l
# 安装ruby builder
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
centos 下2.0.0-p247安装会出现库文件路径问题,p353已修复,建议安装2.0.0-p353版本.链接
# 通过rbenv安装ruby新版本
rbenv install -v 2.0.0-p353
# 将默认版本切换成最新版本
rbenv global 2.0.0-p353
rbenv rehash
# 查看ruby版本(大于1.9.x),此时应显示2.0.0-p353
ruby -v
echo 'gem: --no-rdoc --no-ri' >> ~/.gemrc
gem install bundler
3. rails安装相关
# 安装相关组件
rbenv exec gem install locale locale_rails gettext gettext_rails gettext_activerecord
# 安装rails
rbenv exec gem install rails
# 此时如果出现问题,找出问题所在安装所缺的库文件
# 安装rails过程中出现若干编码转换warning,可无视。
# 采用以下命令可以选择不安装rails文档(可以之后单独安装)
# rbenv exec gem install rails --no-ri --no-rdoc
# sqlite安装,rails数据库连接所需
sudo yum install sqllite sqlite-devel
rbenv exec gem install sqlite3-ruby
# 安装rails版本管理利器bundler
rbenv exec gem install bundler
4. 安装配置Passenger组件
passenger时apache以及nginx与rails的访问控制组件,国人开发。链接
# 必要组件安装
sudo yum install httpd-devel apr-devel apr-util-devel
# 安装passenger
rbenv exec gem install passenger
passenger-install-apache2-module
# 查看apache是否成功加载passenger_module模块
apachectl -M
# 组件交互做的相当人性化,按照最后的提示操作即可
# 最后会提示修改httpd.conf
添加以下内容至httpd.conf(passenger安装完的提示内容完全复制粘贴)
LoadModule passenger_module /home/wills/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/passenger-4.0.35/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/wills/.rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/passenger-4.0.35
PassengerDefaultRuby /home/wills/.rbenv/versions/2.0.0-p353/bin/ruby
</IfModule>
5. 初始化Rails应用
cd ~
rails new [projectname] -d mysql
# 此时可以通过WEBrick方式启动rails应用
cd [projetname]
rails s
# 此时连接Ip:3000既可以看到欢迎页面或rails错误页面
现打算在不采用WEBrick,用apache监听80以及3000端口,同事提供两个虚拟主机的服务,其中3000用于rails提供的服务 修改httpd.conf virtualhost部分的设置如下(sample)
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin yourmail@gmail.com
DocumentRoot /var/www/html/
ServerName fdwills.asia
</VirtualHost>
# 监听3000端口
# 如果无法连接此端口,请编辑iptables文件打开3000端口接受tcp请求
Listen 3000
NameVirtualHost *:3000
<VirtualHost *:3000>
ServerName fdwills.asia
DocumentRoot /home/wills/app/fdwills.asia/public/
AddDefaultCharset UTF-8
RailsBaseURI /
RailsEnv development
PassengerEnabled on
PassengerDefaultUser apache
PassengerMaxPoolSize 2
</VirtualHost>
ps. 一定要将DocumentRoot设置到应用下的public页面 public下存放静态html。从rails4.0public页面下无index.html文件,如果rails无法检测到index.html,即会转至welcome