From 615b19c3d67bf3bc9452a9a7b00a6de60c2e8f47 Mon Sep 17 00:00:00 2001 From: MichaIng Date: Fri, 9 Oct 2020 16:12:21 +0200 Subject: [PATCH] web server question enhancements (#3225) + Do not ask to install the web server, if the web interface has been deselected before. + Add additional info, that PHP modules need to be installed manually, when web server is deselected and the web server user needs to be member of the "pihole" group. + Consequently use webroot variable instead of /var/www/html Signed-off-by: MichaIng --- automated install/basic-install.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index e855efbc..23836270 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -354,7 +354,7 @@ if is_command apt-get ; then PIHOLE_DEPS=(cron curl iputils-ping lsof netcat psmisc sudo unzip wget idn2 sqlite3 libcap2-bin dns-root-data libcap2) # The Web dashboard has some that also need to be installed # It's useful to separate the two since our repos are also setup as "Core" code and "Web" code - PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-${phpSqlite}" "${phpVer}-xml" "${phpVer}-intl") + PIHOLE_WEB_DEPS=(lighttpd "${phpVer}-common" "${phpVer}-cgi" "${phpVer}-${phpSqlite}" "${phpVer}-xml" "${phpVer}-json" "${phpVer}-intl") # The Web server user, LIGHTTPD_USER="www-data" # group, @@ -1244,13 +1244,18 @@ setAdminFlag() { printf " %b Web Interface Off\\n" "${INFO}" # or false INSTALL_WEB_INTERFACE=false + # Deselect the web server as well, since it is obsolete then + INSTALL_WEB_SERVER=false ;; esac - # Request user to install web server, if --disable-install-webserver has not been used (INSTALL_WEB_SERVER=true is default). + # Request user to install web server, if it has not been deselected before (INSTALL_WEB_SERVER=true is default). if [[ "${INSTALL_WEB_SERVER}" == true ]]; then - WebToggleCommand=(whiptail --separate-output --radiolist "Do you wish to install the web server (lighttpd)?\\n\\nNB: If you disable this, and, do not have an existing webserver installed, the web interface will not function." "${r}" "${c}" 6) - # with the default being enabled + # Get list of required PHP modules, excluding base package (common) and handler (cgi) + local i php_modules + for i in "${PIHOLE_WEB_DEPS[@]}"; do [[ $i == 'php'* && $i != *'-common' && $i != *'-cgi' ]] && php_modules+=" ${i#*-}"; done + WebToggleCommand=(whiptail --separate-output --radiolist "Do you wish to install the web server (lighttpd) and required PHP modules?\\n\\nNB: If you disable this, and, do not have an existing web server and required PHP modules (${php_modules# }) installed, the web interface will not function. Additionally the web server user needs to be member of the \"pihole\" group for full functionality." "${r}" "${c}" 6) + # Enable as default and recommended option WebChooseOptions=("On (Recommended)" "" on Off "" off) WebChoices=$("${WebToggleCommand[@]}" "${WebChooseOptions[@]}" 2>&1 >/dev/tty) || (printf " %bCancel was selected, exiting installer%b\\n" "${COL_LIGHT_RED}" "${COL_NC}" && exit 1) @@ -1995,9 +2000,9 @@ installPihole() { # Set the owner and permissions chown ${LIGHTTPD_USER}:${LIGHTTPD_GROUP} ${webroot} chmod 0775 ${webroot} - # Repair permissions if /var/www/html is not world readable + # Repair permissions if webroot is not world readable chmod a+rx /var/www - chmod a+rx /var/www/html + chmod a+rx ${webroot} # Give lighttpd access to the pihole group so the web interface can # manage the gravity.db database usermod -a -G pihole ${LIGHTTPD_USER}