Passenger 5.0.21 error: Cannot connect to the Passenger core
Passenger 5.0.21 error: Cannot connect to the Passenger core
我在使用 apache2+passenger 部署 RoR-app 时遇到问题。
OS 是类似 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)
passenger-5.0.27 一切看起来都一样。
Passenger 已安装为 gem。
/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/sites-enabled/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>
有什么帮助吗?
PassengerInstanceRegistryDir 选项帮助了我。
更新
在 Astra 上处理 Apache+Passenger 套接字的完整解决方案 Linux SE:
- Apache 用户 - www-data (/etc/apache2/envvars)
- 乘客用户切换已开启(默认)
- Passenger 实例目录已移至 /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
所有
可能是您的 /tmp 目录被某些东西清理了。如果您看到错误,请检查日志中的 /tmp 目录是否实际存在。您可以通过停止清理或将 PassengerInstanceRegistryDir 更改为 /tmp 以外的其他位置来解决此问题。
另一种可能是您的 shell 以某种方式退出(Passenger 使用 shell 执行命令,如果 shell 过早退出将失败)。
无论哪种方式,将 PassengerLogLevel 设置为 7 都应该提供更多信息。
我在使用 apache2+passenger 部署 RoR-app 时遇到问题。 OS 是类似 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)
passenger-5.0.27 一切看起来都一样。
Passenger 已安装为 gem。
/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/sites-enabled/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>
有什么帮助吗?
PassengerInstanceRegistryDir 选项帮助了我。
更新
在 Astra 上处理 Apache+Passenger 套接字的完整解决方案 Linux SE:
- Apache 用户 - www-data (/etc/apache2/envvars)
- 乘客用户切换已开启(默认)
- Passenger 实例目录已移至 /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 所有
可能是您的 /tmp 目录被某些东西清理了。如果您看到错误,请检查日志中的 /tmp 目录是否实际存在。您可以通过停止清理或将 PassengerInstanceRegistryDir 更改为 /tmp 以外的其他位置来解决此问题。
另一种可能是您的 shell 以某种方式退出(Passenger 使用 shell 执行命令,如果 shell 过早退出将失败)。
无论哪种方式,将 PassengerLogLevel 设置为 7 都应该提供更多信息。