fedora(适用于centos/redhat)下的php+apache+mysql开发(持续更新)

fedora 网站开发

系统:fedora27/28

一: 环境配置

1 html编辑器:Quanta plus

编辑器后面可能会换,可以跳过这个步骤

安装:

yum install kdewebdev

2 安装xampp

下载地址:
https://www.apachefriends.org/download.html

移动文件到根目录,需要切换到su:

mv xampp-linux-x64-5.6.24-1-installer.run /

然后

chmod 777 xampp-linux-x64-5.6.24-1-installer.run
./xampp-linux-x64-5.6.24-1-installer.run

启动:

./lampp start

扫描二维码关注公众号,回复: 16642324 查看本文章

正常应该是这样的姿势:

Starting XAMPP for Linux 7.2.5-0...
XAMPP: Starting Apache...ok.
XAMPP: Starting MySQL...already running.
XAMPP: Starting ProFTPD...already running.

如果出现错误:

这些都是我遇到的,过程很辛酸

**错误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 #查询安装包

好了,继续往下,打开浏览器,在地址栏中输入localhost,会出现xampp的界面:

这里写图片描述

顺便记录一下,linux下的屏幕截图:shift+prtsccysrq,然后鼠标可以选定截取范围,图片自动保存在图片文件夹里。

停止启动:

[root@localhost lampp]# ./lampp stop  

还有开机自启动,我觉得没有必要,,因为可能不经常用,而且我电脑也不会经常关机,所以没有设置,网上很多教程,大家可以再查找,后面的参考链接也给出了。

猜你喜欢

转载自blog.csdn.net/baidu_34418619/article/details/80335639