Вам нужен доступ к консоли машины Linux для запуска ssh сервиса снова - это может вовлечь Вас регистрирующий билет с Вашим поставщиком услуг хостинга. Перезагрузка не может зафиксировать это - если сервис не установлен запуститься на начальной загрузке.
Когда я первоначально разместил это, я пытался сэкономить время, идущее по этому пути для установки, только чтобы она не работала. Через пару дней я просто попробовал, и это сработало. Я сделал следующее:
Создал пользователя, из которого фактически установил пассажир. Я подозреваю, что для этого можно использовать root
, но я создал отдельного пользователя уровня администратора с именем пассажира
. Я также отключил весь удаленный доступ для этого пользователя.
sudo useradd -m -s /bin/bash passenger
Переключитесь на нового пользователя пассажир
, установите rvm
и используйте его для установки моего предпочтительного default ruby ( 1.9.3-stable
):
su - passenger
curl -L https://get.rvm.io | bash
rvm install 1.9.3
Установите пассажир и модуль apache:
gem install passenger
passenger-install-apache2-module
Добавьте файлы мода пассажира
в / etc / apache2 / mods-available
... Файл .load
:
# /etc/apache2/mods-available/passenger.load
LoadModule passenger_module /home/passenger/.rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5/libout/apache2/mod_passenger.so
Файл .conf
:
# /etc/apache2/mods-available/passenger.conf
PassengerRoot /home/passenger/.rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5
PassengerDefaultRuby /home/passenger/.rvm/wrappers/ruby-1.9.3-p429/ruby
PassengerUserSwitching on
PassengerDefaultUser www-data
PassengerDefaultGroup www-data
# Any other global-only configuration
Затем я включил модуль и запустил тест конфигурации с последующей перезагрузкой в случае успеха
sudo a2enmod passenger
sudo apache2ctl configtest
sudo service apache2 graceful # if Syntax Ok from previous command
После этого я настроил свой виртуальный хост по мере необходимости ... пример:
<VirtualHost *:80>
ServerName appname.yourdomain.com
ServerAdmin appuser@yourdomain.com
DocumentRoot /home/appuser/path/to/doc/root
PassengerSpawnMethod smart
PassengerPoolIdleTime 300
PassengerMaxRequests 500
PassengerStatThrottleRate 5
PassengerMinInstances 2
PassengerRuby /home/appuser/.rvm/rubies/ruby-1.9.3-p429/bin/ruby
<Directory "/home/appuser/path/to/doc/root">
Options Indexes -ExecCGI FollowSymLinks -MultiViews
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Поскольку PassengerUserSwitching
является на
, а PassengerRuby
принадлежит другому пользователю, пассажир автоматически запустит приложение от имени этого пользователя : группа
. Однако есть определенные директивы для пассажиров, которые вы можете использовать для настройки пользователя и группы на уровне vhost. Должны ли они соответствовать владельцу PassengerRuby
, я точно не знаю.
Статьи / документы, которые помогли: