需要有关将我的第一个rails应用程序部署到mediatemple(dv)的建议

时间:2012-03-07 03:38:30

标签: ruby-on-rails passenger vps mediatemple

我正在尝试在mediatemple(dv)上部署我的第一个rails应用程序而且我没有运气。

我正在尝试使用phusion乘客,所以我去了http://www.modrails.com/videos/passenger.mov并观看了有关安装它的教程。我做了一切都没有问题,当我指向我的IP时,我看到一个apache页面,而不是我的rails应用程序。

我注意到在mediatemple上,我必须创建一个vhosts.conf文件并运行一个命令来重新配置我的项目以查看这个vhosts.conf文件。参考 - http://kb.mediatemple.net/questions/1621/Why+is+my+vhost+file+not+being+used+by+Apache%3F#dv_40在最后一步,我做了/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain xxx.xx.xx.xx而不是重新配置所有。

这是我的vhosts.conf文件的样子:

LoadModule passenger_module
/usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125/ruby

<VirtualHost *:80>
      ServerName xxx.xx.xx.xx
      DocumentRoot /var/www/vhosts/myProject/httpdocs    # <-- be sure to point
to 'public'!
      <Directory /var/www/vhosts/myProject/httpdocs>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

任何人都有幸在mt(dv)上部署rails应用程序,可以向rails noob提出一些建议吗?

1 个答案:

答案 0 :(得分:8)

我刚刚在我的dv服务器上完成此操作,所以这里是一个快速浏览。我将假设您正在使用Ruby 1.9.3和Rails 3.2,并以root身份运行以下所有命令。

您的服务器上还安装了最新版本的rake和passenger安装程序。如果没有,请尝试:

gem update --system
gem install rake
gem install passenger

下一步是登录您的MediaTemple管理面板。单击您感兴趣的域的Admin按钮(而不是Plesk按钮),然后选择“Root Access和Developer Tools”选项。安装开发人员工具(这将需要大约10分钟)。

完成后,ssh进入您的服务器并执行以下操作:

passenger-install-apache2-module

有一个非常好的指导安装,所以我不会在这里详细介绍。您可能需要通过yum在此处安装一些其他依赖项,因此请仔细检查此脚本的输出。

一旦完成,请转到并编辑您的httpd.conf文件。这保存在/etc/httpd/conf/httpd.conf下。您将需要在其末尾添加以下行(请注意路径可能会有所不同,因为我使用rvm来管理我的ruby安装和gemsets)。

# Passenger Module for Apache (For Rails apps)
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p125@rails32/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p125@rails32/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p125@rails32/ruby
PassengerDefaultUser root

此时您应该已准备好创建一个新的rails应用程序,以便从httpdocs文件夹中删除所有内容,并在以域用户身份登录时发出以下命令(不是root!)

rails new /path/to/httpdocs

vhost.conf中修改您的/var/www/vhosts/www.domain.com/conf文件(或创建一个新文件)(您需要以root身份执行此操作)。

ServerName domainname.com
ServerAlias domainname.com
DocumentRoot /var/www/vhosts/domainname.com/httpdocs/public
<Directory "/var/www/vhosts/domainname.com/httpdocs/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
RailsEnv development
RailsBaseURI /

最后,问题

/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain xxx.xx.xx.xx

重新启动apache

/usr/sbin/apachectl -k restart

那应该是它!

这个链接确实对我有所帮助:http://www.twohard.com/blog/setting-rails-passenger-mediatemple-dv35-servers