启动nginx发现
nginx: error while loading shared libraries: libpcre.so.1:cannot open shared object file: No such file or directory
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
遂检查pcre的安装,由于是在测试安装脚本,遂检查安装是否成功,从脚本运行来看,是成功编译了的,后来又重新编译pcre
configure 正常
make 正常
make install 出错如下
test-z"/usr/local/include"||/bin/mkdir-p"/usr/local/include"
/usr/bin/install-c-m644pcre.hpcrecpparg.hpcre_stringpiece.h'/usr/local/include'test-z"/usr/local/lib/pkgconfig"||/bin/mkdir-p"/usr/local/lib/pkgconfig"/usr/bin/install-c-m644libpcre.pclibpcreposix.pclibpcrecpp.pc'/usr/local/lib/pkgconfig'makeinstall-data-hookmake[3]:Enteringdirectory`/usr/local/src/itnihao_lnmp/nginx/pcre-8.30'ln-spcre_assign_jit_stack.3/usr/local/share/man/man3/pcre16_assign_jit_stack.3ln-spcre_compile.3/usr/local/share/man/man3/pcre16_compile.3ln:creatingsymboliclink`/usr/local/share/man/man3/pcre16_compile.3':Fileexistsmake[3]:***[install-data-hook]Error1make[3]:Leavingdirectory`/usr/local/src/itnihao_lnmp/nginx/pcre-8.30'make[2]:***[install-data-am]Error2make[2]:Leavingdirectory`/usr/local/src/itnihao_lnmp/nginx/pcre-8.30'make[1]:***[install-am]Error2make[1]:Leavingdirectory`/usr/local/src/itnihao_lnmp/nginx/pcre-8.30
处理办法
rm /usr/local/share/man/man3/pcre* -rf
make clean
make install 立即OK,说明刚才的prce安装是没有问题的
下面查看nginx的lipcre问题
find / -name libpcre.so.1
/usr/local/lib/libpcre.so.1
ldconfig -v|grep pcre
ldconfig: Path `/usr/local/lib' given more than once报错了
libpcrecpp.so.0 ->libpcrecpp.so.0.0.0
libpcre.so.1 ->libpcre.so.1.0.0
libpcreposix.so.0 ->libpcreposix.so.0.0.0
libpcre.so.0 ->libpcre.so.0.0.1
libpcrecpp.so.0 ->libpcrecpp.so.0.0.0
libpcreposix.so.0 ->libpcreposix.so.0.0.0
cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/include
/usr/local/lib 提示多了这行,删除掉
ldconfig -v|grep pcre
libpcrecpp.so.0 ->libpcrecpp.so.0.0.0
libpcre.so.1 ->libpcre.so.1.0.0
libpcreposix.so.0 ->libpcreposix.so.0.0.0
libpcre.so.0 ->libpcre.so.0.0.1
libpcrecpp.so.0 ->libpcrecpp.so.0.0.0
libpcreposix.so.0 ->libpcreposix.so.0.0.0
再次启动nginx,则OK
总结:上面的问题其实是pcre的动态库路径不对,其实无需编译pcre,为画蛇添足的步骤。pcre再次编译出问题是由于之前安装过的,写man目录文件失败导致。