360°网站管家_运维学院_提供最新最全的服务器运维视频教程与网站维护视频教程

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
1 2 3 4
查看: 2920|回复: 0
打印 上一主题 下一主题

安装Nginx时的PCRE问题

[复制链接]

823

主题

909

帖子

4623

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4623
跳转到指定楼层
楼主
发表于 2015-10-13 14:18:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

亲!这问题您也搜索很久了吧?不如咨询下我们吧


613049616  613049616  613049616   613049616   613049616


启动nginx发现
nginx: error while loading shared libraries: libpcre.so.1:cannot open shared object file: No such file or directory
遂检查pcre的安装,由于是在测试安装脚本,遂检查安装是否成功,从脚本运行来看,是成功编译了的,后来又重新编译pcre
configure    正常
make         正常
make install 出错如下
test -z "/usr/local/include" || /bin/mkdir -p "/usr/local/include"
/usr/bin/install -c -m 644 pcre.h pcrecpparg.h pcre_stringpiece.h '/usr/local/include'
test -z "/usr/local/lib/pkgconfig" || /bin/mkdir -p "/usr/local/lib/pkgconfig"
/usr/bin/install -c -m 644 libpcre.pc libpcreposix.pc libpcrecpp.pc '/usr/local/lib/pkgconfig'
make  install-data-hook
make[3]: Entering directory `/usr/local/src/itnihao_lnmp/nginx/pcre-8.30'
ln -s pcre_assign_jit_stack.3           /usr/local/share/man/man3/pcre16_assign_jit_stack.3
ln -s pcre_compile.3                    /usr/local/share/man/man3/pcre16_compile.3
ln: creating symbolic link `/usr/local/share/man/man3/pcre16_compile.3': File exists
make[3]: *** [install-data-hook] Error 1
make[3]: Leaving directory `/usr/local/src/itnihao_lnmp/nginx/pcre-8.30'
make[2]: *** [install-data-am] Error 2
make[2]: Leaving directory `/usr/local/src/itnihao_lnmp/nginx/pcre-8.30'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/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目录文件失败导致。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则


Archiver|手机版|小黑屋|360wzgj Inc. 百度统计

GMT+8, 2024-11-1 14:26 , Processed in 0.068953 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表