原文鏈接: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 #查詢安裝包