加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Phusion Passenger Sub URI sym链接问题

发布时间:2020-12-17 02:10:42 所属栏目:百科 来源:网络整理
导读:我正在使用Apache和Phusion Passenger在Ubuntu上部署子URI rails应用程序 www.mydomain.com/suburi 并且遇到配置问题.现在我收到这个错误: Passenger Error #2An error occurred while trying to access '/srv/www/mydomain/public/suburi': Cannot resolve
我正在使用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也可以.

谢谢

解决方法

如果你使用suburi-s,那么

>< documentroot> /< suburi>是指你的rails应用程序的公共目录
>你的rails app root目录是你的rails app public上方的一个目录

如果你有一个专门的公共docroot为你的域,然后你这样做,两者都解决了

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 /

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

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中添加任意数量的suburis.

希望这有帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读