httpd: Syntax error on line 522 of /opt/lampp/etc/httpd.conf: Syntax error on line 10 of /opt/lam...

原文链接:https://blog.csdn.net/baidu_34418619/article/details/80335639?utm_source=blogxgwz5

**错误1 : XAMPP is currently only availably as 32 bit application. Please use a 32 bit compatibility library f**

继续往下看

安装32位运行环境:

>yum install -y glibc*i686

然后切换到lampp路径下,改写lampp的读写权限:

> chmod 777 lampp

如果觉得不安全,修改文件后可以改回来

然后,找到并编辑解压后的lampp文件,

sudo gedit /opt/lampp/lampp

并搜索“XAMPP is currently 32 bit only“引号里的那句话。用#号注释下面的判断环境的语句。

----------

然后,找到并编辑解压后的lampp文件,

sudo gedit /opt/lampp/lampp

并搜索“XAMPP is currently 32 bit only“引号里的那句话。用#号注释下面的判断环境的语句。

    #case `uname -m` in

    #    *_64)

    #    if /opt/lampp/bin/php -v > /dev/null 2>&1

    #    then

    #        :

    #    else

    #        $de && echo "XAMPP gibt es zur Zeit nur als 32-Bit Applikation. Bitte verwende eine 32-Bit Kompatibilitaetsbibliothek fuer Dein System."

    #        $de || echo "XAMPP is currently only availably as 32 bit application. Please use a 32 bit compatibility library for your system."

    #        exit

    #    fi

    #    ;;

    #esac

然后再重新执行。

**错误2:唯独mysql不会启动

执行:

> chown -R nobody.root /opt/lampp/var/mysql

**错误3:libnsl.so.1: cannot open shared object file: No such file or directory**

这个错误是最坑的,我百度谷歌了一下午加第二天一上午,把所有的错误原因,以及各种情况都考虑了才解决。敲开心。

原错误的情形是这样的:

    [root@localhost lampp]# ./lampp start

    Starting XAMPP for Linux 7.2.5-0...

    XAMPP: Starting Apache...fail.

    httpd: Syntax error on line 522 of /opt/lampp/etc/httpd.conf: Syntax error on line 10 of

    /opt/lampp/etc/extra/httpd-xampp.conf: Cannot load /opt/lampp/modules/libphp7.so into

    server: libnsl.so.1: cannot open shared object file: No such file or directory

    XAMPP: Starting MySQL...already running.

    XAMPP: Starting ProFTPD...already running.

只有apache运行错误,提示很长,意思是说在/opt/lampp/etc/httpd.conf这个文件中的第522行出现了异常。

然后开始寻找522行是什么,一看如下:

>  Include etc/extra/httpd-xampp.conf

是调用了httpd-xampp.conf这个东西,然后继续看错误提示里面说在第10行里面没有发现libnsl.so.1这个东西。提示还说没有打开shared object file,分享对象文件???什么东东。。

百度后整理了一下思路

    1: libnsl.so.1是一个共享的链接库,.so的好像都是这一类的文件

    2: 提示说没有个这个文件

既然没有,就找一下吧。

find / -name libnsl*

这个命令不是很熟悉,毕竟才接触linux系统,所以也是赶鸭子上架,现学现卖。

然后出现:

    [root@localhost /]# find / -name libnsl*

    /usr/share/licenses/libnsl2

    /usr/lib64/libnsl-2.27.so

    /usr/lib64/libnsl.so.2

    /usr/lib64/libnsl.so.2.0.0

    /usr/lib64/libnsl.so.1

这一看,真的没有

然后就要下载了,也是几番搜索后,找到如何下载。

    yum install libnsl.i686

下载之后,重新执行,依旧是不行,还是没有找到。继续上网查找原因。

