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

Проблемы с получением Squirrelmail и пассажира, работающего на apache

Я пытаюсь создать настройку, в которой я хочу запускать squirrelmail и Passenger на одном сервере apache, имея URL-адрес для squirrelmail и все остальное, обрабатываемое пассажиром. Я дошел до того, что и белка, и пассажир будут работать нормально сами по себе, но когда пассажир работает, он обрабатывает все URL-адреса.

До сих пор я пробовал использовать псевдоним и перенаправление, чтобы указать веб-почту / URL-адрес на каталог squirrelmails, но это не сработало.

Вот мой файл httpd.conf:

<VirtualHost *:80>
  ServerName not.my.real.server.name
  DocumentRoot /var/www/sinatra/public
  # Does not work:
  #Redirect webmail/ /usr/share/squirrelmail/
  #<Directory /usr/share/squirrelmail>
  #  Require all granted
  #</Directory>
  <Directory /var/www/sinatra/public>
    Order  allow,deny
    Allow  from all
  </Directory>
</VirtualHost>

В apache2.conf эти файлы добавлены для пассажира, кроме этого я не вносил никаких изменений в стандартную установку apache на Ubuntu Server 12.04:

# passenger config
  LoadModule passenger_module /home/kenneth/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15/ext/apache2/mod_passenger.so
  PassengerRoot /home/kenneth/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.15
  PassengerRuby /home/kenneth/.rvm/wrappers/ruby-1.9.3-p194/ruby

Файл passanger config.ru:

require './index'
run Sinatra::Application

Попробуй это:

<VirtualHost *:80>
    ServerName not.my.real.server.name
    DocumentRoot /var/www

    Alias /webmail "/usr/share/squirrelmail"
    <Directory /usr/share/squirrelmail>
        Order allow,deny
        Allow from all
    </Directory>

    <Directory /var/www/sinatra>
        RackBaseURI /sinatra
        PassengerResolveSymlinksInDocumentRoot On
        PassengerAppRoot /var/www/sinatra
    </Directory>
</VirtualHost>

ОБНОВИТЬ

Я думаю, что мы можем указать Rails игнорировать конкретный URL, отключив PassengerEnabled:

<VirtualHost *:80>
    ServerName not.my.real.server.name
    DocumentRoot /var/www/sinatra/public

    <Directory /var/www/sinatra/public>
        Order allow,deny
        Allow from all         
    </Directory>

    Alias /webmail "/usr/share/squirrelmail"
    <Location /webmail>
        PassengerEnabled off
    </Location>
</VirtualHost>

Попробуйте!