[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.