Настройка Passenger Phusion на Ubuntu 11.04

Я в ярости от любого, кто когда-либо говорил что-то вроде «развертывание приложений ruby ​​on rails — это несложно». Нет, это не так. Это самое сложное, что мне когда-либо приходилось делать, и я разрабатываю операционные системы.

Фух. Теперь, когда это вышло. Наконец-то я установил пассажира (используя процесс установки баса назад), и установщик сказал:

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

LoadModule passenger_module /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.8
PassengerRuby /usr/local/rvm/wrappers/[email protected]/ruby

Предположим, у вас есть приложение Rails в каталоге /somewhere. Добавьте виртуальный хост в файл конфигурации Apache и установите его DocumentRoot в /somewhere/public:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off
      </Directory>
   </VirtualHost>

Я поместил оба из них в /etc/apache2/apache2.conf, и когда я пытаюсь запустить apache, он говорит об ошибке, в какой строке я помещал этот мусор. Помощь очень ценится. Я почти там, я чувствую это!

Ник


person user823596    schedule 23.08.2011    source источник
comment
вы, вероятно, должны включить сообщение об ошибке в свой вопрос   -  person mikezter    schedule 23.08.2011
comment
для начала ваши виртуальные хосты не должны быть в вашем apache2.conf - должны быть /etc/apache2/sites-available/railsapp, обратитесь к Руководство по настройке Apache Ubuntu   -  person David Barlow    schedule 23.08.2011


Ответы (2)


После успешной установки модуля Apache 2 выполните следующий набор шагов для настройки Apache.

  1. Создайте следующие два файла в /etc/apache2/mods-available

    mkdir /etc/apache2/mods-available/passenger.load

вставьте следующий код в файлpassage.load

LoadModule passenger_module /usr/lib/ruby/gems/1.9.2(your version)/gems
/passenger-3.0.2/ext/apache2/mod_passenger.so

mkdir /etc/apache2/mods-available/passenger.conf

вставьте следующий код в файлpassage.conf

PassengerRoot /usr/lib/ruby/gems/1.9.2/gems/passenger-3.0.2
PassengerRuby /usr/bin/ruby1.9.2

2. Включите модули, создав следующие символические ссылки в /etc/apache2/mods-enabled.

$ ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load
$ ln -s /etc/apache2/mods-available/passenger.conf /etc/apache2/mods-enabled/passenger.conf

3. Теперь создайте виртуальный хост, добавив следующее в файл 000-default в /etc/apache2/sites-enabled.

<Directory /var/www/your_app>
         RailsBaseURI /your_app
         RailsEnv development
         AllowOverride all
         Options -MultiViews
         allow from all
</Directory>
  1. Теперь создайте программную ссылку вашего приложения, убедитесь, что ваше приложение должно находиться в /opt. Для этого вы можете создать отдельную папку для своего приложения.

    я. $ sudo mkdir -p /opt/rails_apps

    II. $ sudo cp -R /path/to/your_app/ /opt/rails_apps/

    III. $ sudo ln -s /opt/rails_apps/your_app/public/ /var/www/your_app

  2. Затем перезапустите apache с помощью следующей команды.

    /etc/init.d/apache2 перезапустить

person suvankar    schedule 23.08.2011
comment
Спасибо, это полезно. Однако, следуя вашим инструкциям, я вижу страницу index.html по умолчанию из общедоступной папки rails. Изображения на этой странице не отображаются, а остальная часть приложения недоступна. Что еще мне делать? - person Ariel T; 29.06.2012

Вы получите сообщение об ошибке при перезапуске Apache, если вы дословно включили следующее:

AllowOverride all              # <-- relax Apache security settings
Options -MultiViews            # <-- MultiViews must be turned off

Выдает ошибку:

user@my_server:~/your_site# sudo /etc/init.d/apache restart
Syntax error on line 11 of /etc/apache2/sites-enabled/your_site:
Illegal override option #
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!
root@my_server:~/your_site#

Исправление? Удалите следующие строки комментариев, чтобы это выглядело так:

AllowOverride all
Options -MultiViews

Надеюсь это поможет!

person Ahzwon    schedule 21.09.2011