mod_php_install.sh: support php 5.6 at debian 12 (bookworm).

This commit is contained in:
Christoph 2023-10-24 22:29:16 +02:00
parent 942b735491
commit 79b141353b

View File

@ -7,6 +7,8 @@ _VERSION=
_FREETYPE_VERSION="2.10.4" _FREETYPE_VERSION="2.10.4"
_ICU4C_VERSION="57-2" _ICU4C_VERSION="57-2"
_LIBXML2_VERSION="2.9.4" _LIBXML2_VERSION="2.9.4"
_PYTHON2_VERSION="2.7.16"
_OPENSSL1_VERSION="1.1.1w"
#WITHOUT_APACHE_MOD_PHP=true #WITHOUT_APACHE_MOD_PHP=true
_APACHE_MOD_PHP=no _APACHE_MOD_PHP=no
@ -408,14 +410,22 @@ else
unset MAKEFLAGS unset MAKEFLAGS
fi fi
if [[ "$PHP_MAIN_VERSION" = "5.6" ]] && [[ $os_version -gt 9 ]]; then if [[ "$PHP_MAIN_VERSION" = "5.6" ]] && [[ $os_version -gt 11 ]]; then
#if [[ -e "/usr/local/libxml2" ]]; then
warn "For php version 5.6 at debian 12 and above, you need manual installation of
\t freetype (libfreetype6-dev)
\t libxml2
\t icu4c (libicu)
\t openssl v 1.1.1 "
elif [[ "$PHP_MAIN_VERSION" = "5.6" ]] && [[ $os_version -gt 9 ]]; then
warn "For php version 5.6 at debian 10 and above, you need manual installation of warn "For php version 5.6 at debian 10 and above, you need manual installation of
\t freetype (libfreetype6-dev) \t freetype (libfreetype6-dev)
\t libxml2 \t libxml2
\t icu4c (libicu)" \t icu4c (libicu)"
#fi
fi fi
echo "" echo ""
@ -1843,6 +1853,8 @@ fi
_install_freetype=false _install_freetype=false
_install_icu4c=false _install_icu4c=false
_install_libxml2=false _install_libxml2=false
_install_python2=false
_install_openssl1=false
if ([[ "$PHP_MAJOR_VERSION" -eq 7 ]] && [[ "$PHP_MINOR_VERSION" -lt 4 ]]) \ if ([[ "$PHP_MAJOR_VERSION" -eq 7 ]] && [[ "$PHP_MINOR_VERSION" -lt 4 ]]) \
|| [[ "$PHP_MAJOR_VERSION" -lt 7 ]] ; then || [[ "$PHP_MAJOR_VERSION" -lt 7 ]] ; then
@ -1940,6 +1952,66 @@ if ([[ "$PHP_MAJOR_VERSION" -eq 7 ]] && [[ "$PHP_MINOR_VERSION" -lt 4 ]]) \
_install_libxml2=true _install_libxml2=true
if [[ "$os_dist" = "debian" ]] && [[ $os_version -gt 11 ]] ; then
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "The libxml2 library, which we need to install separately, requires python 2."
echo -e ""
echo -e "Which version of libxml2 should be installed?"
echo ""
PYTHON2_VERSION=
if [[ -n "$_PYTHON2_VERSION" ]]; then
echononl "Python 2 Version [${_PYTHON2_VERSION}]: "
read PYTHON2_VERSION
if [[ "X$PYTHON2_VERSION" = "X" ]] ; then
PYTHON2_VERSION="$_PYTHON2_VERSION"
fi
else
echononl "Python 2 Version: "
read PYTHON2_VERSION
while [[ "X$PYTHON2_VERSION" = "X" ]]; do
echo -e "\n \033[33m\033[1Python 2 Version must not be empty!\033[m\n"
echononl "Python 2 Version : "
read PYTHON2_VERSION
done
fi
_install_python2=true
echo ""
echo ""
echo -e "\033[32m--\033[m"
echo ""
echo "We need to install openssl version 1"
echo -e ""
echo -e "Which version of openssl should be installed?"
echo ""
OPENSSL1_VERSION=
if [[ -n "$_OPENSSL1_VERSION" ]]; then
echononl "OpenSSL Version [${_OPENSSL1_VERSION}]: "
read OPENSSL1_VERSION
if [[ "X$OPENSSL1_VERSION" = "X" ]] ; then
OPENSSL1_VERSION="$_OPENSSL1_VERSION"
fi
else
echononl "OpenSSL Version: "
read OPENSSL1_VERSION
while [[ "X$OPENSSL1_VERSION" = "X" ]]; do
echo -e "\n \033[33m\033[1OpenSSL Version must not be empty!\033[m\n"
echononl "OpenSSL Version: "
read OPENSSL1_VERSION
done
fi
_install_openssl1=true
fi
fi # if [[ "$PHP_MAJOR_VERSION" -lt 7 ]] fi # if [[ "$PHP_MAJOR_VERSION" -lt 7 ]]
fi # if [[ "$os_dist" = "debian" ]] && [[ $os_version -eq 10 ]] fi # if [[ "$os_dist" = "debian" ]] && [[ $os_version -eq 10 ]]
@ -2119,6 +2191,16 @@ if $_install_libxml2 ; then
echo " libxml2 version ..................: $LIBXML2_VERSION" echo " libxml2 version ..................: $LIBXML2_VERSION"
fi fi
echo "" echo ""
echo "Install extern python 2..............: $_install_python2"
if $_install_python2 ; then
echo " python 2 version..................: $PYTHON2_VERSION"
fi
echo ""
echo "Install extern OpenSSL...............: $_install_openssl1"
if $_install_python2 ; then
echo " OpenSSL version...................: $OPENSSL1_VERSION"
fi
echo ""
echo "Skip 'updatedb'......................: $SKIP_UPDATE_DB" echo "Skip 'updatedb'......................: $SKIP_UPDATE_DB"
echo "" echo ""
echo "" echo ""
@ -2737,6 +2819,228 @@ EOF
fi fi
if $_install_python2 && [[ ! -d /usr/local/python-$PYTHON2_VERSION ]]; then
## - Install python 2'
## -
echo ""
echo ""
echo -e "\t---"
echo -e "\t--- Install python 2"
echo -e "\t---"
echo ""
# https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
python2_archive="Python-${PYTHON2_VERSION}.tgz"
python2_download_url="https://www.python.org/ftp/python/${PYTHON2_VERSION}"
_src_dir_python2="/usr/local/src/python2"
_build_dir_python2="${_src_dir_python2}/Python-${PYTHON2_VERSION}"
echononl "\tCreate source directory '$_src_dir_python2'.."
if [[ ! -d "$_src_dir_python2" ]]; then
mkdir "$_src_dir_python2" >> ${_logdir}/main.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "Cannot create directory '$_src_dir_python2'"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
cd "$_src_dir_python2"
echononl "\tGet source $python2_archive .."
if [[ ! -f ${_src_dir_python2}/$python2_archive ]]; then
wget -O "${_src_dir_python2}/$python2_archive" \
${python2_download_url} \
>> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Cannot Download '$python2_archive'"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
_backup_dir="$_build_dir_python2"
echononl "\tBackup existing directory '${_backup_dir}'.."
if [[ -d "${_backup_dir}" ]]; then
mv "${_backup_dir}" "${_backup_dir}.$_backup_date" > /dev/null 2> $tmp_err_msg
if [[ $? -eq 0 ]] ; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
echononl "\tUnpack archive \"$python2_archive\".."
gunzip < "${python2_archive}" | tar -xf - 2> $tmp_err_msg
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
cd "$_build_dir_python2"
config_params="--prefix=/usr/local/python-${PYTHON2_VERSION}"
echononl "\tGoing to configure python ${PYTHON2_VERSION} .."
./configure $config_params >> ${_logdir}/python2-configure.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Configuring python2 failed!\n\t see ${_logdir}/python2-configure.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
echononl "\tGoing to compile python v${PYTHON2_VERSION} .."
make > ${_logdir}/python2-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Compiling python2 failed!\n\t see ${_logdir}/python2-make.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
_backup_dir="/usr/local/python2-${PYTHON2_VERSION}"
echononl "\tBackup existing directory '${_backup_dir}'.."
if [[ -d "${_backup_dir}" ]]; then
mv "${_backup_dir}" "${_backup_dir}.$_backup_date" > /dev/null 2> $tmp_err_msg
if [[ $? -eq 0 ]] ; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
echononl "\tGoing to install python v${PYTHON2_VERSION}.."
make install > ${_logdir}/python2-make_install.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "Installing python 2 failed!\n\t see ${_logdir}/python2-make_install.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
echononl "\tSet symlink /usr/local/python2 -> /usr/local/python-$PYTHON2_VERSION .."
if [ -L /usr/local/python2 ];then
rm -f /usr/local/python2
fi
ln -s python-$PYTHON2_VERSION /usr/local/python2 > $tmp_err_msg 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
fi
if $_install_libxml2 && [[ ! -d /usr/local/libxml2-$LIBXML2_VERSION ]]; then if $_install_libxml2 && [[ ! -d /usr/local/libxml2-$LIBXML2_VERSION ]]; then
## - Install libxml2' ## - Install libxml2'
@ -2849,6 +3153,9 @@ if $_install_libxml2 && [[ ! -d /usr/local/libxml2-$LIBXML2_VERSION ]]; then
cd "$_build_dir_libxml2" cd "$_build_dir_libxml2"
config_params="--prefix=/usr/local/libxml2-$LIBXML2_VERSION" config_params="--prefix=/usr/local/libxml2-$LIBXML2_VERSION"
if $_install_python2 ; then
config_params="${config_params} --with-python=/usr/local/python2"
fi
echononl "\tGoing to configure libxml2-$LIBXML2_VERSION .." echononl "\tGoing to configure libxml2-$LIBXML2_VERSION .."
./configure $config_params >> ${_logdir}/libxml2-configure.log 2>&1 ./configure $config_params >> ${_logdir}/libxml2-configure.log 2>&1
if [ "$?" = "0" ]; then if [ "$?" = "0" ]; then
@ -2956,6 +3263,259 @@ if $_install_libxml2 && [[ ! -d /usr/local/libxml2-$LIBXML2_VERSION ]]; then
fi fi
if $_install_openssl1 && [[ ! -d /usr/local/openssl-$OPENSSL1_VERSION ]]; then
## - Install OpenSSL 1'
## -
echo ""
echo ""
echo -e "\t---"
echo -e "\t--- Install OpenSSL 1"
echo -e "\t---"
echo ""
_NAME="openssl"
_VERSION="${OPENSSL1_VERSION}"
_archive_file="openssl-${_VERSION}.tgz"
_download_url="https://www.openssl.org/source/openssl-${_VERSION}.tar.gz"
_src_dir="/usr/local/src/openssl"
_build_dir="${_src_dir}/openssl-${_VERSION}"
_install_dir="/usr/local/openssl-${_VERSION}"
echononl "\tCreate source directory '$_src_dir'.."
if [[ ! -d "$_src_dir" ]]; then
mkdir "$_src_dir" >> ${_logdir}/main.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "Cannot create directory '$_src_dir'"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
cd "$_src_dir"
echononl "\tGet source $_archive_file .."
if [[ ! -f ${_src_dir}/$_archive_file ]]; then
wget -O "${_src_dir}/$_archive_file" \
${_download_url} \
>> ${_logdir}/main.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Cannot Download '$_archive_file'"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
_backup_dir="$_build_dir"
echononl "\tBackup existing directory '${_backup_dir}'.."
if [[ -d "${_backup_dir}" ]]; then
mv "${_backup_dir}" "${_backup_dir}.$_backup_date" > /dev/null 2> $tmp_err_msg
if [[ $? -eq 0 ]] ; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
echononl "\tUnpack archive \"$_archive_file\".."
gunzip < "${_archive_file}" | tar -xf - 2> $tmp_err_msg
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
cd "$_build_dir"
config_params="--prefix=${_install_dir}"
echononl "\tGoing to configure ${_NAME} ${_VERSION} .."
if [[ -x "./config" ]] ; then
config_params="--prefix=${_install_dir} --openssldir=${_install_dir}"
./config ${config_params} > ${_logdir}/${_NAME}-configure.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Configuring (Configure) ${_NAME} failed!\n\t see ${_logdir}/${_NAME}-configure.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
./configure $config_params >> ${_logdir}/${_NAME}-configure.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Configuring ${_NAME} failed!\n\t see ${_logdir}/${_NAME}-configure.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
fi
echononl "\tGoing to compile ${_NAME} ${_VERSION} .."
make > ${_logdir}/${_NAME}-make.log 2>&1
if [ "$?" = "0" ]; then
echo_ok
else
echo_failed
error "Compiling ${_NAME} failed!\n\t see ${_logdir}/${_NAME}-make.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
_backup_dir="/usr/local/${_NAME}-${_VERSION}"
echononl "\tBackup existing directory '${_backup_dir}'.."
if [[ -d "${_backup_dir}" ]]; then
mv "${_backup_dir}" "${_backup_dir}.$_backup_date" > /dev/null 2> $tmp_err_msg
if [[ $? -eq 0 ]] ; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
else
echo_skipped
fi
echononl "\tGoing to install ${_NAME} v${_VERSION}.."
make install > ${_logdir}/${_NAME}-make_install.log 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "Installing ${_NAME} failed!\n\t see ${_logdir}/${_NAME}-make_install.log for more details"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
echononl "\tSet symlink /usr/local/${_NAME} -> /usr/local/${_NAME}-${_VERSION} .."
if [ -L /usr/local/${_NAME} ];then
rm -f /usr/local/${_NAME}
fi
ln -s ${_NAME}-${_VERSION} /usr/local/${_NAME} > $tmp_err_msg 2>&1
if [[ $? -eq 0 ]]; then
echo_ok
else
echo_failed
error "$(cat $tmp_err_msg)"
echo ""
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Interupted by user"
fi
fi
## - Set Symlink ## - Set Symlink
## - /usr/include/x86_64-linux-gnu/gmp.h -> /usr/include/gmp.h ## - /usr/include/x86_64-linux-gnu/gmp.h -> /usr/include/gmp.h
@ -3283,7 +3843,6 @@ config_params="
--with-mysqli=mysqlnd --with-mysqli=mysqlnd
--enable-exif --enable-exif
--with-zlib --with-zlib
--with-openssl
--with-gdbm --with-gdbm
--with-curl --with-curl
--enable-dba --enable-dba
@ -3314,6 +3873,14 @@ config_params="
--enable-cgi --enable-cgi
--with-xmlrpc" --with-xmlrpc"
if $_install_openssl1 ; then
config_params="${config_params}
--with-openssl=/usr/local/openssl"
else
config_params="${config_params}
--with-openssl"
fi
# --with-t1lib \ # --with-t1lib \
# Note: # Note: