ruby on rails 3 - Phusion Passenger Sub URI系统链接问题



我正在使用Apache和Phusion Passenger在Ubuntu上部署一个子URI rails应用程序

www.mydomain.com/suburi 

并且我在配置它时遇到问题。现在我得到这个错误:

Passenger Error #2
An error occurred while trying to access '/srv/www/mydomain/public/suburi': Cannot resolve possible symlink '/srv/www/mydomain/public/suburi': No such file or directory (2)

mydomain.com的rails应用和mydomain.com/suburi的rails应用都位于/srv/www/

我当前的虚拟主机是这样的:

<VirtualHost 173.230.137.212:80> 
  ServerName www.mydomain.com
  ServerAlias mydomain.com
  DocumentRoot /srv/www/mydomain/public
  ErrorLog /srv/www/error.log
  RewriteEngine On
  RewriteOptions Inherit
  RailsEnv production
<directory /srv/www/mydomain/public>
  Options Indexes FollowSymLinks -MultiViews
  AllowOverride all
  Order allow,deny 
  allow from all
</directory>
RailsBaseURI /suburi                   
<Directory /srv/www/suburi>
  Options -MultiViews               
</Directory>

我知道路径是正确的,但这是我知道的唯一正确的东西。我的服务器管理技能并不惊人。

我做了一个从mydomain.com的公共文件夹到子uri的公共文件夹的sym链接。不确定我是否做对了,我发现文档不是很好。有什么我错过和/或做错了吗?我是不是把系统连接错了?

我真的很感激你的帮助。

或者对于这件事,如果有人知道一个更好/更简单的方法来做一个子域,像subdomain.mywebsite.com,也会工作。

谢谢

如果您使用郊区,则

  1. <documentroot>/<suburi>指向rails应用程序的公共目录
  2. 你的rails应用程序根目录意味着在你的rails应用程序公共目录
  3. 之上的一个目录

如果你的域名有一个专用的公共根,那么这两个问题都解决了,然后你做

ln -sf /path/to/suburi-rails-app/public <documentroot>/<suburi>

文档确实不是很好。所以你的解决方案是:

ln -sf /srv/www/suburi/public srv/www/mydomain/public/suburi

和vhost conf:

<VirtualHost 173.230.137.212:80> 
  ServerName www.mydomain.com
  ServerAlias mydomain.com
  DocumentRoot /srv/www/mydomain/public
  ErrorLog /srv/www/error.log
  RewriteEngine On
  RewriteOptions Inherit
  RailsEnv production
  <Directory /srv/www/mydomain/public>
    Options FollowSymLinks -MultiViews
    AllowOverride all
    Order allow,deny 
    Allow from all
  </Directory>
  RailsBaseURI /suburi                   
  <Directory /srv/www/mydomain/public/suburi>
    Options -MultiViews               
  </Directory>
</VirtualHost> 

你说:mydomain.com的rails应用程序和mydomain.com/suburi的rails应用程序都位于/srv/www/

这让我有点困惑,我不认为这是一个好主意,想要在一个域名上运行一个应用程序,另一个在suburi上运行,因为路由必然会被混淆。而是使用2个郊区,在这种情况下

ln -sf /srv/www/suburi2/public srv/www/mydomain/public/suburi2

其中/srv/www/suburi2是你的第二个应用程序根目录,并添加:

RailsBaseURI /suburi2                   
<Directory /srv/www/mydomain/public/suburi2>
  Options -MultiViews               
</Directory>

您可以在同一个vhost中添加任意数量的郊区。

希望对您有所帮助

相关内容

  • 没有找到相关文章

最新更新