Symfony \ Component \ Filesystem \ Exception \ IOException
Failed to create "/home/lienzohost/web/clientes.lienzohost.com/public_html/data": mkdir(): open_basedir restriction in effect. File(/home/lienzohost/web/clientes.lienzohost.com/public_html/data) is not within the allowed path(s): (/home/lienzohost/.composer:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/private:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_shtml:/home/lienzohost/tmp:/tmp:/bin:/usr/bin:/usr/local/bin:/usr/share:/opt) Symfony\Component\Filesystem\Exception\IOException thrown with message "Failed to create "/home/lienzohost/web/clientes.lienzohost.com/public_html/data": mkdir(): open_basedir restriction in effect. File(/home/lienzohost/web/clientes.lienzohost.com/public_html/data) is not within the allowed path(s): (/home/lienzohost/.composer:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/private:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_shtml:/home/lienzohost/tmp:/tmp:/bin:/usr/bin:/usr/local/bin:/usr/share:/opt)" Stacktrace: #6 Symfony\Component\Filesystem\Exception\IOException in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/vendor/symfony/filesystem/Filesystem.php:98 #5 Symfony\Component\Filesystem\Filesystem:mkdir in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/library/FOSSBilling/UpdateFinalization.php:261 #4 FOSSBilling\UpdateFinalization:writeState in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/library/FOSSBilling/UpdateFinalization.php:140 #3 FOSSBilling\UpdateFinalization:createPendingState in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/library/FOSSBilling/UpdateFinalization.php:108 #2 FOSSBilling\UpdateFinalization:ensureCurrentVersionFinalization in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/load.php:280 #1 init in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/load.php:311 #0 require in /home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/index.php:13
Stack frames (7)
6
Symfony\Component\Filesystem\Exception\IOException
/vendor/symfony/filesystem/Filesystem.php:98
5
Symfony\Component\Filesystem\Filesystem mkdir
/library/FOSSBilling/UpdateFinalization.php:261
4
FOSSBilling\UpdateFinalization writeState
/library/FOSSBilling/UpdateFinalization.php:140
3
FOSSBilling\UpdateFinalization createPendingState
/library/FOSSBilling/UpdateFinalization.php:108
2
FOSSBilling\UpdateFinalization ensureCurrentVersionFinalization
/load.php:280
1
init
/load.php:311
0
require
/index.php:13
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/vendor/symfony/filesystem/Filesystem.php
                    throw new IOException(\sprintf('Failed to copy the whole content of "%s" to "%s" (%g of %g bytes copied).', $originFile, $targetFile, $bytesCopied, $bytesOrigin), 0, null, $originFile);
                }
            }
        }
    }
 
    /**
     * Creates a directory recursively.
     *
     * @throws IOException On any directory creation failure
     */
    public function mkdir(string|iterable $dirs, int $mode = 0o777): void
    {
        foreach ($this->toIterable($dirs) as $dir) {
            if (is_dir($dir)) {
                continue;
            }
 
            if (!self::box('mkdir', $dir, $mode, true) && !is_dir($dir)) {
                throw new IOException(\sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir);
            }
        }
    }
 
    /**
     * Checks the existence of files or directories.
     */
    public function exists(string|iterable $files): bool
    {
        $maxPathLength = \PHP_MAXPATHLEN - 2;
 
        foreach ($this->toIterable($files) as $file) {
            if (\strlen($file) > $maxPathLength) {
                throw new IOException(\sprintf('Could not check if file exist because path length exceeds %d characters.', $maxPathLength), 0, null, $file);
            }
 
            if (!file_exists($file)) {
                return false;
            }
        }
Arguments
  1. "Failed to create "/home/lienzohost/web/clientes.lienzohost.com/public_html/data": mkdir(): open_basedir restriction in effect. File(/home/lienzohost/web/clientes.lienzohost.com/public_html/data) is not within the allowed path(s): (/home/lienzohost/.composer:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/private:/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_shtml:/home/lienzohost/tmp:/tmp:/bin:/usr/bin:/usr/local/bin:/usr/share:/opt)"
    
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/library/FOSSBilling/UpdateFinalization.php
    }
 
    private function readState(): ?array
    {
        if (!$this->filesystem->exists($this->statePath)) {
            return null;
        }
 
        try {
            $decoded = json_decode($this->filesystem->readFile($this->statePath), true, 512, JSON_THROW_ON_ERROR);
        } catch (\JsonException|IOException) {
            return null;
        }
 
        return is_array($decoded) ? $decoded : null;
    }
 
    private function writeState(array $state): void
    {
        $this->filesystem->mkdir(PATH_DATA, 0o755);
        $this->filesystem->dumpFile($this->statePath, self::encodeJson($state));
    }
 
    private function enableMaintenanceMode(): void
    {
        $config = Config::getConfig();
        $maintenanceMode = self::normalizeMaintenanceMode($config['maintenance_mode'] ?? []);
 
        $maintenanceMode['enabled'] = true;
        // Keep login and finalization reachable while every other public/client
        // route remains protected by maintenance mode.
        $maintenanceMode['allowed_urls'] = array_values(array_unique(array_merge(
            (array) ($maintenanceMode['allowed_urls'] ?? []),
            $this->getFinalizationAllowedUrls()
        )));
 
        $config['maintenance_mode'] = $maintenanceMode;
        Config::setConfig($config, false);
    }
 
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/library/FOSSBilling/UpdateFinalization.php
        if ($this->stateRequiresFinalization($existing)) {
            return $existing;
        }
 
        $state = [
            'status' => self::STATUS_PENDING,
            'from_version' => $fromVersion,
            'target_version' => $targetVersion,
            'branch' => $context['branch'] ?? Config::getProperty('update_branch', 'release'),
            'update_type' => $context['update_type'] ?? $this->detectUpdateType($fromVersion, $targetVersion),
            'source' => $context['source'] ?? 'update',
            'created_at' => date(DATE_ATOM),
            'finalized_at' => null,
            'completed_at' => null,
            'maintenance_mode' => self::normalizeMaintenanceMode(Config::getProperty('maintenance_mode', [])),
        ];
 
        // Write the pending state before enabling maintenance mode so a failed
        // config write still leaves recoverable evidence that finalization is pending.
        $this->writeState($state);
        $this->enableMaintenanceMode();
 
        return $state;
    }
 
    /**
     * Runs config/database patches with the currently loaded codebase.
     *
     * This is intentionally separate from completeFinalization(): after patches
     * run, the admin still has a review step before maintenance mode is restored.
     */
    public function finalizeUpdate(): array
    {
        $state = $this->ensureCurrentVersionFinalization();
 
        try {
            $this->clearCache();
 
            $patcher = $this->createPatcher();
            $patcher->applyConfigPatches(force: true);
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/library/FOSSBilling/UpdateFinalization.php
            'pending_patches' => $this->getAvailablePatchCount(),
        ];
    }
 
    public function ensureCurrentVersionFinalization(): ?array
    {
        $state = $this->readState();
        if ($this->isCompleteForCurrentVersion($state)) {
            return null;
        }
 
        // Pending/finalized states contain the original maintenance-mode state,
        // so keep them intact until the admin completes finalization.
        if ($this->stateRequiresFinalization($state)) {
            return $state;
        }
 
        $fromVersion = is_string($state['version'] ?? null) ? $state['version'] : null;
 
        return $this->createPendingState(
            $fromVersion,
            Version::VERSION,
            [
                'source' => $fromVersion !== null ? 'version-state-mismatch' : 'missing-finalization-state',
                'branch' => Config::getProperty('update_branch', 'release'),
            ]
        );
    }
 
    public function createPendingState(?string $fromVersion, string $targetVersion, array $context = []): array
    {
        $existing = $this->readState();
        if ($this->stateRequiresFinalization($existing)) {
            return $existing;
        }
 
        $state = [
            'status' => self::STATUS_PENDING,
            'from_version' => $fromVersion,
            'target_version' => $targetVersion,
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/load.php
    $scheme = Config::getProperty('security.force_https', true) || $request->isSecure() ? 'https://' : 'http://';
 
    // Keep the app working correctly if the URL didn't get correctly updated
    $url = str_replace(['https://', 'http://'], '', Config::getProperty('url'));
    define('SYSTEM_URL', $scheme . $url);
 
    // Set the default interface.
    define('BIND_TO', Tools::getDefaultInterface());
 
    // Initial setup and checks passed, now we setup our custom autoloader.
    require Path::join(PATH_LIBRARY, 'FOSSBilling', 'Autoloader.php');
    $loader = new FOSSBilling\AutoLoader();
    $loader->register();
 
    // Load the DI container.
    global $di;
    $di = require Path::join(PATH_ROOT, 'di.php');
 
    if (!Environment::isCLI() && !Environment::isTesting()) {
        $di['update_finalization']->ensureCurrentVersionFinalization();
    }
 
    // Now that the config file is loaded, we can enable Sentry.
    SentryHelper::registerSentry();
}
 
/*
 * Post-initialization.
 */
function postInit(): void
{
    // Set error and exception handlers, and default logging settings.
    ini_set('log_errors', '1');
    ini_set('html_errors', false);
    ini_set('error_log', Path::join(PATH_LOG, 'php_error.log'));
    error_reporting(E_ALL);
 
    if (DEBUG) {
        ini_set('display_errors', '1');
        ini_set('display_startup_errors', '1');
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/load.php
    // Set error and exception handlers, and default logging settings.
    ini_set('log_errors', '1');
    ini_set('html_errors', false);
    ini_set('error_log', Path::join(PATH_LOG, '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');
    }
}
 
// Perform pre-initialization (loading required dependencies, etc.).
preInit();
 
// Initialize the application.
init();
 
// Verify the installer was removed.
checkInstaller();
 
// Check if SSL required, and enforce if so.
checkSSL();
 
// Check web server and web server settings.
checkWebServer();
 
// Perform post-initialization (setting error handlers, etc).
postInit();
 
/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/index.php
<?php
 
declare(strict_types=1);
/**
 * Copyright 2022-2025 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 __DIR__ . DIRECTORY_SEPARATOR . 'load.php';
global $di;
 
use DebugBar\DataCollector\TimeDataCollector;
use FOSSBilling\Http\RequestFactory;
use Symfony\Component\HttpFoundation\Response;
 
$config = FOSSBilling\Config::getConfig();
$debugBar = null;
$timeCollector = null;
/* @var Symfony\Component\HttpFoundation\Request $request */
global $request;
 
if ((bool) ($config['debug_and_monitoring']['debug'] ?? false)) {
    // Setting up the debug bar
    $debugBar = new DebugBar\StandardDebugBar();
    $timeCollector = $debugBar->getCollector('time');
 
    if (!$timeCollector instanceof TimeDataCollector) {
        throw new RuntimeException('Time collector not found in debug bar.');
    }
 
    // PDO collector
    $pdoCollector = new DebugBar\DataCollector\PDO\PDOCollector();
 
    // RedBean
    $pdoCollector->addConnection($di['pdo'], 'RedBeanPHP');
 
Arguments
  1. "/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/load.php"
    

Environment & details:

Key Value
PHP Version
"8.3.32"
Error code
0
Instance ID
"519460fd-9f5e-4ba9-95b6-c01cdd8b252f"
empty
empty
empty
empty
empty
Key Value
TEMP
"/home/lienzohost/tmp"
TMPDIR
"/home/lienzohost/tmp"
TMP
"/home/lienzohost/tmp"
PATH
"/usr/local/bin:/usr/bin:/bin"
HOSTNAME
""
USER
"lienzohost"
HOME
"/home/lienzohost"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"dxs1referenciaanterior.lienzohost.com"
SCRIPT_FILENAME
"/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html/index.php"
REDIRECT_STATUS
"200"
SERVER_NAME
"dxs1referenciaanterior.lienzohost.com"
SERVER_PORT
"443"
SERVER_ADDR
"5.78.216.164"
REMOTE_PORT
"37802"
REMOTE_ADDR
"216.73.216.73"
SERVER_SOFTWARE
"nginx/1.31.2"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/home/lienzohost/web/dxs1referenciaanterior.lienzohost.com/public_html"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1784869273.0269
REQUEST_TIME
1784869273
empty
0. Whoops\Handler\PrettyPageHandler