金钱(警告)
状态: 被剥夺
本文涵盖了不再受支持的 CentOS 版本. 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议升级或迁移到受支持的 CentOS 版本。
理由: CentOS 6 已于 2020 年 11 月 30 日到期(EOL)并且不再收到安全补丁或更新。
** 参见相反**: 本指南可能仍然有用作为参考,但可能不适用于其他 CentOS 版本. 如果可用,我们强烈建议使用为您使用的 CentOS 版本撰写的指南。
美元
基本
当用户从瓦尼拉图像(在我们的情况下:CentOS 6.4 x64)创建一个滴滴时,需要额外的系统管理工作才能运行 Ruby on Rails 应用程序并在网上可用。
为了通过本教程,具有至少1GB的RAM的虚拟服务器是最低要求,因为步骤#3中的乘客命令具有密集的内存。
此外,本教程假定用户可以 root 访问 VPS(作为具有 root 特权的用户或作为系统 root)。
该教程不是用于生产节点设置,它涉及开发库安装和机器上的偶尔编译,这在设置生产环境时不是一个很好的做法。
步骤一 - Apache 设置
这一切都从 Web 服务器开始,安装 Apache 最简单的方法是从 yum 存储库中提取它:
1yum install httpd
安装完成后,系统应配置为在系统启动时自动运行Apache:
1chkconfig httpd on
没有此设置,HTTPd 服务需要每次重新启动 dropplet 时手动启动。
下一步是通过编辑其配置文件来配置Apache以期望接收请求:
1nano /etc/httpd/conf/httpd.conf
在编辑器中,靠近底部,查找并删除包含的行: NameVirtualHost *:80
保存和退出编辑器. Apache 已准备好启动:
1service httpd start
在 Web 浏览器中访问 Droplet 的 IP 地址将显示 Apache 的欢迎页面。
步骤二: Ruby 2.0 和 Rails 4.0 设置
设置Apache是一个简单的步骤,设置Ruby更简单,然后是Rails。
最快的方法是使用 Ruby Version Manager (RVM) 在 机器上维护多个 Ruby 环境。
1curl -L get.rvm.io | bash -s stable
如果 RVM 应该被所有用户使用,则可以使用 shell 脚本:
1source /etc/profile.d/rvm.sh
此外,安装RVM的要求是必要的,这个命令将安装各种开发包和依赖:
1rvm requirements
在此时,RVM已完全初始化并准备使用。
目前,最新的 Ruby 版本是 2.0.0,安装的相应 RVM 命令是:
1rvm install 2.0.0
它会下载并安装 Ruby 环境. 安装后,尽管它是目前唯一安装的版本,但应该将其配置为默认环境:
1rvm use 2.0.0 --default
Rails 作为 Ruby 宝石分布,并将其添加到本地系统是非常简单的:
1gem install rails
快速版本检查将产生类似于此的输出:
1[user@server ~]$ ruby -v
2ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
3[user@server ~]$ rails -v
4Rails 4.0.1
好工作!
第三步 - Phusion 乘客设置
Phusion Passenger (通常缩写为 Passenger 或称为 mod_passenger) 是一个应用程序服务器,通常用来支持 Ruby 站点,其代码以 Ruby 宝石的形式分发,然后在目标机器上编译并安装到 Apache 作为一个模块。
首先,宝石需要在系统上安装:
1gem install passenger
在编译 Apache 模块之前,还需要安装两个依赖包:
1yum install curl-devel httpd-devel
环境现在已经准备好编译,过程需要几分钟,并通过以下命令开始:
1passenger-install-apache2-module
请注意,此脚本不会真正安装模块,它会编译模块的二进制,并将其放置在 gem 的路径下,路径将打印在屏幕上,需要手动复制到Apache的配置文件 (/etc/httpd/conf/httpd.conf)。
结果将类似于这个:
1LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-
24.0.26/buildout/apache2/mod_passenger.so
3PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.26
4PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p353/ruby
把这些行放到文件的底部会做得很好. 保存更改并重新启动Apache:
1service httpd restart
两个绿色 OK 消息标志着环境设置的完成。
最后 – 一个 Rails 应用程序的例子
做烟雾测试总是很好的,使用 Rails 应用程序的骨骼生成器是该任务的理想工具。
1yum install sqlite-devel
测试应用程序代码的最简单的位置是Apache的Web根文件夹:
1cd /var/www/html
在此文件夹中,测试应用程序代码在helloapp
文件夹下生成:
1rails new helloapp
2cd helloapp
由于CentOS没有JavaScript执行环境,所以必须手动安装,它可以作为一个宝石安装,因此它只需要在Gemfile中列出如下:
1gem 'therubyracer'
Ruby 应用程序所需的宝石通过在应用程序的根中定位并运行 bundle 安装程序来安装:
1bundle install
此外,开发数据库需要通过迁移工具进行初始化:
1rake db:migrate
需要最后一次访问Apache的配置文件(/etc/httpd/conf/httpd.conf)。缺少虚拟主机部分,必须在底部添加 RackEnv开发
1RackEnv development
2
3<VirtualHost *:80>
4 ServerName www.yourhost.com
5 # !!! Be sure to point DocumentRoot to 'public'!
6 DocumentRoot /var/www/html/helloapp/public
7 <Directory /var/www/html/helloapp/public>
8 # This relaxes Apache security settings.
9 AllowOverride all
10 # MultiViews must be turned off.
11 Options -MultiViews
12 </Directory>
13</VirtualHost>
保存更改并重新启动 Apache:
1service httpd restart
在您的浏览器中访问虚拟服务器的 IP 地址,您应该看到欢迎登机 – 您正在乘坐 Ruby on Rails!
欢迎消息。