【问题标题】:500 internal server error in ruby on railsruby on rails 中的 500 内部服务器错误
【发布时间】:2012-10-23 10:45:17
【问题描述】:

我正在使用乘客 3.0.17 部署我的 ruby​​ 3.2.6 项目。我的 httpd.conf 文件是:

<VirtualHost *:80>
      ServerName test.com
      DocumentRoot /var/www/html/test/public
      RackBaseURI /var/www/html/test/public
      <Directory /var/www/html/test/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
      </Directory>
      PassengerMinInstances 1
</VirtualHost>

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby
RailsSpawnMethod conservative

当我通过启动乘客来部署我的项目时,它工作正常,但在将图像上传到服务器时,它会抛出 500 内部错误。我找不到这个错误的原因,而且这个错误是暂时的,在我通过删除保存在我的 ruby​​ 项目中的缓存重新启动乘客后被删除。

我是 ruby​​ on rails 的新手,无法弄清楚这个错误的原因以及它在重新启动乘客时消失的原因。

请指导我 提前致谢

【问题讨论】:

    标签: ruby-on-rails-3.2 passenger


    【解决方案1】:

    读取 Apache 错误日志文件。如果 Phusion Passenger 没有在浏览器中显示错误信息,那么它会将错误信息打印到日志文件中。

    【讨论】:

    • 我检查了乘客日志,发现问题:4921#0: *77 open() "/tmp/passenger-standalone.4869/client_body_temp/0000000002" failed (2: No such file or directory) ,客户端:122.176.71.55,服务器:_,请求:“POST /uploads/uploadFile HTTP/1.1”,主机:“test.com”,引用者:“test/abc”。当我手动创建文件夹时,问题被删除,但一段时间后再次出现。
    • 这似乎是问题所在。 /tmp/passenger-standalone.* 必须存在,因为它用于存储临时文件。您的系统可能有某种 /tmp 清理程序,它会在一段时间后清理目录。你应该禁用它。
    • 我正在研究它,但找不到任何 /tmp 清洁器。我用谷歌搜索并找到了这个链接code.google.com/p/phusion-passenger/issues/detail?id=654。我面临与此处定义相同的问题。你能调查一下吗?
    【解决方案2】:

    用途:

    passenger-status

    如果出现错误,您可能没有为您的 ruby​​ 版本安装 gam

    用途:

    gem install passenger

    然后:

    passenger-install-apache2-module

    检查乘客是否运行:

    passenger-memory-stats

    passenger-status

    按照Phusion Passenger上的说明进行操作

    您可能需要修改 mods-available/passenger.conf 以指向 rbenv 或 rvm ruby​​ 解释器,而不是 us/bin/ruby

    【讨论】:

      【解决方案3】:

      有同样的问题,通过检查passenger-status 发现有多个乘客在运行。杀死他们,然后再次在 上运行乘客passenger start,而不是 root 用户。

      【讨论】:

        猜你喜欢
        • 2015-02-23
        • 2016-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 2019-01-17
        相关资源
        最近更新 更多