Назад | Перейти на главную страницу

Приложение Rails (Redmine) на Phusion Passenger

Я установил mod_passenger для Apache на свой Linux. Модуль скомпилирован правильно, и Apache, похоже, загружает его правильно (с этой стороны ошибок нет).

Но, когда я настраиваю виртуальный хост для указания на приложение Rails (управление проектами Redmine), я получаю стон страницы о том, что «приложение Ruby on Rails не может быть запущено». В частности, «Сообщение об ошибке: нет такого файла или каталога - config / environment.rb».

Я вижу, что в корневой папке Redmine действительно есть config / environment.rb. Моя конфигурация vhost такая:

<VirtualHost *:80>
# server DocumentRoot, address, and admin email

RailsBaseURI /redmine
DocumentRoot /srv/www/htdocs

</VirtualHost>

У меня есть исходный код Redmine в / srv / www / htdocs / redmine (без символических ссылок или чего-то еще, потому что он жаловался на это).

В приступе гнева из-за того, что ничего не работало, я рекурсивно установил право собственности на файл и режим папки / redmine на wwwrun: www (мой пользователь и группа Apache) и 777. Как вы думаете, в этом проблема?

Любые идеи или советы приветствуются.

PS. Есть ли какие-нибудь проекты по переписыванию Redmine на PHP? РЖУНИМАГУ!

У меня такая же ошибка, и это http://randomoughttsgr.wordpress.com/2011/10/17/redmine-sub-uri-and-apache-configuration/ помог мне решить это!

При попытке настроить Redmine в sub-uri я столкнулся с проблемой при попытке настроить apache. Пассажир отобразит следующую ошибку: Нет такого файла или каталога - config / environment.rb при попытке получить доступ к веб-странице Redmine.

Попробовав несколько предложений по этой проблеме, мне удалось заставить Redmine работать со следующей конфигурацией:

Конфигурационный файл пассажира.load был следующим (пути, вероятно, будут отличаться в зависимости от установки):

LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.9/ext/apache2/mod_passenger.so
PassengerRoot /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8/gems/passenger-3.0.9
PassengerRuby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby
PassengerDefaultUser www-data

В конфигурации виртуального хоста я добавил следующее:

PassengerAppRoot /usr/local/lib/redmine-1.2/
RailsBaseURI /redmine
RailsEnv production

PassengerAppRoot представляет путь, по которому установлен Redmine.
RailsBasedURI представляет подкаталог в URL, который представляет Redmine, например. http://www.example.org/redmine

(для этого также необходимо иметь символическую ссылку на Redmine-./ public внутри корневой веб-папки).

Также я сменил владельца Redmine-1.2 Папка и папка redmine с символической ссылкой на пользователя / группу apache (у меня сложилось впечатление, что это было необходимо).

Режим развертывания для развертываний sub-URI пассажира довольно специфичен.

Вы иметь для создания символических ссылок. Они должны указывать на public каталог (не RAILS_ROOT). Пассажир использует информацию из этой символической ссылки, чтобы найти остальную часть приложения. Это сделано для того, чтобы вы никогда не устанавливали свое приложение Rails внутри корня документа (чего никогда не следует делать, чтобы ваш код и конфигурация не были открыты для всеобщего обозрения).

В вашем случае это означало бы установить Redmine на что-то вроде /srv/www/redmine. Затем создайте символическую ссылку

ln -s /srv/www/redmine/public /srv/www/htdocs/redmine

Имея это на месте, вы можете оставить свой виртуальный хост как есть, предполагая, что пользователь вашего веб-сервера имеет право читать все файлы внутри /srv/www/redmine/public. В качестве последнего совета: проверьте владельца config/environment.rb файл. Его владельцем будет пользователь, на котором запущен redmine (если это не root).

Для получения дополнительной информации ознакомьтесь с отличным Документация для пассажиров.