rap*_*tle 1 apache ruby-on-rails apache2 virtualhost
在服务器上已经有一个站点正在运行。我试图让我的 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>
Run Code Online (Sandbox Code Playgroud)
我需要添加一个单独的主机文件吗?
<VirtualHost *:80>
ServerName ???
DocumentRoot /var/www/railsapp/public
<Directory /var/www/railsapp/public>
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做...
部署到子 URI乘客文档中记录了正确的解决方案:
假设你已经有一个虚拟主机:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
并且您希望/websites/rails
可以从 URL 访问位于 中的 Rails 应用程序http://www.phusion.nl/subapp
。
为此,您需要执行以下操作:
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>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3409 次 |
最近记录: |