Exception (5)
Missing .htaccess file Exception thrown with message "Missing .htaccess file" Stacktrace: #2 Exception in /hox/hoxtinco/public_html/clientes/load.php:141 #1 checkWebServer in /hox/hoxtinco/public_html/clientes/load.php:273 #0 require_once in /hox/hoxtinco/public_html/clientes/index.php:11
Stack frames (3)
2
Exception
/load.php141
1
checkWebServer
/load.php273
0
require_once
/index.php11
/hox/hoxtinco/public_html/clientes/load.php
                $url = 'https://' . $hostname . $_SERVER['REQUEST_URI'];
                header('Location: ' . $url);
                exit;
            }
        }
    }
}
 
/*
 * Check the web server config.
 */
function checkWebServer(): void
{
    $filesystem = new Filesystem();
 
    // Check for missing required .htaccess on Apache and Apache-compatible web servers.
    $webSever = SentryHelper::estimateWebServer();
    if ($webSever === 'Apache' || $webSever === 'Litespeed') {
        if (!$filesystem->exists('.htaccess')) {
            throw new Exception('Missing .htaccess file', 5);
        }
    }
}
 
/*
 * Error handler.
 */
function errorHandler(int $number, string $message, string $file, int $line)
{
    // Just some housekeeping to ensure a few things we rely on are loaded.
    if (!class_exists('\\' . FOSSBilling\ErrorPage::class)) {
        require_once PATH_LIBRARY . DIRECTORY_SEPARATOR . 'FOSSBilling' . DIRECTORY_SEPARATOR . 'ErrorPage.php';
    }
 
    if (!class_exists('\\' . SentryHelper::class)) {
        require_once PATH_LIBRARY . DIRECTORY_SEPARATOR . 'FOSSBilling' . DIRECTORY_SEPARATOR . 'SentryHelper.php';
    }
 
    // If it's an exception, handle it. Otherwise we don't need to do anything as PHP will log it for us.
    if ($number === E_RECOVERABLE_ERROR) {
Arguments
  1. "Missing .htaccess file"
    
/hox/hoxtinco/public_html/clientes/load.php
define('INSTANCE_ID', Config::getProperty('info.instance_id', 'Unknown'));
 
// Initial setup and checks passed, now we setup our custom autoloader.
require PATH_LIBRARY . DIRECTORY_SEPARATOR . 'FOSSBilling' . DIRECTORY_SEPARATOR . 'Autoloader.php';
$loader = new FOSSBilling\AutoLoader();
$loader->register();
 
define('BIND_TO', FOSSBilling\Tools::getDefaultInterface());
 
// Now that the config file is loaded, we can enable Sentry
SentryHelper::registerSentry();
 
// Verify the installer was removed.
checkInstaller();
 
// Check if SSL required, and enforce if so.
checkSSL();
 
// Check web server and web server settings.
checkWebServer();
 
// Set error and exception handlers, and default logging settings.
ini_set('log_errors', '1');
ini_set('html_errors', false);
ini_set('error_log', PATH_LOG . DIRECTORY_SEPARATOR . 'php_error.log');
error_reporting(E_ALL);
 
if (DEBUG) {
    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');
} else {
    ini_set('display_errors', '0');
    ini_set('display_startup_errors', '0');
}
 
/hox/hoxtinco/public_html/clientes/index.php
<?php
 
/**
 * Copyright 2022-2024 FOSSBilling
 * Copyright 2011-2021 BoxBilling, Inc.
 * SPDX-License-Identifier: Apache-2.0.
 *
 * @copyright FOSSBilling (https://www.fossbilling.org)
 * @license http://www.apache.org/licenses/LICENSE-2.0 Apache-2.0
 */
require_once __DIR__ . '/load.php';
$di = include __DIR__ . '/di.php';
 
// Setting up the debug bar
$debugBar = new DebugBar\StandardDebugBar();
$debugBar['request']->useHtmlVarDumper();
$debugBar['messages']->useHtmlVarDumper();
 
$config = FOSSBilling\Config::getConfig();
$config['info']['salt'] = '********';
$config['db'] = array_fill_keys(array_keys($config['db']), '********');
 
$configCollector = new DebugBar\DataCollector\ConfigCollector($config);
$configCollector->useHtmlVarDumper();
 
$debugBar->addCollector($configCollector);
 
// Now move onto the actual process of setting up the app & routing
$url = $_GET['_url'] ?? $_SERVER['PATH_INFO'] ?? '';
$http_err_code = $_GET['_errcode'] ?? null;
 
if ($url === '/run-patcher') {
    $patcher = new FOSSBilling\UpdatePatcher();
    $patcher->setDi($di);
 
    try {
        $patcher->applyConfigPatches();
        $patcher->applyCorePatches();
        $di['tools']->emptyFolder(PATH_CACHE);
 
Arguments
  1. "/hox/hoxtinco/public_html/clientes/load.php"
    

Environment & details:

Key Value
PHP Version
"8.3.32"
Error code
5
Instance ID
"284f6bed-94da-40a0-8d5e-25c6cdd5913b"
empty
empty
empty
empty
empty
Key Value
USER
"hoxtinco"
HOME
"/hox/hoxtinco"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.0"
GATEWAY_INTERFACE
"CGI/1.1"
REMOTE_PORT
"59868"
SCRIPT_FILENAME
"/hox/hoxtinco/public_html/clientes/index.php"
SERVER_ADMIN
"webmaster@clientes.hoxtin.com"
CONTEXT_DOCUMENT_ROOT
"/hox/hoxtinco/public_html/clientes"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"https"
DOCUMENT_ROOT
"/hox/hoxtinco/public_html/clientes"
REMOTE_ADDR
"216.73.216.15"
SERVER_PORT
"443"
SERVER_ADDR
"162.210.103.105"
SERVER_NAME
"www.clientes.hoxtin.com"
SERVER_SOFTWARE
"Apache"
SERVER_SIGNATURE
""
PATH
"/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_X_REAL_IP
"216.73.216.15"
HTTP_X_FORWARDED_SERVER
"www.clientes.hoxtin.com"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_X_FORWARDED_PORT
"443"
HTTP_X_FORWARDED_HOST
"www.clientes.hoxtin.com"
HTTP_X_FORWARDED_FOR
"216.73.216.15"
HTTP_HOST
"www.clientes.hoxtin.com"
proxy-nokeepalive
"1"
SSL_TLS_SNI
"www.clientes.hoxtin.com"
HTTPS
"on"
HTTP_AUTHORIZATION
""
isproxyrequest
"1"
UNIQUE_ID
"amsxdDVMHZ2ZghwIyKRHEQAAAEI"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1785409908.6958
REQUEST_TIME
1785409908
argv
[]
argc
0
empty
0. Whoops\Handler\PrettyPageHandler