【问题标题】:rails 3 app using rmagick starts using passenger standalone but fails using passenger through apache使用 rmagick 的 rails 3 应用程序开始单独使用乘客,但通过 apache 使用乘客失败
【发布时间】:2011-07-06 13:27:30
【问题描述】:

我正在开发一个包含 rmagick 的 Rails 3 应用程序,我能够使用 WEBrick 和Passenger Standalone 成功启动和运行它。但是,当我尝试在 Apache 中使用 Passenger 运行应用程序时,我收到以下错误:

dlopen(/Users/20217633/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rmagick-2.13.1/lib/RMagick2.bundle, 9): Symbol not found: __cg_jpeg_resync_to_restart 引用自: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO 预期在:/usr/local//lib/libjpeg.8.dylib 中 /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO - /Users/20217633/.rvm/gems/ruby-1.9.2-p0@rails3/gems/rmagick-2.13.1/lib/RMagick2.bundle

有人熟悉这个问题吗?

=== 更新 ===

以下是我的 httpd.conf 的副本:

SetEnv PATH /usr/bin:/usr/local/bin

LoadModule passenger_module /Users/20217633/.rvm/gems/ruby-1.9.2-p0@rails3/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
LoadModule upload_progress_module modules/mod_upload_progress.so
PassengerRoot /Users/20217633/.rvm/gems/ruby-1.9.2-p0@rails3/gems/passenger-3.0.2
PassengerRuby /Users/20217633/.rvm/wrappers/ruby-1.9.2-p0@rails3/ruby

<VirtualHost *:80>
    ServerName www.domain.com
    DocumentRoot /Users/20217633/apps/github/project/public

    PassengerLogLevel 3
    RackEnv development
</VirtualHost>

【问题讨论】:

    标签: ruby-on-rails passenger rmagick


    【解决方案1】:

    Apache 工作进程不会以普通用户身份运行,环境已被清理并且不会有路径之类的东西。

    我敢打赌,您在Passenger/Apache 下加载了不同/不正确版本的ImageMagick。

    您应该能够通过在您的乘客/apache conf 中手动设置 PATH 来解决此问题:

    SetEnv PATH /usr/bin:/path/to/correct/image_magick
    

    【讨论】:

    • 感谢@winfield 的建议-我尝试添加路径,正如您在上面的编辑中看到的那样,但无济于事。请您验证我的 httpd.conf 是否符合您的建议? which convert 返回 /usr/local/bin/convert
    【解决方案2】:

    好像符号链接坏了,我在this forum找到了一些东西

    删除"&lt;installation directory&gt;/lib/"中的符号链接“libpng.dylib”和“libjpeg.dylib”

    创建指向正确库的新符号链接。

    ln -s /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libPNG.dylib /Applications/MAMP/Library/lib/libPNG.dylib
    
    ln -s /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib /Applications/MAMP/Library/lib/libJPEG.dylib
    

    我这里没有Mac rigth,但首先我会验证符号链接的来源是否存在,我希望这能解决您的问题。

    【讨论】:

      猜你喜欢
      • 2013-07-15
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多