[root@chandao opt]# uname -a
Linux chandao 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@chandao opt]# cat /etc/issue
CentOS release 6.5 (Final)
Kernel \r on an \m
在安装禅道时提示如下:
[root@chandao opt]# ./ZenTaoPMS.6.2.stable.linux-64.7z
./ZenTaoPMS.6.2.stable.linux-64.7z: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./ZenTaoPMS.6.2.stable.linux-64.7z)
提示"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低
[root@chandao opt]# objdump -p ZenTaoPMS.6.2.stable.linux-64.7z
ZenTaoPMS.6.2.stable.linux-64.7z: file format elf64-x86-64
Program Header:
PHDR off 0x0000000000000040 vaddr 0x0000000000400040 paddr 0x0000000000400040 align 2**3
Version References:
required from libgcc_s.so.1:
0x0b792650 0x00 10 GCC_3.0
required from libstdc++.so.6:
0x056bafd3 0x00 08 CXXABI_1.3
0x08922974 0x00 06 GLIBCXX_3.4
required from libpthread.so.0:
0x09691a75 0x00 04 GLIBC_2.2.5
0x09691972 0x00 03 GLIBC_2.3.2
required from libc.so.6: //兼用这些glibc
0x06969194 0x00 11 GLIBC_2.14
0x0d696914 0x00 09 GLIBC_2.4
0x0d696913 0x00 07 GLIBC_2.3
0x09691974 0x00 05 GLIBC_2.3.4
0x09691a75 0x00 02 GLIBC_2.2.5
使用 objdump 查看app动态引用符号表.
[root@chandao opt]# objdump -T ZenTaoPMS.6.2.stable.linux-64.7z |grep GLIBC_2.14
0000000000000000 DF *UND* 0000000000000000 GLIBC_2.14 memcpy
查看系统glibc支持的版本
[root@chandao /]# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
查看系统中glibc 可以看到最高只支持2.12版本
[root@chandao /]# rpm -qa |grep glibc
glibc-2.12-1.132.el6.x86_64
glibc-devel-2.12-1.132.el6.x86_64
glibc-common-2.12-1.132.el6.x86_64
glibc-headers-2.12-1.132.el6.x86_64
下载 glibc-2.14.1.tar.bz2 安装
# tar -xjf glibc-2.14.1.tar.bz2
# cd glibc-2.14.1
[root@chandao glibc-2.14.1]# mkdir build
GNU libc cannot be compiled in the source directory. You must build it
in a separate build directory. For example, if you have unpacked the
glibc sources in `/src/gnu/glibc-2.4', create a directory
`/src/gnu/glibc-build' to put the object files in. This allows
removing the whole build directory in case an error occurs, which is
the safest way to get a fresh start and should always be done.
From your object directory, run the shell script `configure' located
at the top level of the source tree. In the scenario above, you'd type
$ ../glibc-2.4/configure ARGS...
[root@chandao glibc-2.14.1]# cd build/
[root@chandao build]# ../configure --prefix=/usr
[root@chandao build]# make -j4 //并发编译,4个任务同时进行,启用4个cpu去编译。提高编译速度
[root@chandao build]# make install
[root@chandao opt]# ./ZenTaoPMS.6.2.stable.linux-64.7z
.............
Extracting lampp/bin
Extracting lampp/auth
Extracting lampp
Everything is Ok
[root@chandao lampp]# pwd
/opt/lampp
[root@chandao lampp]# ./start // 开启apache和mysql服务XAMPP: Starting Apache...fail.
AH00544: httpd: bad group name nogroup
XAMPP: Starting MySQL...ok.
[root@chandao etc]# locate httpd.conf //修改group name, 修改为nobody 再次启动,启动成功。
/opt/lampp/etc/httpd.conf
[root@chandao etc]# cd /opt/lampp/
[root@chandao lampp]# ./start
[root@chandao lampp]# ./start
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...ok.