我刚将我的rails应用程序移动到新机器上。我正在使用apache 2.2.3和乘客3.0.11。在初始加载数据库之后,我间歇性地看到一个错误,指出rails app无法启动。这是我在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而不是比重装,这对我没有任何帮助。有人有什么想法吗?这是我乘客的阿帕奇。我正在使用rvm版本的ruby企业和乘客作为宝石安装:
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
我还尝试将rails spawn方法添加为保守并添加最大池大小,结果相同。不确定在哪里转。
答案 0 :(得分:5)
您是否启用了SELinux?运行cat /selinux/enforce
查找。如果它打印1
,请尝试使用echo 0 > /selinux/enforce
禁用SELinux以查看是否能解决问题。如果这样可以解决问题,您可以选择尝试解决问题(例如,通过设置PassengerTempDir
设置。在Passenger user guide中搜索SELinux)或永久关闭它。
答案 1 :(得分:1)
最近我遇到了同样的问题。我试过了:
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 ]