如何在CentOS 6上使用Apache和Passenger设置Rails 4应用程序

基础

当用户从一个香草图像(在我们的案例中:CentOS 6.4 x64)创建一个Droplet时,需要进行额外的系统管理工作,然后才能运行Ruby on Rails应用程序并在线可用。本教程提供了必要的步骤来实现。 为了完成本教程,具有至少1 GB RAM的虚拟服务器是最低要求,因为步骤#3中的Passenger命令是内存密集型的。 此外,本教程假定用户具有对VPS的root访问权限(作为具有root权限的用户或作为系统根目录的用户)。 本教程不适用于生产节点设置。它涉及开发库安装和在机器上的即席编译,这在设置生产环境时不是一个好的做法。

第一步 - Apache安装程序

这一切都从Web服务器开始,最简单的安装Apache的方法是从yum存储库中获取它:
yum install httpd 
安装完成后,系统应配置为在系统引导时自动运行Apache:
chkconfig httpd on 
如果没有此设置,则需要在每次重新启动Droplet时手动启动httpd服务。 下一步是通过编辑其配置文件来配置Apache以接收传入请求:
nano /etc/httpd/conf/httpd.conf 
在编辑器中,靠近底部,找到并取消注释包含以下内容的行:NameVirtualHost *:80 保存并退出编辑器。 Apache现在可以立即启动:
service httpd start 
Voilà!在Web浏览器中访问Droplet的IP地址将显示Apache的欢迎页面。

第二步 - Ruby 2.0和Rails 4.0安装

设置Apache是一个容易的漫步。它甚至更简单的设置Ruby,其次是Rails。 最快的方法是使用Ruby版本管理器(RVM)来维护多个Ruby环境 机。最新的稳定版本的RVM是这样下载和安装的:
curl -L get.rvm.io | bash -s stable 
如果RVM应该由所有用户使用,则有一个shell脚本可用于作业:
source /etc/profile.d/rvm.sh 
此外,安装RVM的需求是必要的,此命令将安装各种开发包和依赖关系:
rvm requirements 
此时,RVM已完全初始化并可以使用。 目前,最新的Ruby版本是2.0.0,相应的RVM命令安装它是:
rvm install 2.0.0 
它将下载并安装Ruby环境。在安装之后,即使它是此时安装的唯一版本,应将其配置为默认环境:
rvm use 2.0.0 --default 
Rails是作为Ruby gem分发的,并且将它添加到本地系统非常简单:
gem install rails 
快速版本检查将产生与此类似的输出:
[user@server ~]$ ruby -v 
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux] 
[user@server ~]$ rails -v 
Rails 4.0.1 
不错的工作!

第三步 - Phusion Passenger设置

Phusion Passenger(通常缩写为Passenger或简称为mod_passenger)是一个应用程序服务器,通常用于为Ruby网站提供服务。它的代码以Ruby gem的形式分发,然后在目标机器上编译并作为模块安装到Apache中。 首先,gem需要在系统上安装:
gem install passenger 
在编译Apache模块之前,还需要安装两个依赖包:
yum install curl-devel httpd-devel 
现在环境已准备好进行编译。该过程需要几分钟,它由以下命令启动:
passenger-install-apache2-module  
注意,这个脚本不会真正安装模块。它将编译模块的二进制文件并将其放在下面 Gem的路径。 路径将被打印在屏幕上,它需要被复制粘贴到Apache的配置文件中 (/etc/httpd/conf/httpd.conf)。 输出将类似于这一个:
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-
4.0.26/buildout/apache2/mod_passenger.so 
PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p353/gems/passenger-4.0.26 
PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p353/ruby 
将这些行放在文件的底部将做得很好。保存更改并重新启动Apache:
service httpd restart 
两个绿色OK消息标记环境设置的完成。恭喜!

最后 - 一个Rails应用程序示例

它总是好的做一个烟雾测试和使用Rails的应用程序骨架发电机是一个理想的工具,这项任务。它需要安装sqlite的开发包:
yum install sqlite-devel 
放置测试应用程序代码的最简单的位置是Apache的web根文件夹:
cd /var/www/html 
在此文件夹中,在“helloapp”文件夹下生成测试应用程序代码:
rails new helloapp 
cd helloapp 
由于CentOS不附带JavaScript执行环境,因此必须手动安装。它可以安装为gem,因此它只需要在Gemfile中列出如下:
gem 'therubyracer' 
Ruby应用程序所需的Gems通过在应用程序的根目录中定位并运行包安装程序来安装:
bundle install 
此外,开发数据库需要由迁移工具初始化:
rake db:migrate 
需要最终访问Apache的配置文件(/etc/httpd/conf/httpd.conf)。虚拟主机部分缺失,必须在底部添加: RackEnv开发
RackEnv development



<VirtualHost *:80> 
 ServerName www.yourhost.com 
 # !!! Be sure to point DocumentRoot to 'public'! 
 DocumentRoot /var/www/html/helloapp/public 
 <Directory /var/www/html/helloapp/public> 
 # This relaxes Apache security settings. 
 AllowOverride all 
 # MultiViews must be turned off. 
 Options -MultiViews 
 </Directory> 
</VirtualHost> 
保存更改并再次重新启动Apache:
service httpd restart 
在浏览器中转到虚拟服务器的IP地址,您应该看到欢迎消息“欢迎乘坐 - 您乘坐Ruby on Rails!”。
提交 的TončiDamjanic
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