Приложение Ror не работает на CentOS

Я впервые использую CentOS 6.6 для развертывания приложения Rails 4. Я установил все необходимое программное обеспечение, такое как MySQL, Ruby, Rails, Passenger, Apache2 и т. д. Я протестировал его для страницы index.html внутри /var/www/html/index.html и настроил его на конфигурацию Apache, и он отлично работает.

Когда я развернул приложение Rails, оно действительно работало на сервере, но отображалось так, как показано на снимке экрана ниже.

введите здесь описание изображения

Ниже приведены мои настройки конфигурации Apache, которые я сделал до сих пор.

/etc/httpd/conf/httpd.conf

  LoadModule passenger_module /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
    PassengerDefaultRuby /home/user/.rvm/wrappers/ruby-2.1.2/ruby
    PassengerRoot /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6
</IfModule>

Я создал файл vhost.conf внутри /etc/httpd/conf.d/

<VirtualHost *:80>
  ServerName myipaddress
  DocumentRoot /var/www/html/projectname/public_html/current/public
  <Directory /var/www/html/projectname/public_html/current/public>
     # This relaxes Apache security settings.
     AllowOverride all
     # MultiViews must be turned off.
     Options -MultiViews
     # Uncomment this if you're on Apache >= 2.4:
     #Require all granted
  </Directory>

I run the command below command

service httpd restart 
service httpd reload

Ни приложение Rails не работает на сервере, ни показывает какие-либо ошибки.

Любое решение будет оценено. Заранее спасибо.


person siv rj    schedule 22.04.2015    source источник


Ответы (1)


Прежде всего всегда проверяйте журналы Apache. Этот шаг очень важен, но его часто упускают из виду. Если это не поможет, я бы попробовал несколько вещей:

Дважды проверьте документацию и убедитесь, что вы полностью установили Пассажир, и не пропустил ни шагу.

Начните с удаления директивы IfModule. Поскольку вам нужен Passenger, вам нужно сообщение об ошибке, если оно не загружается.

LoadModule passenger_module /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so
PassengerDefaultRuby /home/user/.rvm/wrappers/ruby-2.1.2/ruby
PassengerRoot /home/user/.rvm/gems/ruby-2.1.2/gems/passenger-5.0.6

У вас есть ваш IP-адрес в качестве имени вашего сервера. Убедитесь, что это не конфликтует ни с какими другими конфигурациями (другие сайты или httpd.conf). В противном случае вы можете просто загрузить другую страницу/приложение.

В зависимости от того, как вы его настроили, у вас могут возникнуть проблемы с разрешениями, поскольку вы указываете PassengerDefaultRuby и PassengerRoot на /home/user/.rvm. По соглашению они обычно находятся где-то в более публичном месте, например /var/lib/gems/ и /usr/bin/.

Убедитесь, что вы определили путь root в файле config/routes.rb вашего приложения Rails.

Убедитесь, что вы chown -R указали путь к приложению для пользователя apache. Это поможет вам с устранением неполадок и безопасностью.

После того, как вы все это сделали, проверьте журналы еще раз. После внесения изменений снова проверьте журналы.

person Travis    schedule 22.04.2015
comment
Спасибо за Ваш ответ. Да, вы были правы, некоторые проблемы с разрешением были там. Я снова установил все как пользователь root, и у меня все заработало. - person siv rj; 23.04.2015