学了一个命令,ldd,是查找文件执行调用哪些链接库的,如下:

    [root@localhost modules]# ldd libphp7.so

        linux-vdso.so.1 (0x00007ffdb63d3000)

        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007faa736b4000)

        libcrypto.so.1.0.0 => /opt/lampp/lib/libcrypto.so.1.0.0 (0x00007faa73267000)

        libssl.so.1.0.0 => /opt/lampp/lib/libssl.so.1.0.0 (0x00007faa72ff5000)

        libz.so.1 => /opt/lampp/lib/libz.so.1 (0x00007faa72ddc000)

        libexslt.so.0 => /opt/lampp/lib/libexslt.so.0 (0x00007faa72bc8000)

        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007faa729b1000)

        librt.so.1 => /lib64/librt.so.1 (0x00007faa727a9000)

        libpq.so.5 => /opt/lampp/lib/libpq.so.5 (0x00007faa7257b000)

        libldap-2.4.so.2 => /opt/lampp/lib/libldap-2.4.so.2 (0x00007faa72334000)

        liblber-2.4.so.2 => /opt/lampp/lib/liblber-2.4.so.2 (0x00007faa72125000)

        libstdc++.so.6 => /opt/lampp/lib/libstdc++.so.6 (0x00007faa71e1c000)

        libpng15.so.15 => /opt/lampp/lib/libpng15.so.15 (0x00007faa71bec000)

        libjpeg.so.8 => /opt/lampp/lib/libjpeg.so.8 (0x00007faa719a5000)

        libgdbm.so.3 => /opt/lampp/lib/libgdbm.so.3 (0x00007faa7179e000)

        libbz2.so => /opt/lampp/lib/libbz2.so (0x00007faa7158e000)

        libsqlite3.so.0 => /opt/lampp/lib/libsqlite3.so.0 (0x00007faa712a5000)

        libm.so.6 => /lib64/libm.so.6 (0x00007faa70f11000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007faa70d0d000)

        libnsl.so.1 => not found

        libcurl.so.4 => /opt/lampp/lib/libcurl.so.4 (0x00007faa70a97000)

        libfreetype.so.6 => /opt/lampp/lib/libfreetype.so.6 (0x00007faa707f6000)

        libicui18n.so.48 => /opt/lampp/lib/libicui18n.so.48 (0x00007faa7040a000)

        libicuuc.so.48 => /opt/lampp/lib/libicuuc.so.48 (0x00007faa7007c000)

        libicudata.so.48 => /opt/lampp/lib/libicudata.so.48 (0x00007faa6ed0d000)

        libicuio.so.48 => /opt/lampp/lib/libicuio.so.48 (0x00007faa6eaff000)

        libxslt.so.1 => /opt/lampp/lib/libxslt.so.1 (0x00007faa6e8b8000)

        libxml2.so.2 => /opt/lampp/lib/libxml2.so.2 (0x00007faa6e4e3000)

        libiconv.so.2 => /opt/lampp/lib/libiconv.so.2 (0x00007faa6e1fa000)

        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007faa6dfe2000)

        libc.so.6 => /lib64/libc.so.6 (0x00007faa6dc23000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007faa6da04000)

        /lib64/ld-linux-x86-64.so.2 (0x00007faa74b6f000)

一看,在libnsl.so.1,果然没有发现。我明明已经下载了,为什么没有发现呢?难道没有配置或是连接?

然后看了很多博客,ln了多个链接,软的硬的都没有用。

后来想,是不是32位和64位的问题,因为我用的是32位的运行库,会不会是那个库是64位的,所以不生效?

然后我查看文件属性,是32位的,没问题,而且也链接了。后来我突发奇想一个硬链接到lib64下。结果发现错误提示变了:

    [root@localhost lampp]# ./lampp start

    Starting XAMPP for Linux 7.2.5-0...

    XAMPP: Starting Apache...fail.

    httpd: Syntax error on line 522 of /opt/lampp/etc/httpd.conf: Syntax error on line 10 of

    /opt/lampp/etc/extra/httpd-xampp.conf: Cannot load /opt/lampp/modules/libphp7.so into

    server: libnsl.so.1: wrong ELF class: ELFCLASS32

到了这里很激动,修改了很多文件,加了很多链接都没有变化的,终于变了。

提示说是错误执行,32位的。。?然后又回头看了动态链接的其他库,才发现,竟然都是64位的,所以我应该下载64位的?

    yum install libnsl.x86_64 

安装完后,再执行start,果然成功了!!!!敲开心。

总结一下学到的命令

    find / -name libnsl* #模糊查询

    ldd libphp7.so #查看动态链接库

    ln /lib/libnsl.so.1 /usr/lib #添加软/硬链接

    ldconfig -p|grep libnsl #系统获取动态链接库,正常情况如下:

        [root@localhost /]# ldconfig -p|grep libnsl

        libnsl.so.2 (libc6,x86-64) => /lib64/libnsl.so.2

        libnsl.so.1 (libc6, OS ABI: Linux 3.2.0) => /usr/lib/libnsl.so.1

    yum search libnsl #查询安装包

你可能感兴趣的:(httpd: Syntax error on line 522 of /opt/lampp/etc/httpd.conf: Syntax error on line 10 of /opt/lam...)