Пассажир неожиданная ошибка в mod_passenger: не удается подключиться к сокету Unix - PullRequest
4 голосов
/ 20 марта 2012

Я только что переместил свое приложение rails на новую машину. Я использую Apache 2.2.3 и пассажирский 3.0.11. После начальной загрузки баз данных я периодически вижу ошибку, которая говорит, что приложение rails не запустилось. Вот что я вижу в своем журнале ошибок Apache:

[Sun Mar 18 04:02:13 2012] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[ pid=10788 thr=47366521234240 file=ext/apache2/Hooks.cpp:860 time=2012-03-18 08:51:10.215 ]: Unexpected error in mod_passenger: Cannot connect to Unix socket '/tmp/passenger.1.0.13044/generation-0/socket': No such file or directory (2)
Backtrace:
 in 'Passenger::ApplicationPool::Client* Passenger::ApplicationPool::Client::connect(const std::string&, const std::string&, const Passenger::StaticString&)' (Client.h:438)
 in 'Passenger::ApplicationPool::Client* Hooks::getApplicationPool()' (Hooks.cpp:266)
 in 'Passenger::SessionPtr Hooks::getSession(const Passenger::PoolOptions&)' (Hooks.cpp:292)
 in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:561)

Я немного погуглил, но я могу только найти пассажира, который говорит обновить пассажира до версии 3, но я уже на версии 3. Я также видел, как кто-то говорил, что нужно изменить сценарий logrotate для перезапуска apache. чем перезагрузить, который ничего не сделал для меня. У кого-нибудь есть идеи? Вот мой apache conf для пассажира. Я использую версию rvm для ruby ​​enterprise и passenger, установленную как самоцвет:

LoadModule passenger_module /usr/local/rvm/gems/ree-1.8.7-2012.02/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ree-1.8.7-2012.02/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ree-1.8.7-2012.02/ruby

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

Ответы [ 2 ]

5 голосов
/ 21 марта 2012

У вас включен SELinux? Запустите cat /selinux/enforce, чтобы узнать. Если он печатает 1, попробуйте отключить SELinux с помощью echo 0 > /selinux/enforce, чтобы посмотреть, решит ли это проблему. Если это решит проблему, вы можете попытаться обойти ее (например, установив параметр PassengerTempDir. Найдите SELinux в Руководство пользователя для пассажиров ) или оставьте его отключенным навсегда.

1 голос
/ 03 января 2014

Недавно у меня была такая же проблема. Я попробовал:

sudo /etc/init.d/httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                           [FAILED]

В качестве последнего решения вы всегда можете «по-настоящему» перезапустить все:

sudo killall httpd # <---------
sudo service httpd status
httpd is stopped
sudo service httpd start
Starting httpd:                                            [  OK  ]
...