3

我正在尝试在 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 提供一些建议吗?

4

1 回答 1

8

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

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

gem update --system
gem install rake
gem install passenger

下一步是登录您的 MediaTemple 管理面板。单击您感兴趣的域的 Admin 按钮(不是 Plesk 按钮),然后选择“Root Access and 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

于 2012-04-02T07:00:38.160 回答