如何安装多个版本的XAMPP?

如何安装多个版本的XAMPP?

我无法在我的计算机上安装多个版本的 XAMPP。我目前正在使用版本1.7.7并将其安装在/opt/lampp,但我还需要安装以前的版本,即版本1.7.1。所以我下载并安装了版本1.7.1/opt/lampp2

但是当我运行/opt/lampp2/lampp start命令来启动时1.7.1版本,为什么XAMPP显示当前运行的版本是1.7.7,当它应该 1.7.1

答案1

解决方案是拥有单独的目录并创建符号链接到/opt/lampp

保持1.7.7作为/opt/lampp.1_7_71.7.1作为/opt/lampp.1_7_1您可以创建一个符号链接/opt/lampp。根据版本选择,您可以更改符号链接。

但麻烦的是,如果你必须切换版本,你必须删除链接并重新创建一个新链接。因此,为了避免这种情况,我找到了一个可以完成这项工作的脚本。

參閱本文(无效链接,web.archive.org 备份)创建符号链接

脚本 可以帮助您:

  • 提供可用 XAMPP 版本的选择(基于包含它们的文件夹名称,基于上面显示的模式),
  • 停止 XAMPP 服务器进程,
  • 删除现有的 lampp 软链接,
  • 创建一个指向包含所选 XAMPP 版本的文件夹的新软链接。

来源

答案2

按照创建链接的想法,我尝试让它工作。请记住,我不是专业人士,我正在寻找解决方案并自己编写此脚本并与大家分享。

只是为了解决未来的问题,如果您想在 Linux 上安装 2 个版本的 xampp,您必须安装:示例:xampp php5,/opt/lampp 然后将其重命名为 /opt/lampp5,然后对 php7 bin 安装程序(或 tar)执行相同操作并将其重命名为 /opt/lampp7。然后将此代码复制到新文件中script.sh,使其可写chmod +x script.sh,然后运行它$ ./script.sh,或者$ ./script.sh 5 start 这里是在 ubuntu 16.04 上运行良好的代码示例,它只是一个简单的脚本,可以使其解决这种问题,因为在 Windows 上我们可以在安装步骤中执行此操作。

#!/bin/bash

LAMPP_VERSION=$1
LAMPP_ACTION=$2

LAMPP="/opt/lampp"
XAMPP=$LAMPP"/xampp"

function stopall {
    sudo $XAMPP stopapache
    sudo $XAMPP stopmysql
}

function startall {
    sudo $XAMPP startapache
    sudo $XAMPP startmysql
}

function stopmysql {
    sudo $XAMPP stopmysql
}

function stopapache {
    sudo $XAMPP stopapache
}

function startmysql {
    sudo $XAMPP startmysql
}

function startapache {
    sudo $XAMPP startapache
}

function checklampplink {

    # check if exist a link and delete it
    if [[ -L "$LAMPP" && -d "$LAMPP" ]]
        then
            echo "$LAMPP is a symlink to a directory: try DELETE!"
            sudo rm -f $LAMPP
        else
            echo "NO $LAMPP LINK WAS FOUND!"
    fi

    # create a new link
    echo "try to create LAMPP link ..."
    cd /opt
    ln -s "$LAMPP$LAMPP_VERSION" "lampp"

    ## check if is created
    if [[ -L "$LAMPP" && -d "$LAMPP" ]];
        then
            echo $LAMPP "created!"
        else
            echo "LINK not created! exit 1"
            exit 1
    fi
}

function checkservices {

    # check if services exists and try to stop property
    PIDS_MYSQL=$(ps -C mysqld -C mysqld_safe -o pid=)
    PIDS_APACHE=$(ps -C /opt/lampp/bin/ -o pid=)

    if [ -n $PIDS_MYSQL ];
        then
            stopmysql
        else
            echo "NO MYSQL TO KILL"
    fi
    if [ -n "$PIDS_APACHE" ];
        then
            stopapache
        else
            echo "NO APACHE TO KILL"
    fi

}

### begin ###



####
# get an action
if [ -z $LAMPP_ACTION ];
    then
        echo
        echo "ACTION: ( start | stop | restart)?"
        read LAMPP_ACTION
    else
        echo "ACTION SET TO: "$LAMPP_ACTION
fi
# if action is stop exit
if [ "$LAMPP_ACTION" == "stop" ];
    then
        stopall
        exit 0
fi

####
# get a version
if [ -z $LAMPP_VERSION ];
    then
        echo
        echo "VERSION: ( 5 | 7 )? "
        read LAMPP_VERSION
     else
        echo "VERSION SET TO: " $LAMPP_VERSION
fi
if [[ "$LAMPP_VERSION" = "5" || "$LAMPP_VERSION" = "7" ]];
    then
        echo "GOOD version continue ..."
    else
        echo "Wrong version exit 1"
        exit 1
fi

## if action is start or restart do the same
checkservices

# check folder link
checklampplink

echo

echo "Select an option to START:"
echo "1) ALL current installed services on xampp"
echo "2) Apache and Mysql - phpmyadmin"
echo
echo "Type enter to start option default ( 1 ) "
read USER_START
echo
echo "Starting services ..."
echo

if [ -z $USER_START ];
    then
        startapache
        startmysql
     else
        if [ "$USER_START" = "1" ];
            then
                startall
            else
                startapache
                startmysql
        fi
fi

echo "Done";
exit 0

如果此代码有任何语法问题,抱歉,我只是粘贴在这里。祝你好运!

相关内容