Passenger 5.0.21错误:无法连接到Passenger核心

时间:2016-04-22 10:18:43

标签: ruby-on-rails apache debian passenger kerberos

我在使用apache2 + passenger部署RoR-app时遇到问题。 操作系统是类似debian的Astra Linux。 启用了GSSAPI的Kerberos身份验证。

乘客身份显示:

Version : 5.0.21
Date    : 2016-04-22 12:29:13 +0300
Instance: Dt5dmAVr (Apache/2.2.22 (Debian) mod_auth_kerb/5.4  Phusion_Passenger/5.0.21)

Phusion Passenger is currently not serving any applications.

尝试从浏览器访问应用页面时,我在 /var/log/apache2/error.log 中收到错误消息:

[ 2016-04-22 12:23:58.4672 21392/7f741705c780 age/Cor/CoreMain.cpp:234 ]: Passenger core running in multi-application mode.
[ 2016-04-22 12:23:58.4685 21392/7f741705c780 age/Cor/CoreMain.cpp:707 ]: Passenger core online, PID 21392
[ 2016-04-22 12:23:58.4897 21407/7f4819471780 age/Ust/UstRouterMain.cpp:504 ]: Starting Passenger UstRouter...
[ 2016-04-22 12:23:58.4912 21407/7f4819471780 age/Ust/UstRouterMain.cpp:317 ]: Passenger UstRouter online, PID 21407
[Fri Apr 22 12:23:58 2016] [notice] Apache/2.2.22 (Debian) mod_auth_kerb/5.4 Phusion_Passenger/5.0.21 configured -- resuming normal operations
[ 2016-04-22 12:24:18.0666 21428/7f3a64646780 apa/Hooks.cpp:703 ]: Unexpected error in mod_passenger: Cannot connect to the Passenger core at unix:/tmp/passenger.N6n3OMb/agents.s/core
  Backtrace:
     in 'Passenger::FileDescriptor Hooks::connectToCore()' (Hooks.cpp:305)
     in 'int Hooks::handleRequest(request_rec*)' (Hooks.cpp:573)

乘客5.0.27,一切看起来都一样。

乘客被安装为宝石。

/etc/apache2/mods-enabled/passenger.load

LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so

/etc/apache2/mods-enabled/passenger.conf

<IfModule mod_passenger.c>
   PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.21
   PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

的/ etc / apache2的/启用的站点 - / MyApp的

<VirtualHost *:80>
    ServerName myapp.ru
    ServerAlias www.myapp.ru
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/myapp/public
    RailsEnv production
    <Directory /var/www/myapp/public/>
        AuthType Kerberos
        KrbAuthRealms EXAMPLE.RU
        KrbServiceName HTTP/astra-server.example.ru
        Krb5Keytab /etc/apache2/keytab
        KrbMethodNegotiate on
        KrbMethodK5Passwd off
        require valid-user
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    LogLevel warn
</VirtualHost>

任何帮助?

2 个答案:

答案 0 :(得分:1)

可能是你的/ tmp目录被某些东西清理干净了。如果看到错误,请检查日志中的/ tmp目录是否确实存在。您可以通过停止清理或将PassengerInstanceRegistryDir更改为/ tmp。

之外的其他位置来解决此问题

另一种可能性是你的shell以某种方式退出(Passenger使用shell执行命令,如果shell过早退出,它将失败)。

将PassengerLogLevel设置为7可以提供更多信息。

答案 1 :(得分:0)

PassengerInstanceRegistryDir选项帮助了我。

更新

Astra Linux SE上Apache + Passenger套接字处理的整体解决方案:

  • Apache用户 - www-data(/ etc / apache2 / envvars)
  • 乘客用户切换已启用(默认情况下)
  • 将乘客实例目录移至/ var / passenger(/etc/apache2/mods-available/passenger.conf中的PassengerInstanceRegistryDir选项)
  • 特定于Astra Linux - www-data用户拥有Linux(CAP_SETGID,CAP_SETUID)和PARSEC(PARSEC_CAP_PRIV_SOCK,PARSEC_CAP_SETMAC)权限。可以通过usercaps命令设置此权限。
  • 目录/ var / www,/ var / passenger由www-data
  • 拥有