У меня apache2.2 на windows. Я пытаюсь обслуживать как subversion (/ svn), так и redmine (/ redmine). У меня svn отлично работает с этой конфигурацией:
<Location /svn>
DAV svn
SVNParentPath C:/svn_repository
...
</Location>
Это отлично работает - мои пользователи svn могут отлично нажимать http: // mybox / svn.
Теперь я хочу добавить еще один каталог для приложения rails (RedMine):
Я последовал совету из этот вопрос, чтобы настроить сервер mongrel и подключить к нему прокси-клиентов apache. Он отлично работает, если я сделаю его корневым, но у меня проблемы с его использованием в подкаталоге:
<Location /redmine>
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</Location>
Какие-либо предложения?





Вот что мне пришлось изменить:
Я удалил косую черту в конце:
<Location /redmine>
ProxyPass http://localhost:3000
ProxyPassReverse http://localhost:3000/
</Location>
И в моем приложении рельсов:
# added to end of file C:\redmine\config\environment.rb
ActionController::AbstractRequest.relative_url_root = "/redmine"
Теперь работает!
Меня не совсем устраивал такой подход - я столкнулся с некоторыми проблемами перенаправления. Это еще одна попытка, которая пока работает хорошо.
Второй подход кажется лучше.
Обновлено:
Как отмечено в комментариях, для более поздних приложений, работающих на Rails 2.3.2+, используйте вместо этого:
config.action_controller.relative_url_root = '/redmine'
Положил в новый файл additional_environment.rb.
Я использую окна, поэтому не думаю, что это сработает для меня. Спасибо хоть.
На самом деле это ActionController :: Base.relative_url_root начиная с Rails 2.3.x
Вам нужно устанавливать разные порты для каждого приложения Rails?
@Olivier У меня он работает только под другим портом (3000), потому что apache работает на порту 80. Если вы размещаете несколько приложений rails с одним и тем же веб-сервером, вы должны использовать один и тот же порт для всех
Passenger (http://modrails.com) - лучшая альтернатива fastcgi, потому что его очень легко настроить, я бы рекомендовал использовать его для размещения ваших приложений rails, используя конфигурацию, аналогичную той, что у вас есть сейчас.
Тем не менее, это первый результат Google, и Майкл добавил тег windows2003 более 3 часов назад.
И при чем тут windows2003? Пассажирские работы.
Со стороны пассажира окна не поддерживаются. Если это так, пожалуйста, дайте ссылку об этом, и я проверю!
Если вы все еще хотите использовать Mongrel + Apache с использованием обратного прокси, вот как я решил ту же проблему в нашей системе (Win2k3, Apache 2.2, магистраль Redmine). Секрет заключается в том, чтобы установить службу mongrel с помощью --prefix /redmine, которая сообщает ей, что она должна обслуживать ее с http://localhost:port/redmine.
В Apache httpd.conf (или подходящий включаемый файл):
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<IfModule mod_proxy.c>
ProxyRequests Off
#No need to forward on static content - let apache do it faster
ProxyPass /redmine/images !
ProxyPass /redmine/stylesheets !
ProxyPass /redmine/javascript !
# Remove the following entry on public sites as this is insecure
ProxyPass /redmine/plugin_assets !
ProxyPass /redmine/help !
ProxyPass /redmine http://localhost:4000/redmine
ProxyPassReverse /redmine http://localhost:4000/redmine
ProxyPreserveHost On
#continue with other static files that should be served by apache
Alias /redmine/images C:/Repositories/redmine/public/images/
Alias /redmine/stylesheets C:/Repositories/redmine/public/stylesheets/
Alias /redmine/javascript C:/Repositories/redmine/public/javascript/
# Remove the following on public sites as this is insecure
Alias /redmine/plugin_assets C:/Repositories/redmine/public/plugin_assets/
Alias /redmine/help C:/Repositories/redmine/public/help/
</IfModule>
# Make sure apache can see public and all subfolders - not suitable for public sites
<Directory "C:/Repositories/redmine/public/">
Allow from all
Order allow,deny
</Directory>
Дворняга устанавливается в таком виде:
mongrel_rails service::install --prefix /redmine -N redmine_prod -p 4000 -e production -c C:\Repositories\redmine
Надеюсь, это кому-то поможет. Сначала я попытался настроить Apache + fastcgi и т. д., Но потерял более драгоценные волосы - это не подходит для Windows.
P.s. Я нашел этот PDF-файл очень полезным справочником: http://www.napcsweb.com/howto/rails/deployment/RailsWithApacheAndMongrel.pdf
/ Дэмиен
Я согласен с Радаром. Пассажир действительно прост в настройке, позволяет приложениям Rails совместно использовать память, снимает бремя управления кластером полукровок и практически не требует настройки. Все, что вам нужно, это специальный файл config.ru с Конфигурация RackUp и DocumentRoot, указывающий на RAILS_ROOT / public, установленный в Apache.
Нет - и без плановой поддержки Windows. См. bitnami.org/forums/forums/2/topics/477
Я настоятельно рекомендую Passenger. Делает размещение рельсов почти таким же простым, как PHP.