Nginx + passenger не разрешает мягкую ссылку при развертывании приложения в корневой каталог хоста - PullRequest
0 голосов
/ 06 февраля 2011

Я пробую разные способы развертывания приложения Rails (если быть точнее, redmine) с nginx и Passenger.Допустим, я установил его в /var/local/railapps/redmine-1.1.

. Когда я выполняю развертывание как sub-uri, я могу сделать программную ссылку только на папку public:

sudo ln -s /var/local/railapps/redmine-1.1/public /var/www/rails/redmine

и добавитьв server блок в nginx.conf:

root /var/www/rails;
passenger_enabled on;
passenger_base_uri /redmine;

При этом redmine может обращаться к папкам на том же уровне, что и public, например, /var/local/railapps/redmine-1.1/config.

.с другой стороны, Пассажир не разрешает программные ссылки, когда он установлен в корневой каталог хоста (согласно этому руководству ):

sudo ln -s /var/local/railapps/redmine-1.1/public /var/www/rails/redmine

root /var/www/rails/redmine;
passenger_enabled on;

Я получаю сообщение об ошибке от Пассажира: No such file or directory - config/environment.rbв корне /var/www/rails, что означает, что он пытается получить относительные пути не от цели ссылки, а от самой ссылки.Если я сделаю ссылку на главную папку Redmine, все будет работать:

sudo ln -s /var/local/railapps/redmine-1.1 /var/www/rails/redmine

root /var/www/rails/redmine/public;
passenger_enabled on;

Итак, вопрос в том, почему Пассажир может разрешать программные ссылки в режиме «sub-uri», но не врежим "root root"?Есть ли дополнительные настройки?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

Он не делает это в «режиме корневого узла» для поддержки каталогов развертывания в стиле Capistrano.Это подробно описано в этом разделе документации по версии Apache .Версия Apache позволяет настраивать поведение разрешения символьных ссылок (по причинам обратной совместимости), тогда как версия Nginx поддерживает только один тип поведения.

0 голосов
/ 17 октября 2016

Начиная с версии 2 для пассажиров, символические ссылки не разрешены в корневом каталоге документов. Вы можете изменить эту настройку с помощью:

PassengerResolveSymlinksInDocumentRoot on
...