在服务器上,已经有一个站点正在运行。我试图让我的rails应用程序运行在同一个站点的url上,即站点是example.com,rails应用程序将在example.com/railsapp上运行。
rails应用程序将使用乘客,服务器是ubuntu。当前的虚拟主机文件看起来像;
<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> 我不知道该怎么办..。
发布于 2014-01-17 23:47:36
适当的解决方案记录在部署到子URI乘客文档中:
假设您已经有了一个虚拟主机:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
</VirtualHost>您希望您位于/websites/rails中的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>https://stackoverflow.com/questions/21193587
复制相似问题