install_roundcube.sh: Change way to determin 'MYSQL_CREDENTIALS'.
This commit is contained in:
parent
46ea239260
commit
8a9ea4141b
@ -108,6 +108,62 @@ is_number() {
|
|||||||
#return $([[ ! -z "${1##*[!0-9]*}" ]])
|
#return $([[ ! -z "${1##*[!0-9]*}" ]])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detect_mysql_version () {
|
||||||
|
|
||||||
|
_MYSQLD_VERSION="$(mysqld -V 2>/dev/null)"
|
||||||
|
|
||||||
|
if [[ -z "$_MYSQLD_VERSION" ]]; then
|
||||||
|
fatal "No installed MySQL server or distribution found!"
|
||||||
|
elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then
|
||||||
|
MYSQL_CUR_DISTRIBUTION="Percona"
|
||||||
|
elif [[ "$_MYSQLD_VERSION" =~ MariaDB ]]; then
|
||||||
|
MYSQL_CUR_DISTRIBUTION="MariaDB"
|
||||||
|
elif [[ "$_MYSQLD_VERSION" =~ MySQL ]]; then
|
||||||
|
MYSQL_CUR_DISTRIBUTION="MySQL"
|
||||||
|
elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then
|
||||||
|
MYSQL_CUR_DISTRIBUTION="MySQL"
|
||||||
|
elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mariadb- ]]; then
|
||||||
|
MYSQL_CUR_DISTRIBUTION="MariaDB"
|
||||||
|
else
|
||||||
|
error "MySQL Instalation found, but cannot determin the distribution!"
|
||||||
|
|
||||||
|
MYSQL_CUR_DISTRIBUTION=
|
||||||
|
echo ""
|
||||||
|
echo " Select the installed MySQL distribution."
|
||||||
|
echo ""
|
||||||
|
echo " [1] MySQL (the original community edition)"
|
||||||
|
echo " [2] Percona Server for MySQL"
|
||||||
|
echo " [3] MariaDB"
|
||||||
|
echo ""
|
||||||
|
echononl " Eingabe [1/2/3]: "
|
||||||
|
|
||||||
|
while [ "$MYSQL_CUR_DISTRIBUTION" != "MySQL" -a "$MYSQL_CUR_DISTRIBUTION" != "MariaDB" -a "$MYSQL_CUR_DISTRIBUTION" != "Percona" ];do
|
||||||
|
read OPTION
|
||||||
|
case $OPTION in
|
||||||
|
1) MYSQL_CUR_DISTRIBUTION="MySQL"
|
||||||
|
;;
|
||||||
|
2) MYSQL_CUR_DISTRIBUTION="Percona"
|
||||||
|
;;
|
||||||
|
3) MYSQL_CUR_DISTRIBUTION="MariaDB"
|
||||||
|
;;
|
||||||
|
*) echo ""
|
||||||
|
echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ; 3 = MariaDB ]"
|
||||||
|
echo ""
|
||||||
|
echononl " Eingabe:"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
MYSQL_VERSION="$(echo $_MYSQLD_VERSION | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+)?" | head -n 1)"
|
||||||
|
MYSQL_MAJOR_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f1)"
|
||||||
|
MYSQL_MINOR_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f2)"
|
||||||
|
MYSQL_PATCH_LEVEL="$(echo $MYSQL_VERSION | cut -d '.' -f3)"
|
||||||
|
MYSQL_MAIN_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f1,2)"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
trim() {
|
trim() {
|
||||||
local var="$*"
|
local var="$*"
|
||||||
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
||||||
@ -296,14 +352,6 @@ DEFAULT_APACHE_VHOST_DIR="/usr/local/apache2/conf/vhosts"
|
|||||||
DEFAULT_DB_HOST="localhost"
|
DEFAULT_DB_HOST="localhost"
|
||||||
DEFAULT_DB_NAME="roundcubemail"
|
DEFAULT_DB_NAME="roundcubemail"
|
||||||
DEFAULT_DB_USER="roundcube"
|
DEFAULT_DB_USER="roundcube"
|
||||||
if [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then
|
|
||||||
DEFAULT_MYSQL_CREDENTIALS="--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
|
||||||
elif [[ -f "/etc/mysql/debian.cnf" ]] ; then
|
|
||||||
DEFAULT_MYSQL_CREDENTIALS="--defaults-file=/etc/mysql/debian.cnf"
|
|
||||||
else
|
|
||||||
DEFAULT_MYSQL_CREDENTIALS=""
|
|
||||||
fi
|
|
||||||
DEFAULT_DEBIAN_MYSQL_CREDENTIALS="--defaults-file=/etc/mysql/debian.cnf"
|
|
||||||
|
|
||||||
[[ -n "$ROUNDCUBE_VERSION" ]] || fatal "Roundcube Version (ROUNDCUBE_VERSION) not present!"
|
[[ -n "$ROUNDCUBE_VERSION" ]] || fatal "Roundcube Version (ROUNDCUBE_VERSION) not present!"
|
||||||
[[ -n "$WEBSITE_NAME" ]] || fatal "Website's name (WEBSITE_NAME) not present!"
|
[[ -n "$WEBSITE_NAME" ]] || fatal "Website's name (WEBSITE_NAME) not present!"
|
||||||
@ -401,16 +449,76 @@ fi
|
|||||||
|
|
||||||
[[ -n "$MYSQL_DEBIAN_INSTALLATION" ]] || MYSQL_DEBIAN_INSTALLATION=false
|
[[ -n "$MYSQL_DEBIAN_INSTALLATION" ]] || MYSQL_DEBIAN_INSTALLATION=false
|
||||||
|
|
||||||
if [[ "$DB_TYPE" = "mysql" ]]; then
|
|
||||||
if $MYSQL_DEBIAN_INSTALLATION ; then
|
if [ "$DB_TYPE" = "postgres" -o "$DB_TYPE" = "postgresql" -o "$DB_TYPE" = "pgsql" -o "$DB_TYPE" = "psql" ];then
|
||||||
[[ -n "$MYSQL_CREDENTIALS" ]] || MYSQL_CREDENTIALS="$DEFAULT_DEBIAN_MYSQL_CREDENTIALS"
|
DB_TYPE="pgsql"
|
||||||
else
|
fi
|
||||||
[[ -n "$MYSQL_CREDENTIALS" ]] || MYSQL_CREDENTIALS="$DEFAULT_MYSQL_CREDENTIALS"
|
|
||||||
|
|
||||||
|
if [[ "$DB_TYPE" = "mysql" ]] ; then
|
||||||
|
|
||||||
|
if [[ -z ${MYSQL_CREDENTIALS} ]] ; then
|
||||||
|
|
||||||
|
detect_mysql_version
|
||||||
|
|
||||||
|
if [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]] && ([[ $MYSQL_MAJOR_VERSION -gt 10 ]] \
|
||||||
|
|| ( [[ $MYSQL_MAJOR_VERSION -eq 10 ]] && [[ $MYSQL_MINOR_VERSION -gt 3 ]] )) ; then
|
||||||
|
if [[ -S "/tmp/mysql.sock" ]]; then
|
||||||
|
MYSQL_CREDENTIALS="-u root -S /tmp/mysql.sock"
|
||||||
|
elif [[ -S "/run/mysqld/mysqld.sock" ]]; then
|
||||||
|
MYSQL_CREDENTIALS="-u root -S /run/mysqld/mysqld.sock"
|
||||||
|
elif [[ -S "/var/run/mysqld/mysqld.sock" ]]; then
|
||||||
|
MYSQL_CREDENTIALS="-u root -S /var/run/mysqld/mysqld.sock"
|
||||||
|
else
|
||||||
|
fatal "Parameter 'MYSQL_CREDENTIALS' cannot be determined automated.
|
||||||
|
|
||||||
|
Use configuration file "$conf_file" to set
|
||||||
|
parameter manually."
|
||||||
|
fi
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
echononl "\tGet MySQL command.."
|
||||||
|
mysql_command="$(which mysql)"
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
|
||||||
|
if [[ -x "/usr/local/mysql/bin/mysql" ]]; then
|
||||||
|
mysql_command="/usr/local/mysql/bin/mysql"
|
||||||
|
echo_ok
|
||||||
|
else
|
||||||
|
echo_failed
|
||||||
|
fatal "$(cat $tmp_log_file)"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $(${mysql_command} --login-path=local -e ";" > /dev/null 2>&1) ; then
|
||||||
|
MYSQL_CREDENTIALS="--login-path=local"
|
||||||
|
elif [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then
|
||||||
|
MYSQL_CREDENTIALS="--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
||||||
|
elif [[ -f "/etc/mysql/debian.cnf" ]] ; then
|
||||||
|
MYSQL_CREDENTIALS="--defaults-file=/etc/mysql/debian.cnf"
|
||||||
|
else
|
||||||
|
fatal "Parameter 'MYSQL_CREDENTIALS' cannot be determined automated.
|
||||||
|
|
||||||
|
Use configuration file "$conf_file" to set
|
||||||
|
parameter manually."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#if $MYSQL_DEBIAN_INSTALLATION ; then
|
||||||
|
# [[ -n "$MYSQL_CREDENTIALS" ]] || MYSQL_CREDENTIALS="$DEFAULT_DEBIAN_MYSQL_CREDENTIALS"
|
||||||
|
#else
|
||||||
|
# [[ -n "$MYSQL_CREDENTIALS" ]] || MYSQL_CREDENTIALS="$DEFAULT_MYSQL_CREDENTIALS"
|
||||||
|
#fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
[[ "$DB_TYPE" = "pgsql" ]] || fatal "Unknown Database Type '$DB_TYPE' (DB_TYPE)"
|
[[ "$DB_TYPE" = "pgsql" ]] || fatal "Unknown Database Type '$DB_TYPE' (DB_TYPE)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
[[ -n "$SPAM_FOLDER_NAME" ]] || SPAM_FOLDER_NAME=$DEFAULT_SPAM_FOLDER_NAME
|
[[ -n "$SPAM_FOLDER_NAME" ]] || SPAM_FOLDER_NAME=$DEFAULT_SPAM_FOLDER_NAME
|
||||||
|
|
||||||
[[ -n "$SUPPORT_URL" ]] || SUPPORT_URL="http://www.${MAIN_DOMAIN}.$TLD"
|
[[ -n "$SUPPORT_URL" ]] || SUPPORT_URL="http://www.${MAIN_DOMAIN}.$TLD"
|
||||||
|
Loading…
Reference in New Issue
Block a user