yum安装的squid启动不了

4年前 (2015-12-17) Jason Liu 运维 0评论 已收录 966℃

闲来无事,想折腾一下代理缓存服务squid。实现在网络上看了一些相关文档,了解了基础感念后,觉得还是比较简单的。

于是乎自己想来安装测试一下。直接输入 yum -y install squid。ok,很快就装好了。

执行 /etc/init.d/squid start 后,看了一会儿直接提示启动失败。
[[email protected] squid]# /etc/init.d/squid restart
Stopping squid: [FAILED]
Starting squid: [FAILED]

我擦,我还啥都没干呢就报错,重新执行了几次后还是一样。分析日志,看了下/var/log/squid/下面的几个日志文件,都没有提示什么报错信息。于是又看了/var/log/messages日志,发现了一堆的如下日志:

Dec 17 23:50:24 model squid[3645]: Squid Parent: child process 3658 started
Dec 17 23:50:25 model squid[3645]: Squid Parent: child process 3658 exited with status 127
Dec 17 23:50:28 model squid[3645]: Squid Parent: child process 3663 started
Dec 17 23:50:28 model squid[3645]: Squid Parent: child process 3663 exited with status 127
Dec 17 23:50:28 model squid[3645]: Exiting due to repeated, frequent failures
Dec 17 23:50:34 model squid[3668]: Squid Parent: child process 3670 started
Dec 17 23:50:34 model squid[3668]: Squid Parent: child process 3670 exited with status 127
Dec 17 23:50:37 model squid[3668]: Squid Parent: child process 3673 started
Dec 17 23:50:37 model squid[3668]: Squid Parent: child process 3673 exited with status 127
Dec 17 23:50:40 model squid[3668]: Squid Parent: child process 3676 started
Dec 17 23:50:41 model squid[3668]: Squid Parent: child process 3676 exited with status 127
Dec 17 23:50:44 model squid[3668]: Squid Parent: child process 3679 started
Dec 17 23:50:44 model squid[3668]: Squid Parent: child process 3679 exited with status 127
Dec 17 23:50:47 model squid[3668]: Squid Parent: child process 3682 started
Dec 17 23:50:48 model squid[3668]: Squid Parent: child process 3682 exited with status 127
Dec 17 23:50:48 model squid[3668]: Exiting due to repeated, frequent failures

尼玛,这日志不就显示子进程一启动就退出一启动哥就退出么,最后尝试很多次就放弃了?

这日志尼玛也没啥有用价值啊,在google上一搜也没什么有用信息。

怎么整呢?

网上查阅了下squid的一下资料,说可以手动执行squid分析下情况

于是直接squid -h 看了下帮助信息

嗯哼,有输出debug信息的选项哦,默认是守护进程工作还不输出详细日志。

和 debug输出相关的选项有如下几个

-d level Write debugging to stderr also

-N No daemon mode.

-X Force full debugging.

好吧,我就来debug一下,执行 squid -N -d1后,输出如下信息

[[email protected] squid]# squid -N d1
squid: relocation error: squid: symbol private_MD5_Init, version libcrypto.so.10 not defined in file libcrypto.so.10 with link time reference

嗯哼 ,报的是libcrypto.so.10这个库文件的问题哦,从报错信息看这个加密库文件不能定义链接啥的。于是找到这个文件。

[[email protected] squid]# locate libcrypto.so.10
/usr/lib64/libcrypto.so.10

[[email protected] squid]# ls /usr/lib64/libcrypto.so.10 -l
lrwxrwxrwx 1 root root 19 Mar 14 2015 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.1j

发现原始文件是libcrypto.so.1.0.1j。于是想看看这个文件是哪个包的

[[email protected] Packages]# rpm -qf /usr/lib64/libcrypto.so.1.0.1j
openssl-1.0.1j-1.el6.x86_64

在我一台yum安装后正常的情况的机器我执行同样的命令发现

[[email protected] /]# rpm -qf /usr/lib64/libcrypto.so.1.0.2a
openssl-libs-1.0.2a-2.el6.x86_64

原来是openssl的版本不一样。以前可能是为了避免openssl的那个心血漏洞把openssl用一个第三方yum源直接升级了。可能那个第三方制作的包有不兼容情况,于是知道问题了

卸载机器上的openssl包后挂载系统光盘,安装光盘自带的openssl包。安装完后

再执行/etc/init.d/squid start    哈哈  想要的结果出现了

[[email protected] Packages]# /etc/init.d/squid start
Starting squid: . [ OK ]
[[email protected] Packages]# ss -tln|grep 3128
0   128      :::3128     :::*

恩,squid起来了。

 

相关推荐

嗨、骚年、快来消灭0回复。