lighttpd启动rails,使用system调用系统命令遇到的问题

公司使用的ruby 1.8.7,rails版本是2.2.2,使用lighttpd启动rails(fcgi脚本)

 

由于需要调用系统命令,网上查了下,有3中方式,我选择了使用system

 

在/etc/profile中已经配置好了所需要的bin path,并使用ruby script/server命令启动服务,访问页面,一切正常,并且也可以正常调用系统命令,接下来就是使用lighttpd启服务了

 

等使用lighttpd启完服务并访问页面后,傻眼了,系统命令没能够正常调用,也不知道出了什么问题

 

经过猜测分析,估计是环境变量有问题

 

使用system把当时使用的环境PATH打印到文件里边

system "echo $PATH >> /root/path_info.txt"

 

查看/root/path_info.txt里边的内容看了下,里边只有/sbin:/usr/sbin:/bin:/usr/bin,也就是说当时环境变量PATH里边只有这些东西,知道这些就好办了~~

 

在要执行的系统命令前加点东西就好了,source /etc/profile,就像下边的代码

system "source /etc/profile;+要执行的代码"
 多条系统命令间用分号隔开就行了

你可能感兴趣的:(脚本,lighttpd,Ruby,Rails)