最近有倒腾 LNMP 环境,其中涉及最多的应该是 Nginx 了,配置 SSL 证书、301跳转等。现在的 LNMP 一键安装包太多了,导致 Nginx 的安装路径有可能不一样,就像军哥的 LNMP 安装包和阿里云提供的 LNMP 集成包就是不一样的。那么当我 SSH 进入一台 Linux 系统后,该如何查找当前环境下的 Nginx 安装目录呢?

查找 Nginx 安装目录

先来看一条命令:

ps -ef | grep nginx

先解释一下命令的意思:

ps:将某个进程显示出来 
-A 显示所有程序。 
-e 此参数的效果和指定”A”参数相同。 
-f 显示UID,PPIP,C与STIME栏位。 
grep 是查找命令 
中间的|是管道命令,是指ps命令与grep同时执行。

这条命令的意思是显示有关 nginx 有关的所有进程,我们可以看到第一条:

root     21357     1  0 11:19 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

路径就出来了!这一条的意思就是:确定 Nginx 是以哪个 config 文件启动的。

此外,还有其它方法,只不过没有上面一条方便。检查是否已经安装有 Nginx 及对应的目录:

find /|grep nginx.conf

还可以用以下两个命令:

[root@Hack520.com-Aliyun ~]#netstat -tnlp|grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      21357/nginx         
tcp        0      0 0.0.0.0:443                 0.0.0.0:*                   LISTEN      21357/nginx

然后看到一行记录,复制最后的一个进程ID,执行以下命令:

[root@Hack520.com-Aliyun ~]# ps -aux | grep 21357
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     21357  0.0  0.0  45216  1356 ?        Ss   11:19   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
root     27057  0.0  0.0 103188   856 pts/1    S+   15:56   0:00 grep 21357
[root@Hack520.com-Aliyun ~]# 

查找 Nginx 当前版本

查看服务器上安装的 Nginx 版本号,主要是通过 nginx 的 -v 或 -V 选项:
-v 显示 nginx 的版本。
-V 显示 nginx 的版本,编译器版本和配置参数。

[root@Hack520.com-Aliyun ~]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.6.0
[root@Hack520.com-Aliyun ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6
[root@Hack520.com-Aliyun ~]#