![](/img/trans.png)
[英]Strange problem publishing a fresh Ruby on Rails 3 application on localhost (Apache, Passenger and VirtualHosts)
[英]Apache VirtualHosts for a Rails app
在服务器上,已经有一个站点正在运行。 我试图使我的rails应用程序在同一站点的URL上运行,即该站点为example.com,并且rails应用程序将在example.com/railsapp运行。
Rails应用程序将使用乘客,并且服务器为ubuntu。 当前的virtualhosts文件如下所示:
<VirtualHost *:80>
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory /var/www/examplesite/>
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
我需要添加一个单独的主机文件吗?
<VirtualHost *:80>
ServerName ???
DocumentRoot /var/www/railsapp/public
<Directory /var/www/railsapp/public>
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
我不确定该怎么办...
正确的解决方案记录在“ 部署到子URI乘客”文档中:
假设您已经有一个虚拟主机:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
</VirtualHost>
并且您希望可以从URL http://www.phusion.nl/subapp
访问位于/websites/rails
Rails应用程序。
为此,您需要执行以下操作:
Alias {SUBURI} {PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY}
。 <Location /{SUBURI}>
块。 Location
块中,设置PassengerBaseURI /{SUBURI}
。 Location
块中,设置PassengerAppRoot {PATH TO YOUR APPLICATION ROOT}
。 <Directory {PATH TO YOUR APPLICATION'S PUBLIC DIRECTORY}>
块。 Directory
块内,设置Allow from all
。 Directory
块中,禁用MultiViews
。 这是一个例子:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
# These have been added:
Alias /subapp /websites/rails/public
<Location /subapp>
PassengerBaseURI /subapp
PassengerAppRoot /websites/rails
</Location>
<Directory /websites/rails/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.