最近阶段自学Linux系统以及相关服务搭建,通过网上查阅前辈们的博客和相关技术知识搭建了简单的Nginx服务。过程如下(其中大部分步骤是ITEYE ffgghj前辈的教程,不过在安装过程中有些细节性的问题,自己通过google以及度娘才得以解决,写下作为自己以后的参考) 。
一,安装
1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src
cd /usr/local/src
2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz
tar -zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure
make
make install
3.安装zlib库
http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
4.安装ssl(某些vps默认没装ssl)
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
5.安装nginx
Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.21 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.1c
--with-pcre=/usr/src/pcre-8.21 指的是pcre-8.21 的源码路径。
--with-zlib=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。
安装成功后 /usr/local/nginx 目录下如下
fastcgi.conf koi-win nginx.conf.default
fastcgi.conf.default logs scgi_params
fastcgi_params mime.types scgi_params.default
fastcgi_params.default mime.types.default uwsgi_params
html nginx uwsgi_params.default
koi-utf nginx.conf win-utf
在实现步骤5的过程中本人出现了无法实现启用Nginx命令,通过分析,发现时由于本人的PATH环境变量中并不包括启用Nginx命令的路径所以通过手动添加才可以实现,命令如下:
PATH=$PATH:/usr/local/nginx/sbin 具体的路径要看个人配置
可以通过echo $PATH 来确认环境变量路径有没有添加进去。
在接下来的过程中执行Nginx时又出现了缺少共享库资源,可以通过如下指令来查看缺少什么库资源:
ldd $(which /usr/local/nginx/sbin/nginx)
输出结果如下:
linux-gate.so.1 => (0x0071b000)
libpthread.so.0 => /lib/libpthread.so.0
(0×00498000)
libcrypt.so.1 => /lib/libcrypt.so.1
(0×00986000)
libpcre.so.1 => not found
libcrypto.so.6 =>
/lib/libcrypto.so.6 (0×00196000)
libz.so.1 => /lib/libz.so.1
(0×00610000)
libc.so.6 => /lib/libc.so.6
(0x002d7000)
/lib/ld-linux.so.2 (0x006a8000)
libdl.so.2 =>
/lib/libdl.so.2 (0x008c3000)
其中少了 libpcre.so.1
可以看出 libpcre.so.1 => not found 并没有找到,进入/lib目录中手动链接下
[root@localhost
lib]# ln -s libpcre.so.0.0.1 libpcre.so.1 通过链接来实现!
一般情况下这样就可以启用Nginx了,可是在本人的VM 虚拟机上还是无法启用这条命令,所以本人耐着性质又到万能的万维网上寻找答案,因为本人没有实战经验只能向各位前辈学习来补充自己这方面的知识

,也在此感谢各位技术前辈们在互联网上共享您们的经验,这是我对技术人员的崇敬原因之一!
最终通过一个一个原因的分析和试验终于找到了根本的原因是Centos 版本差异导致了:
在redhat 64位机器之上有这样的情况.
在redhat 64位机器上, nginx可能读取的pcre文件为/lib64/libpcre.so.1文件.
所以在改用下面的软连接:
Shell代码
[hadoop@SCLABHADOOP01 ~]$ ln -s /usr/local/lib/libpcre.so.1 /lib64/
<b>由于Centos 是免费版的Redhat(本人理解,说的不对还请大家告知),所以可以借鉴以上方法,最终问题得以解决。</b>
6.启动
确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/nginx 命令来启动 Nginx,
netstat -ano|grep 80
如果查不到结果后执行,有结果则忽略此步骤(ubuntu下必须用sudo启动,不然只能在前台运行)
sudo /usr/local/nginx/nginx
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。