我的Rails应用程序使用ImageMagick,但应用程序尝试执行ImageMagick命令(“识别”)失败。 我通过在我的Apacheconfiguration中传递下列环境variables来解决这个问题(在Apache / Passenger运行的地方):
SetEnv MAGICK_HOME /opt/local/var/macports/software/ImageMagick/6.5.9-0_0+q16 SetEnv DYLD_liBRARY_PATH /opt/local/var/macports/software/ImageMagick/6.5.9-0_0+q16/opt/local/lib SetEnv PATH /usr/bin:/opt/local/var/macports/software/ImageMagick/6.5.9-0_0+q16/opt/local/bin
然而,我的生产环境运行Nginx和Mongrel(不是我设置的),我不知道如何将这些variables传递给应用程序。 我的Nginx.conf文件目前如下:
# user and group to run as user mouthbreather mouthbreather; worker_processes 4; # pID of Nginx master process pID /var/run/Nginx.pID; events { worker_connections 8192; use epoll; } http { include /etc/Nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/engineyard/Nginx/access.log main; error_log /var/log/engineyard/Nginx/error.log notice; sendfile on; tcp_nopush on; tcp_nodelay on; gzip on; gzip_http_version 1.0; gzip_comp_level 2; gzip_proxIEd any; gzip_buffers 16 8k; gzip_types text/plain text/HTML text/CSS application/x-JavaScript text/xml application/xml application/xml+RSS text/JavaScript; include /etc/Nginx/sites/*.conf; }
所以我的问题是:
我怎样才能确定我的MAGICK_HOME在生产?
我怎样才能通过Nginx.conf将这些variables传递给应用程序?
谢谢!
批处理可读性不会影响执行variables
javac.exe不被识别
在subst命令中删除结尾
如何为PHP设置全局环境variables
如何在windows中设置Erlang环境variables,特别是ERL_MAX_PORTS?
windows oneliner在环境variables中设置命令输出
安装Python GTK
不能访问PHP中的环境variables
在linux中使用getenv函数
如何将parameter passing给子CMD
简而言之,你不用Nginx通过环境变量传递任何东西,你可以使用http头文件或者fastcgi参数。
在你的情况下,你甚至不需要,因为你正在做的事情,并作为一个单独的进程运行mongrels – 在环境中设置环境变量。 Nginx和它没有任何关系。
Nginx不能和环境变量一起工作,在很长一段时间内Nginx可能不会工作,直到有人错误地将第三方模块混入其中,然后在主流中仍然不支持。
这有很多原因,主要是设计,安全性和管理相关,但最终是开发人员和社区的意见,处理环境变量不是httpd的地方,当httpd被设计为使用可能的资源不在同一台机器上(你如何将环境变量传递给在附近的另一台机器上侦听的进程?)。
此外,乘客是第三方模块,在实现和设计方面都有些不同,因为它是针对Nginx设计的,因为它在Nginx中运行应用程序进程(在这里你可以通过理论上的环境变量,但是这不是Nginx工作的方式)。
推荐的方法是在Nginx之外启动你的应用程序(如果你愿意,可以使用环境变量),然后代理或者fastcgi传递给你的应用程序,可选地在头文件中包含或者在fastcgi中包含必要的额外数据。 或者,您的应用程序可能有一些方法来确定其中的适当设置,如settings.local文件(这在python设置中相当常见)。
有很多方法可以做到这一点,而不需要Nginx处理环境变量。
总结以上是内存溢出为你收集整理的如何将ImageMagick环境variables传递给nginx mongrels?全部内容,希望文章能够帮你解决如何将ImageMagick环境variables传递给nginx mongrels?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)