我无法在我的计算机上安装多个版本的 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_7和1.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
如果此代码有任何语法问题,抱歉,我只是粘贴在这里。祝你好运!