mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 23:08:07 +00:00
Merge pull request #2161 from pi-hole/centos_remi-php7
CentOS install re-worked to provide PHP7 via Remi Repository
This commit is contained in:
commit
feba4da0b8
@ -219,16 +219,73 @@ elif command -v rpm &> /dev/null; then
|
|||||||
UPDATE_PKG_CACHE=":"
|
UPDATE_PKG_CACHE=":"
|
||||||
PKG_INSTALL=(${PKG_MANAGER} install -y)
|
PKG_INSTALL=(${PKG_MANAGER} install -y)
|
||||||
PKG_COUNT="${PKG_MANAGER} check-update | egrep '(.i686|.x86|.noarch|.arm|.src)' | wc -l"
|
PKG_COUNT="${PKG_MANAGER} check-update | egrep '(.i686|.x86|.noarch|.arm|.src)' | wc -l"
|
||||||
INSTALLER_DEPS=(dialog git iproute net-tools newt procps-ng)
|
INSTALLER_DEPS=(dialog git iproute net-tools newt procps-ng which)
|
||||||
PIHOLE_DEPS=(bc bind-utils cronie curl findutils nmap-ncat sudo unzip wget libidn2 psmisc)
|
PIHOLE_DEPS=(bc bind-utils cronie curl findutils nmap-ncat sudo unzip wget libidn2 psmisc)
|
||||||
PIHOLE_WEB_DEPS=(lighttpd lighttpd-fastcgi php php-common php-cli php-pdo)
|
PIHOLE_WEB_DEPS=(lighttpd lighttpd-fastcgi php-common php-cli php-pdo)
|
||||||
# EPEL (https://fedoraproject.org/wiki/EPEL) is required for lighttpd on CentOS
|
|
||||||
if grep -qi 'centos' /etc/redhat-release; then
|
|
||||||
INSTALLER_DEPS=("${INSTALLER_DEPS[@]}" "epel-release");
|
|
||||||
fi
|
|
||||||
LIGHTTPD_USER="lighttpd"
|
LIGHTTPD_USER="lighttpd"
|
||||||
LIGHTTPD_GROUP="lighttpd"
|
LIGHTTPD_GROUP="lighttpd"
|
||||||
LIGHTTPD_CFG="lighttpd.conf.fedora"
|
LIGHTTPD_CFG="lighttpd.conf.fedora"
|
||||||
|
# If the host OS is Fedora,
|
||||||
|
if grep -qi 'fedora' /etc/redhat-release; then
|
||||||
|
# all required packages should be available by default with the latest fedora release
|
||||||
|
: # continue
|
||||||
|
# or if host OS is CentOS,
|
||||||
|
elif grep -qi 'centos' /etc/redhat-release; then
|
||||||
|
# Pi-Hole currently supports CentOS 7+ with PHP7+
|
||||||
|
SUPPORTED_CENTOS_VERSION=7
|
||||||
|
SUPPORTED_CENTOS_PHP_VERSION=7
|
||||||
|
# Check current CentOS major release version
|
||||||
|
CURRENT_CENTOS_VERSION=$(rpm -q --queryformat '%{VERSION}' centos-release)
|
||||||
|
# Check if CentOS version is supported
|
||||||
|
if [[ $CURRENT_CENTOS_VERSION -lt $SUPPORTED_CENTOS_VERSION ]]; then
|
||||||
|
echo -e " ${CROSS} CentOS $CURRENT_CENTOS_VERSION is not suported."
|
||||||
|
echo -e " Please update to CentOS release $SUPPORTED_CENTOS_VERSION or later"
|
||||||
|
# exit the installer
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
# on CentOS we need to add the EPEL repository to gain access to Fedora packages
|
||||||
|
EPEL_PKG="epel-release"
|
||||||
|
rpm -q ${EPEL_PKG} &> /dev/null || rc=$?
|
||||||
|
if [[ $rc -ne 0 ]]; then
|
||||||
|
echo -e " ${INFO} Enabling EPEL package repository (https://fedoraproject.org/wiki/EPEL)"
|
||||||
|
"${PKG_INSTALL[@]}" ${EPEL_PKG} &> /dev/null
|
||||||
|
echo -e " ${TICK} Installed ${EPEL_PKG}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The default php on CentOS 7.x is 5.4 which is EOL
|
||||||
|
# Check if the version of PHP available via installed repositories is >= to PHP 7
|
||||||
|
AVAILABLE_PHP_VERSION=$(${PKG_MANAGER} info php | grep -i version | grep -o '[0-9]\+' | head -1)
|
||||||
|
if [[ $AVAILABLE_PHP_VERSION -ge $SUPPORTED_CENTOS_PHP_VERSION ]]; then
|
||||||
|
# Since PHP 7 is available by default, install via default PHP package names
|
||||||
|
: # do nothing as PHP is current
|
||||||
|
else
|
||||||
|
REMI_PKG="remi-release"
|
||||||
|
REMI_REPO="remi-php72"
|
||||||
|
rpm -q ${REMI_PKG} &> /dev/null || rc=$?
|
||||||
|
if [[ $rc -ne 0 ]]; then
|
||||||
|
# The PHP version available via default repositories is older than version 7
|
||||||
|
if ! whiptail --defaultno --title "PHP 7 Update (recommended)" --yesno "PHP 7.x is recommended for both security and language features.\\nWould you like to install PHP7 via Remi's RPM repository?\\n\\nSee: https://rpms.remirepo.net for more information" ${r} ${c}; then
|
||||||
|
# User decided to NOT update PHP from REMI, attempt to install the default available PHP version
|
||||||
|
echo -e " ${INFO} User opt-out of PHP 7 upgrade on CentOS. Deprecated PHP may be in use."
|
||||||
|
: # continue with unsupported php version
|
||||||
|
else
|
||||||
|
echo -e " ${INFO} Enabling Remi's RPM repository (https://rpms.remirepo.net)"
|
||||||
|
"${PKG_INSTALL[@]}" "https://rpms.remirepo.net/enterprise/${REMI_PKG}-$(rpm -E '%{rhel}').rpm" &> /dev/null
|
||||||
|
# enable the PHP 7 repository via yum-config-manager (provided by yum-utils)
|
||||||
|
"${PKG_INSTALL[@]}" "yum-utils" &> /dev/null
|
||||||
|
yum-config-manager --enable ${REMI_REPO} &> /dev/null
|
||||||
|
echo -e " ${TICK} Remi's RPM repository has been enabled for PHP7"
|
||||||
|
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# If not a supported version of Fedora or CentOS,
|
||||||
|
echo -e " ${CROSS} Unsupported RPM based distribution"
|
||||||
|
# exit the installer
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# If neither apt-get or rmp/dnf are found
|
# If neither apt-get or rmp/dnf are found
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user