4

我对任何曾经说过任何等同于“在 Rails 应用程序上部署 ruby​​ 是轻而易举”的人感到愤怒。不,这不对。这是我做过的最困难的事情,我开发了操作系统。

唷。现在已经出来了。我终于安装了乘客(使用低音确认安装过程),安装程序说:

请编辑您的 apache 配置文件并添加以下行:

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.2-p290@rails-3.0.1/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p290@rails-3.0.1/gems/passenger-3.0.8
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p290@rails-3.0.1/ruby

假设您在 /somewhere 中有一个 Rails 应用程序。将虚拟主机添加到 Apache 配置文件并将其 DocumentRoot 设置为 /somewhere/public:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

我将这两个都放在 /etc/apache2/apache2.conf 中,当我尝试启动 apache 时,它​​会在我将这些垃圾放在哪一行上时显示错误。非常感谢帮助。我快到了,我能感觉到!

缺口

4

2 回答 2

1

成功安装 Apache 2 模块后,按照下一组步骤配置 Apache。

  1. 在 /etc/apache2/mods-available 中创建以下两个文件

    mkdir /etc/apache2/mods-available/passenger.load

在passenger.load文件中粘贴以下代码

LoadModule passenger_module /usr/lib/ruby/gems/1.9.2(your version)/gems
/passenger-3.0.2/ext/apache2/mod_passenger.so

mkdir /etc/apache2/mods-available/passenger.conf

在passenger.conf文件中粘贴以下代码

PassengerRoot /usr/lib/ruby/gems/1.9.2/gems/passenger-3.0.2
PassengerRuby /usr/bin/ruby1.9.2

2. 通过在 /etc/apache2/mods-enabled 中创建以下符号链接来启用模块

$ ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load
$ ln -s /etc/apache2/mods-available/passenger.conf /etc/apache2/mods-enabled/passenger.conf

3.现在通过将以下内容添加到 /etc/apache2/sites-enabled 中的 000-default 文件来创建一个虚拟主机。

<Directory /var/www/your_app>
         RailsBaseURI /your_app
         RailsEnv development
         AllowOverride all
         Options -MultiViews
         allow from all
</Directory>
  1. 现在创建您的应用程序的软链接,确保您的应用程序必须驻留在 /opt 中,为此您可以为您的应用程序创建一个单独的文件夹。

    一世。$ sudo mkdir -p /opt/rails_apps

    ii. $ sudo cp -R /path/to/your_app/ /opt/rails_apps/

    iii. $ sudo ln -s /opt/rails_apps/your_app/public/ /var/www/your_app

  2. 然后使用以下命令重新启动 apache。

    /etc/init.d/apache2 重启

于 2011-08-23T14:56:54.717 回答
1

如果您已逐字包含以下内容,则在重新启动 Apache 时将收到一条错误消息:

AllowOverride all              # <-- relax Apache security settings
Options -MultiViews            # <-- MultiViews must be turned off

它吐出的错误是:

user@my_server:~/your_site# sudo /etc/init.d/apache restart
Syntax error on line 11 of /etc/apache2/sites-enabled/your_site:
Illegal override option #
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!
root@my_server:~/your_site#

修复?删除后面的注释行,使其看起来像这样:

AllowOverride all
Options -MultiViews

希望这可以帮助!

于 2011-09-21T09:27:36.250 回答