Konfiguruję serwer produkcyjny RHEL 6 z RVM i pasażerem. Przeszedłem przez instalowanie RVM (w moim katalogu domowym), instalowanie pasażera i dodawanie wymaganych linii do httpd.conf:

LoadModule passenger_module /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11
PassengerRuby /home/em/.rvm/wrappers/ruby-1.9.2-p290@rails_3_production/ruby

Ale kiedy ponownie uruchamiam Apache, pojawia się ten błąd...

$ sudo /sbin/service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Syntax error on line 218 of /etc/httpd/conf/httpd.conf: Cannot load /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so into server: /home/em/.rvm/gems/ruby-1.9.2-p290@rails_3_production/gems/passenger-3.0.11/ext/apache2/mod_passenger.so: cannot open shared object file: Permission denied
                                                           [FAILED]

Eksperymentalnie ustawiłem całą ścieżkę zaczynając od ~/.rvm/... na 777, ale nadal otrzymuję ten sam błąd.

Jakieś pomysły?

12
Ethan 18 luty 2012, 05:31

2 odpowiedzi

Najlepsza odpowiedź

Okazało się, że ma to związek z SELinux.

Dokumenty pasażera omawiają to

Ethan 22 luty 2012, 00:18

$ sudo setenforce 0

Pomogło mi

Mam nadzieję, że pomoże to innym!

AKTUALIZACJA

Muszę powiedzieć, że powyższe rozwiązanie jest tymczasowe (do ponownego uruchomienia)

Więc o ile ta odpowiedź ma popularność, pokażę, jak w ogóle wyłączyć SELinux...

Tutaj jest:

Biegać

$ sudo vi /etc/sysconfig/selinux

Lub

$ sudo vi /etc/selinux/config

Następnie znajdź tę linię

SELINUX=enforcing

I zmień go na

SELINUX=disabled

Zapisz konfigurację selinux.

Teraz SELinux jest całkowicie wyłączony.

Twoje zdrowie

16
okliv 16 listopad 2014, 02:21