1

我一直在尝试在最初用于多个 php 应用程序的盒子上安装 rails 应用程序。我安装了乘客并创建了一个 conf 文件,但我对它们如何协同工作感到困惑。

如果我想访问 Rails 应用程序,我的 ServerName 应该是什么?这个盒子是一个运行 apache2 的 debian 挤压,安装了乘客模块。下面是我的conf文件。我目前必须去 xxx.xxx.xxx.xxx/leoadmin/public 才能让应用程序正常运行。我在公共目录中有以下 htaccess。如果我的 conf 文件配置正确,我认为这是不必要的。

我认为我的主要问题是 conf 文件配置错误。我相信正在加载 conf 文件,但我不明白为什么我仍然需要 htaccess 才能看到任何操作。

.htaccess

#PassengerEnabled On
PassengerAppRoot /var/www/leoadmin/
#Options -MultiViews
#PassengerResolveSymlinksInDocumentRoot on
#Set this to whatever environment you'll be running in
RailsEnv production
#RackBaseURI /var/www/leoadmin

虚拟主机配置

<VirtualHost *>

    ServerName leoadmin

    DocumentRoot /var/www/leoadmin/public
    <Directory /var/www/leoadmin/public>
            Allow from all
    </Directory>
    Alias /leoadmin /var/www/leoadmin/public
    <Location /leoadmin>
            SetEnv RAILS_RELATIVE_URL_ROOT "/leoadmin"
            PassengerAppRoot /var/www/leoadmin
    </Location>

    ErrorLog /var/log/apache2/leoadmin-error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/leoadmin-access.log combined

</VirtualHost>
4

1 回答 1

0

几个月前,我在试图解决这个问题时感到痛苦和痛苦,我的配置允许我做子 URI,所以我不确定这是否是你想要的,但它会沿着这些路线。我从来不需要.htaccess这个设置的文件:

NameVirtualHost *:80 <VirtualHost *:80>
ServerName www.test.co.uk
DocumentRoot /web/rails
<Directory /web/rails>
    Allow from all
</Directory>

RailsBaseURI /test
RailsEnv development
<Directory /web/rails_projects/test/>
    Options -MultiViews
</Directory>

对我来说/web/rails是一个根目录,从那里我有许多符号链接到我/home/存储项目的目录。ServerName 是您用于将被识别的机器的任何限定名称。

(以防万一,我正在运行乘客 3.0.9 和 Rails 3.2.11)

于 2013-04-17T14:33:20.460 回答