linux nginx-clojure 模块集成sudo ./configure报错:javac not found(权限问题)

    

       除了使用lua这个高效脚本语言丰富nginx外,最近尝试使用一个新模块 ---->> 

nginx-clojure  https://github.com/nginx-clojure/nginx-clojure/

 

        说到nginx-clojure模块,它能够获取和修改请求数据、响应数据、header信息等(基本上java servlet中能够获取和修改的数据,他也都能获取和修改),所以基于他,我们能够完成很多servlet能够完成的数据,甚至他能够连接mysql,redis等。

当然,nginx-clojure是用我熟悉的语言写插件:Java;

 

问题是 在配置安装nginx module时:

sudo ./configure,show ERROR:"javac not found, please put it in your PATH" by check jdk

 

我是各种尝试,/etc/profile以及用户根目录下都配置了,echo $PATH 也显示出的没问题,甚至我直接运行nginx-clojure-0.4.4/src/c/config 文件也是没问题的检测到了jdk;此时,我想到的就应该是权限问题,但是sudo 操作权限应该都能达到的才对,后来直接切换root用户,configure通过了。

 

但是,终究觉得这不是最好的解决办法,然后就github上求问了一下贡献者xfeep (https://github.com/nginx-clojure/nginx-clojure/issues/128#issuecomment-230770242),他给我举了个栗子,

$ echo "echo \$PATH" > p.sh
$ sh p.sh
/home/who/bin:/opt/texbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ sudo sh p.sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

这个就是区别于直接输入命令的运行结果。然后我就直接运行如下即可:

### configure arguments are omitted here
./configure
make
sudo make install

 然后,配置location时候若提示找不到 jre/jdk ,则直接在nginx.conf 中指定 jvm_path="your jdk path" ,而不要使用 auto 即可解决。

 

 转载原文

链接: http://zl378837964.iteye.com/blog/2309916

 

 

 

你可能感兴趣的:(linux,nginx)