Проблемы с сим-связью в URI Phusion Passenger Sub - PullRequest
4 голосов
/ 19 апреля 2011

Я развернул приложение URI rails в Ubuntu с Apache и Phusion Passenger на

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)

И приложение rails для mydomain.com, и приложение rails для mydomain.com/suburi находятся в / 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 в общую папку sub uri.Не уверенный, сделал ли я это правильно, я нашел, что документация не была настолько хороша.Что-то я пропускаю и / или делаю неправильно?Я сделал неправильную системную ссылку?

Я был бы очень признателен за помощь.

Или, если на то пошло, если кто-нибудь знает лучший / более простой способ сделать это с поддоменом, таким как поддомен.mywebsite.com, который будет работать тоже.

Спасибо

1 Ответ

2 голосов
/ 28 апреля 2011

Если вы используете suburi-s, то

  1. <documentroot>/<suburi> предназначено для указания на общедоступный каталог вашего приложения rails
  2. корневой каталог вашего приложения rails должен быть на один каталог выше вашего открытого приложения rails

И то и другое решается, если у вас есть выделенный общедоступный документ для вашего домена, а затем вы делаете

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> 

вы говорите, что: и приложение rails для mydomain.com, и приложение rails для mydomain.com/suburi находятся в / srv / www /

Это немного смутило меня, я не думаю, что было бы хорошей идеей хотеть запускать приложение в домене, а другое в suburi, так как маршрутизация непременно должна быть запутана. Скорее используйте 2 suburi-s, в этом случае сделайте

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

где / srv / www / suburi2 - это ваш второй каталог root для приложений, и добавьте:

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

Вы можете добавить любое количество suburis к одному и тому же vhost.

надеюсь, это помогло

...