Passenger could not be initialized because of this error: Option 'agents_dir' missing in file - Rails 4 + Passenger deployment
Passenger could not be initialized because of this error: Option 'agents_dir' missing in file - Rails 4 + Passenger deployment
我一直在用头撞门试图在 Ubuntu 14 + Apache2 + Passenger 上部署 Rails 4 应用程序。我似乎取得了一些进展:passenger 已正确安装了正确的 apache 模块,我的 apache conf 文件已设置,一切都已重新启动,等等。当我访问我的站点时,我得到了我的 Rails 列表应用程序的 public 目录。我调查了日志并发现了以下内容:
Passenger could not be initialized because of this error: Option 'agents_dir' missing in file '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini'
我不同所以 post 说了一些关于 mods 可用的东西所以这里是 /etc/apache2/mods-available/passenger.conf
:
<IfModule mod_passenger.c>
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
和/etc/apache2/mods-available/passenger.load
:
LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so
我做错了什么?谁解决了我就亲谁,我发誓。
locations.ini
是passenger + ngnix config相关项,不适用于passenger + apache config。
有关如何使用 apache 配置 passenger 的详细信息,请参阅 Phusion Passenger users guide, Apache version。
或参阅 Phusion Passenger users guide, Nginx version 使用 nginx 配置 passenger。
如果您要走 passenger + apache 路线,您似乎缺少的关键步骤是 运行 passenger-install-apache2-module
,它为 PassengerRoot
、[=13 提供了正确的值=],等等
我只是 运行 遇到了这个问题,并通过使用以下命令重新安装 passenger
软件包来修复它:
sudo apt-get install --reinstall passenger passenger-dev
我刚刚在 Ubuntu 14.04 和 运行 上安装了一个新的 Apache/Passenger 安装程序。我已经构建了至少十几次相同的设置。
我的/etc/apache2/mods-enabled/passenger.conf
:
### Begin automatically installed Phusion Passenger config snippet ###
<IfModule mod_passenger.c>
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/passenger_free_ruby
</IfModule>
### End automatically installed Phusion Passenger config snippet ###
我的/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
:
[locations]
packaging_method=deb
bin_dir=/usr/bin
support_binaries_dir=/usr/lib/passenger/support-binaries
lib_dir=/usr/lib/passenger
helper_scripts_dir=/usr/share/passenger/helper-scripts
resources_dir=/usr/share/passenger
include_dir=/usr/share/passenger/include
doc_dir=/usr/share/doc/passenger
ruby_libdir=/usr/lib/ruby/vendor_ruby
node_libdir=/usr/share/passenger/node
apache2_module_path=/usr/lib/apache2/modules/mod_passenger.so
ruby_extension_source_dir=/usr/share/passenger/ruby_extension_source
nginx_module_source_dir=/usr/share/passenger/ngx_http_passenger_module
所以,是的,locations.ini 绝对包含 Apache 配置信息......但是这个文件在我所有工作或不工作的机器上都是相同的。
通过 --reinstall
重新安装没有用...所以我 purge
d 一切。
sudo apt-get purge passenger passenger-dev \
libapache2-mod-passenger \
apache2 apache2-threaded-dev;
sudo apt-get autoremove;
sudo rm -rf /etc/apache2;
然后重新安装:
sudo apt-get install apache2 apache2-threaded-dev \
libapache2-mod-passenger;
sudo a2enmod rewrite expires deflate passenger status;
sudo apache2ctl restart;
已验证安装:
sudo passenger-config validate-install;
并确认 Passenger 是 运行:
sudo passenger-memory-stats;
最后,重新启用我的应用程序的 Apache 配置。最后一个 sudo apache2ctl restart
我很高兴 运行!
$ ruby --version
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
$ passenger --version
Phusion Passenger version 5.0.15
如果您在 Ubuntu 14.04
升级 Nginx 和 Passenger 时遇到同样的问题
sudo apt-get purge passenger
sudo apt-get remove nginx (it won't remove your config files)
然后
sudo apt-get install nginx-full passenger
我一直在用头撞门试图在 Ubuntu 14 + Apache2 + Passenger 上部署 Rails 4 应用程序。我似乎取得了一些进展:passenger 已正确安装了正确的 apache 模块,我的 apache conf 文件已设置,一切都已重新启动,等等。当我访问我的站点时,我得到了我的 Rails 列表应用程序的 public 目录。我调查了日志并发现了以下内容:
Passenger could not be initialized because of this error: Option 'agents_dir' missing in file '/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini'
我不同所以 post 说了一些关于 mods 可用的东西所以这里是 /etc/apache2/mods-available/passenger.conf
:
<IfModule mod_passenger.c>
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
和/etc/apache2/mods-available/passenger.load
:
LoadModule passenger_module /usr/lib/apache2/modules/mod_passenger.so
我做错了什么?谁解决了我就亲谁,我发誓。
locations.ini
是passenger + ngnix config相关项,不适用于passenger + apache config。
有关如何使用 apache 配置 passenger 的详细信息,请参阅 Phusion Passenger users guide, Apache version。
或参阅 Phusion Passenger users guide, Nginx version 使用 nginx 配置 passenger。
如果您要走 passenger + apache 路线,您似乎缺少的关键步骤是 运行 passenger-install-apache2-module
,它为 PassengerRoot
、[=13 提供了正确的值=],等等
我只是 运行 遇到了这个问题,并通过使用以下命令重新安装 passenger
软件包来修复它:
sudo apt-get install --reinstall passenger passenger-dev
我刚刚在 Ubuntu 14.04 和 运行 上安装了一个新的 Apache/Passenger 安装程序。我已经构建了至少十几次相同的设置。
我的/etc/apache2/mods-enabled/passenger.conf
:
### Begin automatically installed Phusion Passenger config snippet ###
<IfModule mod_passenger.c>
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/passenger_free_ruby
</IfModule>
### End automatically installed Phusion Passenger config snippet ###
我的/usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
:
[locations]
packaging_method=deb
bin_dir=/usr/bin
support_binaries_dir=/usr/lib/passenger/support-binaries
lib_dir=/usr/lib/passenger
helper_scripts_dir=/usr/share/passenger/helper-scripts
resources_dir=/usr/share/passenger
include_dir=/usr/share/passenger/include
doc_dir=/usr/share/doc/passenger
ruby_libdir=/usr/lib/ruby/vendor_ruby
node_libdir=/usr/share/passenger/node
apache2_module_path=/usr/lib/apache2/modules/mod_passenger.so
ruby_extension_source_dir=/usr/share/passenger/ruby_extension_source
nginx_module_source_dir=/usr/share/passenger/ngx_http_passenger_module
所以,是的,locations.ini 绝对包含 Apache 配置信息......但是这个文件在我所有工作或不工作的机器上都是相同的。
通过 --reinstall
重新安装没有用...所以我 purge
d 一切。
sudo apt-get purge passenger passenger-dev \
libapache2-mod-passenger \
apache2 apache2-threaded-dev;
sudo apt-get autoremove;
sudo rm -rf /etc/apache2;
然后重新安装:
sudo apt-get install apache2 apache2-threaded-dev \
libapache2-mod-passenger;
sudo a2enmod rewrite expires deflate passenger status;
sudo apache2ctl restart;
已验证安装:
sudo passenger-config validate-install;
并确认 Passenger 是 运行:
sudo passenger-memory-stats;
最后,重新启用我的应用程序的 Apache 配置。最后一个 sudo apache2ctl restart
我很高兴 运行!
$ ruby --version
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
$ passenger --version
Phusion Passenger version 5.0.15
如果您在 Ubuntu 14.04
升级 Nginx 和 Passenger 时遇到同样的问题sudo apt-get purge passenger
sudo apt-get remove nginx (it won't remove your config files)
然后
sudo apt-get install nginx-full passenger