gro*_*ugh 4 ruby apache2 passenger sinatra
我已经使用 Apache 和Passenger 在Ubuntu 服务器上部署了一个Sinatra 应用程序。通过一些试验和错误,我意识到该应用程序仅在禁用乘客模块时才有效。
$ a2dismod passenger
Run Code Online (Sandbox Code Playgroud)
Apache 重新启动后,应用程序按预期运行。
如果我重新启用模块...
$ a2enmod passenger
Run Code Online (Sandbox Code Playgroud)
...我在 Apache 重新启动时看到此警告:
[warn] module passenger_module is already loaded, skipping
Run Code Online (Sandbox Code Playgroud)
并且应用程序停止工作。Apache 做出响应,提供 vhost 文档根目录的内容,但没有被Passenger 识别。
我很高兴我的应用程序可以工作,但我不确定如何解释启用/禁用乘客模块的相反效果。
我遇到了同样的问题:如果您使用此版本的 Apache 遵循乘客安装说明,您实际上可能会告诉 Apache 加载乘客两次。
在将 3 行著名的行添加到 Apache 配置文件之前:
LoadModule passenger_module /usr/…/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby
Run Code Online (Sandbox Code Playgroud)
检查配置文件 apache2.conf 中的以下行:
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Run Code Online (Sandbox Code Playgroud)
如果这些行确实存在,则意味着在启动时,您的 Apache 服务器将包含从 /mods-available 到 /mods-enabled 的每个 *.conf 和 *.load 文件,然后加载它们。
因此,如果您运行在相关警告消息中,则意味着您正在加载乘客模块两次!
您可以利用此 Apache 功能转到 /mods-available,查找passenger.conf 和passenger.load 文件并编辑它们而不是apache2.conf。
'LoadModulepassenger_module' 行进入passenger.load,而另外2 行'PassengerRoot' 和'PassengerRuby' 行进入passenger.conf。
然后重启你的服务器,你会没事的。
有关此问题的更多信息:http : //www.duccioarmenise.net/ruby-on-rails/warn-module-passenger_module-is-already-loaded/
| 归档时间: |
|
| 查看次数: |
4468 次 |
| 最近记录: |