Я пытаюсь создать настройку, в которой я хочу запускать 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>
Попробуйте!