mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 14:58:08 +00:00
lighttpd: do not install obsolete 404 handler
(/var/www/html/pihole/ dir and contents are still removed in uninstall) (/var/www/html/index.lighttpd.orig is still removed in uninstall) Signed-off-by: Glenn Strauss <gstrauss@gluelogic.com>
This commit is contained in:
parent
539f9d4da0
commit
34f45d011d
@ -1,81 +0,0 @@
|
|||||||
<?php
|
|
||||||
/* Pi-hole: A black hole for Internet advertisements
|
|
||||||
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
|
||||||
* Network-wide ad blocking via your own hardware.
|
|
||||||
*
|
|
||||||
* This file is copyright under the latest version of the EUPL.
|
|
||||||
* Please see LICENSE file for your rights under this license. */
|
|
||||||
|
|
||||||
// Sanitize SERVER_NAME output
|
|
||||||
$serverName = htmlspecialchars($_SERVER["SERVER_NAME"]);
|
|
||||||
// Remove external ipv6 brackets if any
|
|
||||||
$serverName = preg_replace('/^\[(.*)\]$/', '${1}', $serverName);
|
|
||||||
|
|
||||||
// Set landing page location, found within /var/www/html/
|
|
||||||
$landPage = "../landing.php";
|
|
||||||
|
|
||||||
// Define array for hostnames to be accepted as self address for splash page
|
|
||||||
$authorizedHosts = [ "localhost" ];
|
|
||||||
if (!empty($_SERVER["FQDN"])) {
|
|
||||||
// If setenv.add-environment = ("fqdn" => "true") is configured in lighttpd,
|
|
||||||
// append $serverName to $authorizedHosts
|
|
||||||
array_push($authorizedHosts, $serverName);
|
|
||||||
} else if (!empty($_SERVER["VIRTUAL_HOST"])) {
|
|
||||||
// Append virtual hostname to $authorizedHosts
|
|
||||||
array_push($authorizedHosts, $_SERVER["VIRTUAL_HOST"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Determine block page type
|
|
||||||
if ($serverName === "pi.hole"
|
|
||||||
|| (!empty($_SERVER["VIRTUAL_HOST"]) && $serverName === $_SERVER["VIRTUAL_HOST"])) {
|
|
||||||
// Redirect to Web Interface
|
|
||||||
header("Location: /admin");
|
|
||||||
exit();
|
|
||||||
} elseif (filter_var($serverName, FILTER_VALIDATE_IP) || in_array($serverName, $authorizedHosts)) {
|
|
||||||
// When directly browsing via IP or authorized hostname
|
|
||||||
// Render splash/landing page based off presence of $landPage file
|
|
||||||
// Unset variables so as to not be included in $landPage or $splashPage
|
|
||||||
unset($authorizedHosts);
|
|
||||||
// If $landPage file is present
|
|
||||||
if (is_file(getcwd()."/$landPage")) {
|
|
||||||
unset($serverName, $viewPort); // unset extra variables not to be included in $landpage
|
|
||||||
include $landPage;
|
|
||||||
exit();
|
|
||||||
}
|
|
||||||
// If $landPage file was not present, Set Splash Page output
|
|
||||||
$splashPage = <<<EOT
|
|
||||||
<!doctype html>
|
|
||||||
<html lang='en'>
|
|
||||||
<head>
|
|
||||||
<meta charset='utf-8'>
|
|
||||||
<meta name='viewport' content='width=device-width, initial-scale=1'>
|
|
||||||
<title>● $serverName</title>
|
|
||||||
<link rel='shortcut icon' href='/admin/img/favicons/favicon.ico' type='image/x-icon'>
|
|
||||||
<style>
|
|
||||||
html, body { height: 100% }
|
|
||||||
body { margin: 0; font: 13pt "Source Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif; }
|
|
||||||
body { background: #222; color: rgba(255, 255, 255, 0.7); text-align: center; }
|
|
||||||
p { margin: 0; }
|
|
||||||
a { color: #3c8dbc; text-decoration: none; }
|
|
||||||
a:hover { color: #72afda; text-decoration: underline; }
|
|
||||||
#splashpage { display: flex; align-items: center; justify-content: center; }
|
|
||||||
#splashpage img { margin: 5px; width: 256px; }
|
|
||||||
#splashpage b { color: inherit; }
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body id='splashpage'>
|
|
||||||
<div>
|
|
||||||
<img src='/admin/img/logo.svg' alt='Pi-hole logo' width='256' height='377'>
|
|
||||||
<br>
|
|
||||||
<p>Pi-<strong>hole</strong>: Your black hole for Internet advertisements</p>
|
|
||||||
<a href='/admin'>Did you mean to go to the admin panel?</a>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
EOT;
|
|
||||||
exit($splashPage);
|
|
||||||
}
|
|
||||||
|
|
||||||
header("HTTP/1.1 404 Not Found");
|
|
||||||
exit();
|
|
||||||
?>
|
|
@ -82,7 +82,6 @@ PI_HOLE_FILES=(chronometer list piholeDebug piholeLogFlush setupLCD update versi
|
|||||||
PI_HOLE_INSTALL_DIR="/opt/pihole"
|
PI_HOLE_INSTALL_DIR="/opt/pihole"
|
||||||
PI_HOLE_CONFIG_DIR="/etc/pihole"
|
PI_HOLE_CONFIG_DIR="/etc/pihole"
|
||||||
PI_HOLE_BIN_DIR="/usr/local/bin"
|
PI_HOLE_BIN_DIR="/usr/local/bin"
|
||||||
PI_HOLE_404_DIR="${webroot}/pihole"
|
|
||||||
FTL_CONFIG_FILE="${PI_HOLE_CONFIG_DIR}/pihole-FTL.conf"
|
FTL_CONFIG_FILE="${PI_HOLE_CONFIG_DIR}/pihole-FTL.conf"
|
||||||
if [ -z "$useUpdateVars" ]; then
|
if [ -z "$useUpdateVars" ]; then
|
||||||
useUpdateVars=false
|
useUpdateVars=false
|
||||||
@ -1404,10 +1403,6 @@ installConfigs() {
|
|||||||
if grep -q -F "FILE AUTOMATICALLY OVERWRITTEN BY PI-HOLE" "${lighttpdConfig}"; then
|
if grep -q -F "FILE AUTOMATICALLY OVERWRITTEN BY PI-HOLE" "${lighttpdConfig}"; then
|
||||||
# Attempt to preserve backwards compatibility with older versions
|
# Attempt to preserve backwards compatibility with older versions
|
||||||
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/advanced/${LIGHTTPD_CFG} "${lighttpdConfig}"
|
install -D -m 644 -T ${PI_HOLE_LOCAL_REPO}/advanced/${LIGHTTPD_CFG} "${lighttpdConfig}"
|
||||||
# If there is a custom block page in the html/pihole directory, replace 404 handler in lighttpd config
|
|
||||||
if [[ -f "${PI_HOLE_404_DIR}/custom.php" ]]; then
|
|
||||||
sed -i 's/^\(server\.error-handler-404\s*=\s*\).*$/\1"\/pihole\/custom\.php"/' "${lighttpdConfig}"
|
|
||||||
fi
|
|
||||||
# Make the directories if they do not exist and set the owners
|
# Make the directories if they do not exist and set the owners
|
||||||
mkdir -p /run/lighttpd
|
mkdir -p /run/lighttpd
|
||||||
chown ${LIGHTTPD_USER}:${LIGHTTPD_GROUP} /run/lighttpd
|
chown ${LIGHTTPD_USER}:${LIGHTTPD_GROUP} /run/lighttpd
|
||||||
@ -1708,30 +1703,6 @@ install_dependent_packages() {
|
|||||||
|
|
||||||
# Install the Web interface dashboard
|
# Install the Web interface dashboard
|
||||||
installPiholeWeb() {
|
installPiholeWeb() {
|
||||||
printf "\\n %b Installing 404 page...\\n" "${INFO}"
|
|
||||||
|
|
||||||
local str="Creating directory for 404 page, and copying files"
|
|
||||||
printf " %b %s..." "${INFO}" "${str}"
|
|
||||||
# Install the directory
|
|
||||||
install -d -m 0755 ${PI_HOLE_404_DIR}
|
|
||||||
# and the 404 handler
|
|
||||||
install -D -m 644 ${PI_HOLE_LOCAL_REPO}/advanced/index.php ${PI_HOLE_404_DIR}/
|
|
||||||
|
|
||||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
|
||||||
|
|
||||||
local str="Backing up index.lighttpd.html"
|
|
||||||
printf " %b %s..." "${INFO}" "${str}"
|
|
||||||
# If the default index file exists,
|
|
||||||
if [[ -f "${webroot}/index.lighttpd.html" ]]; then
|
|
||||||
# back it up
|
|
||||||
mv ${webroot}/index.lighttpd.html ${webroot}/index.lighttpd.orig
|
|
||||||
printf "%b %b %s\\n" "${OVER}" "${TICK}" "${str}"
|
|
||||||
else
|
|
||||||
# Otherwise, don't do anything
|
|
||||||
printf "%b %b %s\\n" "${OVER}" "${INFO}" "${str}"
|
|
||||||
printf " No default index.lighttpd.html file found... not backing up\\n"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Sudoers file
|
# Install Sudoers file
|
||||||
local str="Installing sudoer file"
|
local str="Installing sudoer file"
|
||||||
printf "\\n %b %s..." "${INFO}" "${str}"
|
printf "\\n %b %s..." "${INFO}" "${str}"
|
||||||
|
@ -129,20 +129,8 @@ def test_installPiholeWeb_fresh_install_no_errors(host):
|
|||||||
installPiholeWeb
|
installPiholeWeb
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
expected_stdout = info_box + " Installing 404 page..."
|
|
||||||
assert expected_stdout in installWeb.stdout
|
|
||||||
expected_stdout = tick_box + (
|
|
||||||
" Creating directory for 404 page, " "and copying files"
|
|
||||||
)
|
|
||||||
assert expected_stdout in installWeb.stdout
|
|
||||||
expected_stdout = info_box + " Backing up index.lighttpd.html"
|
|
||||||
assert expected_stdout in installWeb.stdout
|
|
||||||
expected_stdout = "No default index.lighttpd.html file found... " "not backing up"
|
|
||||||
assert expected_stdout in installWeb.stdout
|
|
||||||
expected_stdout = tick_box + " Installing sudoer file"
|
expected_stdout = tick_box + " Installing sudoer file"
|
||||||
assert expected_stdout in installWeb.stdout
|
assert expected_stdout in installWeb.stdout
|
||||||
web_directory = host.run("ls -r /var/www/html/pihole").stdout
|
|
||||||
assert "index.php" in web_directory
|
|
||||||
|
|
||||||
|
|
||||||
def get_directories_recursive(host, directory):
|
def get_directories_recursive(host, directory):
|
||||||
@ -556,16 +544,6 @@ def test_installPihole_fresh_install_readableBlockpage(host, test_webpage):
|
|||||||
return bool(m)
|
return bool(m)
|
||||||
|
|
||||||
if installWebInterface is True:
|
if installWebInterface is True:
|
||||||
check_pihole = test_cmd.format("r", webroot + "/pihole", webuser)
|
|
||||||
actual_rc = host.run(check_pihole).rc
|
|
||||||
assert exit_status_success == actual_rc
|
|
||||||
check_pihole = test_cmd.format("x", webroot + "/pihole", webuser)
|
|
||||||
actual_rc = host.run(check_pihole).rc
|
|
||||||
assert exit_status_success == actual_rc
|
|
||||||
# check most important files in $webroot for read permission
|
|
||||||
check_index = test_cmd.format("r", webroot + "/pihole/index.php", webuser)
|
|
||||||
actual_rc = host.run(check_index).rc
|
|
||||||
assert exit_status_success == actual_rc
|
|
||||||
if test_webpage is True:
|
if test_webpage is True:
|
||||||
# check webpage for unreadable files
|
# check webpage for unreadable files
|
||||||
noPHPfopen = re.compile(
|
noPHPfopen = re.compile(
|
||||||
|
Loading…
Reference in New Issue
Block a user