<?php
declare(strict_types=1);
namespace Doctrine\DBAL\Driver\PDO;
use Doctrine\DBAL\Driver\PDOException;
/**
* @internal
*
* @psalm-immutable
*/
final class Exception extends PDOException
{
public static function new(\PDOException $exception): self
{
return new self($exception);
}
}
"SQLSTATE[08004] [1040] Too many connections"
use PDOQueryImplementation;
/**
* @internal The connection can be only instantiated by its driver.
*
* @param string $dsn
* @param string|null $user
* @param string|null $password
* @param mixed[]|null $options
*
* @throws PDOException In case of an error.
*/
public function __construct($dsn, $user = null, $password = null, ?array $options = null)
{
try {
parent::__construct($dsn, (string) $user, (string) $password, (array) $options);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [Statement::class, []]);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* {@inheritdoc}
*/
#[ReturnTypeWillChange]
public function exec($sql)
{
try {
$result = parent::exec($sql);
assert($result !== false);
return $result;
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* @deprecated Use {@link Connection} instead
*/
class PDOConnection extends PDO implements ConnectionInterface, ServerInfoAwareConnection
{
use PDOQueryImplementation;
/**
* @internal The connection can be only instantiated by its driver.
*
* @param string $dsn
* @param string|null $user
* @param string|null $password
* @param mixed[]|null $options
*
* @throws PDOException In case of an error.
*/
public function __construct($dsn, $user = null, $password = null, ?array $options = null)
{
try {
parent::__construct($dsn, (string) $user, (string) $password, (array) $options);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [Statement::class, []]);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* {@inheritdoc}
*/
#[ReturnTypeWillChange]
public function exec($sql)
{
try {
$result = parent::exec($sql);
assert($result !== false);
return $result;
} catch (PDOException $exception) {
throw Exception::new($exception);
"SQLSTATE[08004] [1040] Too many connections"
* @deprecated Use {@link Connection} instead
*/
class PDOConnection extends PDO implements ConnectionInterface, ServerInfoAwareConnection
{
use PDOQueryImplementation;
/**
* @internal The connection can be only instantiated by its driver.
*
* @param string $dsn
* @param string|null $user
* @param string|null $password
* @param mixed[]|null $options
*
* @throws PDOException In case of an error.
*/
public function __construct($dsn, $user = null, $password = null, ?array $options = null)
{
try {
parent::__construct($dsn, (string) $user, (string) $password, (array) $options);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [Statement::class, []]);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exception) {
throw Exception::new($exception);
}
}
/**
* {@inheritdoc}
*/
#[ReturnTypeWillChange]
public function exec($sql)
{
try {
$result = parent::exec($sql);
assert($result !== false);
return $result;
} catch (PDOException $exception) {
throw Exception::new($exception);
use PDO;
/**
* PDO implementation of the Connection interface.
* Used by all PDO-based drivers.
*
* @since 2.0
*/
class PDOConnection extends \Doctrine\DBAL\Driver\PDOConnection
{
/**
* @param string $dsn
* @param string|null $user
* @param string|null $password
* @param array|null $options
*/
public function __construct($dsn, $user = null, $password = null, array $options = null)
{
parent::__construct($dsn, $user, $password, $options);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('Concrete\Core\Database\Driver\PDOStatement', array()));
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
}
<?php
namespace Concrete\Core\Database\Driver\PDOMySqlConcrete;
use Concrete\Core\Database\Connection\PDOConnection;
use Concrete\Core\Database\Platforms\MySQL80Platform;
use Concrete\Core\Database\Schema\MySqlSchemaManager;
/**
* PDO MySql driver.
*
* @since 2.0
*/
class Driver extends \Doctrine\DBAL\Driver\PDOMySql\Driver
{
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
{
$conn = new PDOConnection(
$this->_constructPdoDsn($params),
$username,
$password,
$driverOptions
);
return $conn;
}
/**
* {@inheritdoc}
*
* @see \Doctrine\DBAL\Driver\AbstractMySQLDriver::createDatabasePlatformForVersion()
*/
public function createDatabasePlatformForVersion($version)
{
if (false === stripos($version, 'mariadb')) {
if (preg_match('/^(\d+)/', $version, $match)) {
if ((int) $match[1] >= 8) {
return new MySQL80Platform();
}
}
}
return $this->_expr;
}
/**
* Establishes the connection with the database.
*
* @return bool TRUE if the connection was successfully established, FALSE if
* the connection is already open.
*/
public function connect()
{
if ($this->_conn !== null) {
return false;
}
$driverOptions = $this->params['driverOptions'] ?? [];
$user = $this->params['user'] ?? null;
$password = $this->params['password'] ?? null;
$this->_conn = $this->_driver->connect($this->params, $user, $password, $driverOptions);
$this->transactionNestingLevel = 0;
if ($this->autoCommit === false) {
$this->beginTransaction();
}
if ($this->_eventManager->hasListeners(Events::postConnect)) {
$eventArgs = new Event\ConnectionEventArgs($this);
$this->_eventManager->dispatchEvent(Events::postConnect, $eventArgs);
}
return true;
}
/**
* Detects and sets the database platform.
*
* Evaluates custom platform class and version in order to set the correct platform.
*
* @return string|null
*
* @throws Throwable
*/
private function getDatabasePlatformVersion()
{
// Driver does not support version specific platforms.
if (! $this->_driver instanceof VersionAwarePlatformDriver) {
return null;
}
// Explicit platform version requested (supersedes auto-detection).
if (isset($this->params['serverVersion'])) {
return $this->params['serverVersion'];
}
// If not connected, we need to connect now to determine the platform version.
if ($this->_conn === null) {
try {
$this->connect();
} catch (Throwable $originalException) {
if (empty($this->params['dbname'])) {
throw $originalException;
}
// The database to connect to might not yet exist.
// Retry detection without database name connection parameter.
$params = $this->params;
unset($this->params['dbname']);
try {
$this->connect();
} catch (Throwable $fallbackException) {
// Either the platform does not support database-less connections
// or something else went wrong.
throw $originalException;
} finally {
$this->params = $params;
}
}
if ($this->_eventManager->hasListeners(Events::postConnect)) {
$eventArgs = new Event\ConnectionEventArgs($this);
$this->_eventManager->dispatchEvent(Events::postConnect, $eventArgs);
}
return true;
}
/**
* Detects and sets the database platform.
*
* Evaluates custom platform class and version in order to set the correct platform.
*
* @throws Exception If an invalid platform was specified for this connection.
*/
private function detectDatabasePlatform(): AbstractPlatform
{
$version = $this->getDatabasePlatformVersion();
if ($version !== null) {
assert($this->_driver instanceof VersionAwarePlatformDriver);
return $this->_driver->createDatabasePlatformForVersion($version);
}
return $this->_driver->getDatabasePlatform();
}
/**
* Returns the version of the related platform if applicable.
*
* Returns null if either the driver is not capable to create version
* specific platform instances, no explicit server version was specified
* or the underlying driver connection cannot determine the platform
* version without having to query it (performance reasons).
*
* @return string|null
*
* Gets the EventManager used by the Connection.
*
* @return EventManager
*/
public function getEventManager()
{
return $this->_eventManager;
}
/**
* Gets the DatabasePlatform for the connection.
*
* @return AbstractPlatform
*
* @throws Exception
*/
public function getDatabasePlatform()
{
if ($this->platform === null) {
$this->platform = $this->detectDatabasePlatform();
$this->platform->setEventManager($this->_eventManager);
}
return $this->platform;
}
/**
* Gets the ExpressionBuilder for the connection.
*
* @return ExpressionBuilder
*/
public function getExpressionBuilder()
{
return $this->_expr;
}
/**
* Establishes the connection with the database.
*
* @return bool TRUE if the connection was successfully established, FALSE if
if (!isset($params['driverOptions'])) {
$params['driverOptions'] = [];
}
if (defined('PDO::MYSQL_ATTR_MULTI_STATEMENTS')) {
$params['driverOptions'][\PDO::MYSQL_ATTR_MULTI_STATEMENTS] = false;
}
$params['wrapperClass'] = array_get($config, 'wrapperClass', '\Concrete\Core\Database\Connection\Connection');
unset($params['driver']);
$wrapperClass = 'Doctrine\DBAL\Connection';
if (isset($params['wrapperClass'])) {
if (is_subclass_of($params['wrapperClass'], $wrapperClass)) {
$wrapperClass = $params['wrapperClass'];
} else {
throw DBALException::invalidWrapperClass($params['wrapperClass']);
}
}
$connection = new $wrapperClass($params, $driver);
$connection->getDatabasePlatform()->registerDoctrineTypeMapping('json', 'json_array');
return $connection;
}
/**
* @param $config
* @param $name
*
* @return \Doctrine\DBAL\Connection
*
* @throws DBALException
*/
public function make($config, $name)
{
return $this->createConnection($config);
}
/**
* @return DriverManager
*/
public function getDriverManager()
throw DBALException::invalidWrapperClass($params['wrapperClass']);
}
}
$connection = new $wrapperClass($params, $driver);
$connection->getDatabasePlatform()->registerDoctrineTypeMapping('json', 'json_array');
return $connection;
}
/**
* @param $config
* @param $name
*
* @return \Doctrine\DBAL\Connection
*
* @throws DBALException
*/
public function make($config, $name)
{
return $this->createConnection($config);
}
/**
* @return DriverManager
*/
public function getDriverManager()
{
return $this->driver_manager;
}
}
{
$config = $this->getConfig($name);
// First we will check by the connection name to see if an extension has been
// registered specifically for that connection. If it has we will call the
// Closure and pass it the config allowing it to resolve the connection.
if (isset($this->extensions[$name])) {
return call_user_func($this->extensions[$name], $config, $name);
}
$driver = $config['driver'];
// Next we will check to see if an extension has been registered for a driver
// and will call the Closure if so, which allows us to have a more generic
// resolver for the drivers themselves which applies to all connections.
if (isset($this->extensions[$driver])) {
return call_user_func($this->extensions[$driver], $config, $name);
}
return $this->factory->make($config, $name);
}
/**
* Prepare the database connection instance.
*
* @param Connection $connection
*
* @return Connection
*/
protected function prepare($connection)
{
return $connection;
}
/**
* Get the configuration for a connection.
*
* @param string $name
*
* @return array
public function get()
{
return $this->connection();
}
/**
* Get a database connection instance.
*
* @param string $name
*
* @return \Concrete\Core\Database\Connection\Connection
*/
public function connection($name = null)
{
$name = $name ?: $this->getDefaultConnection();
// If we haven't created this connection, we'll create it based on the config
// provided in the application. Once we've created the connections we will
// set the "fetch mode" for PDO which determines the query return types.
if (!isset($this->connections[$name])) {
$connection = $this->makeConnection($name);
$this->connections[$name] = $this->prepare($connection);
}
return $this->connections[$name];
}
/**
* Disconnect from the given database and remove from local cache.
*
* @param string $name
*/
public function purge($name = null)
{
$this->disconnect($name);
if (isset($this->connections[$name = $name ?: $this->getDefaultConnection()])) {
unset($this->connections[$name]);
}
}
/**
{
return 'database';
}
/**
* This is overridden to allow passthru to `DatabaseManager`'s __call.
*
* @param string $method
* @param array $args
*
* @return mixed
*
* @throws \Exception
*/
public static function __callStatic($method, $args)
{
$instance = static::resolveFacadeInstance(static::getFacadeAccessor());
switch (count($args)) {
case 0:
return $instance->$method();
case 1:
return $instance->$method($args[0]);
case 2:
return $instance->$method($args[0], $args[1]);
case 3:
return $instance->$method($args[0], $args[1], $args[2]);
case 4:
return $instance->$method($args[0], $args[1], $args[2], $args[3]);
default:
return call_user_func_array(array($instance, $method), $args);
}
}
}
public static function refreshCache()
{
CacheLocal::delete('packageHandleList', false);
CacheLocal::delete('pkgList', 1);
CacheLocal::delete('pkgList', 0);
}
/**
* @deprecated
* @param int $pkgIsInstalled
* @return static
*/
public static function get($pkgIsInstalled = 1)
{
$pkgList = CacheLocal::getEntry('pkgList', $pkgIsInstalled);
if ($pkgList != false) {
return $pkgList;
}
$em = \Database::connection()->getEntityManager();
$r = $em->getRepository('\Concrete\Core\Entity\Package');
$packages = $r->findBy(array('pkgIsInstalled' => true), array('pkgID' => 'asc'));
$list = new static();
foreach($packages as $pkg) {
$list->add($pkg);
}
CacheLocal::set('pkgList', $pkgIsInstalled, $list);
return $list;
}
}
} else {
$installedVersion = $config->get('concrete.version_installed');
$coreVersion = $config->get('concrete.version');
if (version_compare($installedVersion, $coreVersion, '<')) {
$update = true;
}
}
if ($update) {
$this->make(MutexInterface::class)->execute(Update::MUTEX_KEY, function () {
Update::updateToCurrentVersion();
});
}
}
/**
* Register package autoloaders. Has to come BEFORE session calls.
*/
public function setupPackageAutoloaders()
{
$pla = \Concrete\Core\Package\PackageList::get();
$pl = $pla->getPackages();
$cl = ClassLoader::getInstance();
/** @var \Package[] $pl */
foreach ($pl as $p) {
\Config::package($p);
if ($p->isPackageInstalled()) {
$pkg = $this->make('Concrete\Core\Package\PackageService')->getClass($p->getPackageHandle());
if (is_object($pkg) && (!$pkg instanceof \Concrete\Core\Package\BrokenPackage)) {
$cl->registerPackage($pkg);
$this->packages[] = $pkg;
}
}
}
}
/**
* Run startup and localization events on any installed packages.
*/
public function setupPackages()
{
/**
* @param \Concrete\Core\Application\Application $app
* @param \Concrete\Core\Http\Request $request
*
* @return null|Response
*/
private function checkCache(Application $app, Request $request)
{
$response = $app->checkPageCache($request);
if ($response) {
return $response;
}
}
/**
* @param \Concrete\Core\Application\Application $app
*/
private function initializePackages(Application $app)
{
$app->setupPackageAutoloaders();
}
}
if ($response = $this->checkInstall($app, $request)) {
return $response;
}
if ($this->app->isInstalled()) {
/*
* ----------------------------------------------------------------------------
* Check the page cache in case we need to return a result early.
* ----------------------------------------------------------------------------
*/
if ($response = $this->checkCache($app, $request)) {
return $response;
}
/*
* ----------------------------------------------------------------------------
* Now we load all installed packages, and register their package autoloaders.
* ----------------------------------------------------------------------------
*/
$this->initializePackages($app);
}
}
/**
* Enable configuration.
*
* @param Application $app
*
* @return Repository
*/
private function initializeConfig(Application $app)
{
$config_provider = $app->make('Concrete\Core\Config\ConfigServiceProvider');
$config_provider->register();
/*
* @var \Concrete\Core\Config\Repository\Repository
*/
$config = $app->make('config');
/*
* ----------------------------------------------------------------------------
* Registries for theme paths, assets, routes and file types.
* ----------------------------------------------------------------------------
*/
$this->initializeAssets($config);
$this->initializeRoutes($config);
$this->initializeFileTypes($config);
/*
* ----------------------------------------------------------------------------
* Certain components subscribing to the actions of other components.
* ----------------------------------------------------------------------------
*/
$this->initializeEvents($app);
// If we're not in the CLI SAPI, lets do additional booting for HTTP
if (!$this->app->isRunThroughCommandLineInterface()) {
return $this->bootHttpSapi($config, $app);
}
}
/**
* @param $config
* @param $app
*
* @return null|Response
*/
private function bootHttpSapi($config, $app)
{
/*
* ----------------------------------------------------------------------------
* Initialize the request
* ----------------------------------------------------------------------------
*/
$request = $this->initializeRequest($config);
/*
* ----------------------------------------------------------------------------
{
$this->run_class = $run_class;
}
/**
* @param string $boot_class
*/
public function setBootClass($boot_class)
{
$this->boot_class = $boot_class;
}
/**
* Initialize the environment and prepare for running.
*/
public function boot()
{
$booter = $this->getBooter();
if ($response = $booter->boot()) {
$this->sendResponse($response);
} else {
$this->status = self::STATUS_ACTIVE;
}
}
/**
* Begin the runtime.
*/
public function run()
{
switch ($this->status) {
case self::STATUS_ENDED:
// We've already ended, lets just return
return;
case self::STATUS_INACTIVE:
throw new \RuntimeException('Runtime has not yet booted.');
}
* Handle text encoding.
* ----------------------------------------------------------------------------
*/
\Patchwork\Utf8\Bootup::initAll();
/*
* ----------------------------------------------------------------------------
* Instantiate Concrete
* ----------------------------------------------------------------------------
*/
/** @var \Concrete\Core\Application\Application $app */
$app = require DIR_APPLICATION . '/bootstrap/start.php';
$app->instance('app', $app);
// Bind fully application qualified class names
$app->instance('Concrete\Core\Application\Application', $app);
$app->instance('Illuminate\Container\Container', $app);
// Boot the runtime
$app->getRuntime()->boot();
return $app;
* Make sure you cannot call dispatcher.php directly.
* ----------------------------------------------------------------------------
*/
if (basename($_SERVER['PHP_SELF']) === DISPATCHER_FILENAME_CORE) {
die('Access Denied.');
}
/*
* ----------------------------------------------------------------------------
* Include all autoloaders.
* ----------------------------------------------------------------------------
*/
require __DIR__ . '/bootstrap/autoload.php';
/*
* ----------------------------------------------------------------------------
* Begin Concrete startup.
* ----------------------------------------------------------------------------
*/
$app = require __DIR__ . '/bootstrap/start.php';
/** @var \Concrete\Core\Application\Application $app */
/*
* ----------------------------------------------------------------------------
* Run the runtime.
* ----------------------------------------------------------------------------
*/
$runtime = $app->getRuntime();
if ($response = $runtime->run()) {
/*
* ------------------------------------------------------------------------
* Shut it down.
* ------------------------------------------------------------------------
*/
$app->shutdown();
} else {
return $app;
}
"/var/www/vhosts/janecragg.co.uk/httpdocs/concrete/bootstrap/start.php"
<?php
require 'concrete/dispatcher.php';
"/var/www/vhosts/janecragg.co.uk/httpdocs/concrete/dispatcher.php"
Key | Value |
Version | "9.1.1"
|
Installed Version | "9.1.1"
|
Key | Value |
Version | "7.4.33"
|
Key | Value |
concrete.version | "9.1.1"
|
concrete.version_installed | "9.1.1"
|
concrete.version_db | "20220516191423"
|
concrete.installed | "true"
|
concrete.locale | "en_GB"
|
concrete.charset | "UTF-8"
|
concrete.charset_bom | ""
|
concrete.maintenance_mode | "false"
|
concrete.debug.display_errors | "true"
|
concrete.debug.detail | "debug"
|
concrete.debug.error_reporting | "null"
|
concrete.debug.hide_keys | "[***]"
|
concrete.proxy.host | "null"
|
concrete.proxy.port | "null"
|
concrete.proxy.user | "null"
|
concrete.proxy.password | "***"
|
concrete.upload.extensions | "*.flv;*.jpg;*.gif;*.jpeg;*.ico;*.docx;*.xla;*.png;*.psd;*.swf;*.doc;*.txt;*.xls;*.xlsx;*.csv;*.pdf;*.tiff;*.rtf;*.m4a;*.mov;*.wmv;*.mpeg;*.mpg;*.wav;*.3gp;*.avi;*.m4v;*.mp4;*.mp3;*.qt;*.ppt;*.pptx;*.kml;*.xml;*.svg;*.webm;*.ogg;*.ogv"
|
concrete.upload.extensions_denylist | "*.php;*.php2;*.php3;*.php4;*.php5;*.php7;*.php8;*.phtml;*.phar;*.htaccess;*.pl;*.phpsh;*.pht;*.shtml;*.cgi"
|
concrete.upload.chunking.enabled | "true"
|
concrete.upload.chunking.chunkSize | "null"
|
concrete.export.csv.include_bom | "false"
|
concrete.export.csv.datetime_format | "ATOM"
|
concrete.interface.panel.page_relations | "false"
|
concrete.mail.method | "PHP_MAIL"
|
concrete.mail.methods.smtp.server | "" |
concrete.mail.methods.smtp.port | "" |
concrete.mail.methods.smtp.username | "" |
concrete.mail.methods.smtp.password | "" |
concrete.mail.methods.smtp.encryption | "" |
concrete.mail.methods.smtp.messages_per_connection | "null"
|
concrete.mail.methods.smtp.helo_domain | "localhost"
|
concrete.cache.enabled | "true"
|
concrete.cache.lifetime | "21600"
|
concrete.cache.overrides | "true"
|
concrete.cache.blocks | "true"
|
concrete.cache.assets | "false"
|
concrete.cache.theme_css | "true"
|
concrete.cache.pages | "false"
|
concrete.cache.doctrine_dev_mode | "false"
|
concrete.cache.full_page_lifetime | "default"
|
concrete.cache.full_page_lifetime_value | "null"
|
concrete.cache.full_contents_assets_hash | "false"
|
concrete.cache.directory | "/var/www/vhosts/janecragg.co.uk/httpdocs/application/files/cache"
|
concrete.cache.directory_relative | "null"
|
concrete.cache.page.directory | "/var/www/vhosts/janecragg.co.uk/httpdocs/application/files/cache/pages"
|
concrete.cache.page.adapter | "file"
|
concrete.cache.levels.overrides.drivers.core_ephemeral.class | "\Stash\Driver\Ephemeral"
|
concrete.cache.levels.overrides.drivers.core_filesystem.class | "Concrete\Core\Cache\Driver\FileSystemStashDriver"
|
concrete.cache.levels.overrides.drivers.core_filesystem.options.path | "/var/www/vhosts/janecragg.co.uk/httpdocs/application/files/cache/overrides"
|
concrete.cache.levels.overrides.drivers.core_filesystem.options.dirPermissions | "493"
|
concrete.cache.levels.overrides.drivers.core_filesystem.options.filePermissions | "420"
|
concrete.cache.levels.overrides.drivers.redis.class | "Concrete\Core\Cache\Driver\RedisStashDriver"
|
concrete.cache.levels.overrides.drivers.redis.options.prefix | "concrete_overrides"
|
concrete.cache.levels.overrides.drivers.redis.options.database | "0"
|
concrete.cache.levels.overrides.preferred_driver | "core_filesystem"
|
concrete.cache.levels.expensive.drivers.core_ephemeral.class | "\Stash\Driver\Ephemeral"
|
concrete.cache.levels.expensive.drivers.core_filesystem.class | "Concrete\Core\Cache\Driver\FileSystemStashDriver"
|
concrete.cache.levels.expensive.drivers.core_filesystem.options.path | "/var/www/vhosts/janecragg.co.uk/httpdocs/application/files/cache/expensive"
|
concrete.cache.levels.expensive.drivers.core_filesystem.options.dirPermissions | "493"
|
concrete.cache.levels.expensive.drivers.core_filesystem.options.filePermissions | "420"
|
concrete.cache.levels.expensive.drivers.redis.class | "Concrete\Core\Cache\Driver\RedisStashDriver"
|
concrete.cache.levels.expensive.drivers.redis.options.prefix | "concrete_expensive"
|
concrete.cache.levels.expensive.drivers.redis.options.database | "0"
|
concrete.cache.levels.expensive.preferred_driver | "core_filesystem"
|
concrete.cache.levels.object.drivers.core_ephemeral.class | "\Stash\Driver\Ephemeral"
|
concrete.cache.levels.object.drivers.redis.class | "Concrete\Core\Cache\Driver\RedisStashDriver"
|
concrete.cache.levels.object.drivers.redis.options.prefix | "concrete_object"
|
concrete.cache.levels.object.drivers.redis.options.database | "0"
|
concrete.cache.levels.object.preferred_driver | "core_ephemeral"
|
concrete.cache.clear.thumbnails | "false"
|
concrete.cache.last_cleared | "1648642409"
|
concrete.design.enable_custom | "true"
|
concrete.design.enable_layouts | "true"
|
concrete.processes.logging.method | "none"
|
concrete.processes.logging.file.directory | "" |
concrete.processes.scheduler.enable | "false"
|
concrete.processes.delete_threshold | "7"
|
concrete.messenger.default_bus | "default"
|
concrete.messenger.buses.default.default_middleware | "true"
|
concrete.messenger.routing.Concrete\Core\Foundation\Command\AsyncCommandInterface.0 | "async"
|
concrete.messenger.transports.0 | "Concrete\Core\Messenger\Transport\DefaultAsync\DefaultAsyncTransport"
|
concrete.messenger.transports.1 | "Concrete\Core\Messenger\Transport\DefaultAsync\DefaultSyncTransport"
|
concrete.messenger.consume.method | "app"
|
concrete.messenger.polling_batch.default | "10"
|
concrete.messenger.polling_batch.rescan_file | "5"
|
concrete.messenger.polling_batch.delete_page | "100"
|
concrete.messenger.polling_batch.delete_page_forever | "100"
|
concrete.messenger.polling_batch.copy_page | "10"
|
concrete.events.broadcast.driver | "" |
concrete.log.emails | "true"
|
concrete.log.errors | "true"
|
concrete.log.spam | "false"
|
concrete.log.api | "false"
|
concrete.log.enable_dashboard_report | "true"
|
concrete.log.configuration.mode | "simple"
|
concrete.log.configuration.simple.core_logging_level | "NOTICE"
|
concrete.log.configuration.simple.handler | "database"
|
concrete.log.configuration.simple.file.file | "" |
concrete.jobs.enable_scheduling | "true"
|
concrete.filesystem.temp_directory | "null"
|
concrete.filesystem.permissions.file | "420"
|
concrete.filesystem.permissions.directory | "493"
|
concrete.email.enabled | "true"
|
concrete.email.default.address | "********************************"
|
concrete.email.default.name | "" |
concrete.email.form_block.address | "***"
|
concrete.email.forgot_password.address | "***"
|
concrete.email.forgot_password.name | "null"
|
concrete.email.register_notification.address | "null"
|
concrete.email.register_notification.name | "null"
|
concrete.email.validate_registration.address | "***"
|
concrete.email.validate_registration.name | "null"
|
concrete.email.workflow_notification.address | "***"
|
concrete.email.workflow_notification.name | "null"
|
concrete.form.store_form_submissions | "auto"
|
concrete.marketplace.enabled | "true"
|
concrete.marketplace.request_timeout | "30"
|
concrete.marketplace.token | "null"
|
concrete.marketplace.site_token | "null"
|
concrete.marketplace.intelligent_search | "true"
|
concrete.marketplace.log_requests | "false"
|
concrete.external.intelligent_search_help | "true"
|
concrete.external.news | "true"
|
concrete.misc.user_timezones | "false"
|
concrete.misc.package_backup_directory | "/var/www/vhosts/janecragg.co.uk/httpdocs/application/files/trash"
|
concrete.misc.display_package_delete_button | "true"
|
concrete.misc.enable_progressive_page_reindex | "true"
|
concrete.misc.mobile_theme_id | "0"
|
concrete.misc.sitemap_approve_immediately | "true"
|
concrete.misc.enable_translate_locale_en_us | "false"
|
concrete.misc.page_search_index_lifetime | "259200"
|
concrete.misc.enable_trash_can | "true"
|
concrete.misc.default_jpeg_image_compression | "80"
|
concrete.misc.default_png_image_compression | "9"
|
concrete.misc.default_thumbnail_format | "auto"
|
concrete.misc.inplace_image_operations_limit | "4194304"
|
concrete.misc.basic_thumbnailer_generation_strategy | "now"
|
concrete.misc.require_version_comments | "false"
|
concrete.misc.enable_move_blocktypes_across_sets | "false"
|
concrete.misc.generator_tag_display_in_header | "true"
|
concrete.misc.login_redirect | "DESKTOP"
|
concrete.misc.access_entity_updated | "1658411165"
|
concrete.misc.latest_version | "9.1.2"
|
concrete.theme.compress_preprocessor_output | "true"
|
concrete.theme.generate_less_sourcemap | "false"
|
concrete.updates.enable_auto_update_packages | "false"
|
concrete.updates.enable_permissions_protection | "true"
|
concrete.updates.check_threshold | "172800"
|
concrete.updates.services.get_available_updates | "https://marketplace.concretecms.com/tools/update_core"
|
concrete.updates.services.inspect_update | "https://marketplace.concretecms.com/tools/inspect_update"
|
concrete.updates.skip_core | "false"
|
concrete.paths.trash | "/!trash"
|
concrete.paths.drafts | "/!drafts"
|
concrete.icons.page_template.width | "120"
|
concrete.icons.page_template.height | "90"
|
concrete.icons.theme_thumbnail.width | "120"
|
concrete.icons.theme_thumbnail.height | "90"
|
concrete.icons.file_manager_listing.handle | "file_manager_listing"
|
concrete.icons.file_manager_listing.width | "120"
|
concrete.icons.file_manager_listing.height | "120"
|
concrete.icons.file_manager_detail.handle | "file_manager_detail"
|
concrete.icons.file_manager_detail.width | "500"
|
concrete.icons.file_manager_detail.height | "500"
|
concrete.icons.user_avatar.width | "80"
|
concrete.icons.user_avatar.height | "80"
|
concrete.icons.user_avatar.default | "/concrete/images/avatar_none.png"
|
concrete.file_manager.images.use_exif_data_to_rotate_images | "false"
|
concrete.file_manager.images.manipulation_library | "gd"
|
concrete.file_manager.images.create_high_dpi_thumbnails | "true"
|
concrete.file_manager.images.preview_image_size | "small"
|
concrete.file_manager.images.preview_image_popover | "true"
|
concrete.file_manager.images.svg_sanitization.action | "sanitize"
|
concrete.file_manager.images.svg_sanitization.allowed_tags | "" |
concrete.file_manager.images.svg_sanitization.allowed_attributes | "" |
concrete.file_manager.items_per_page_options.0 | "10"
|
concrete.file_manager.items_per_page_options.1 | "25"
|
concrete.file_manager.items_per_page_options.2 | "50"
|
concrete.file_manager.items_per_page_options.3 | "100"
|
concrete.file_manager.items_per_page_options.4 | "250"
|
concrete.file_manager.results | "50"
|
concrete.search_users.results | "10"
|
concrete.sitemap_xml.file | "sitemap.xml"
|
concrete.sitemap_xml.frequency | "weekly"
|
concrete.sitemap_xml.priority | "0.5"
|
concrete.accessibility.toolbar_titles | "false"
|
concrete.accessibility.toolbar_large_font | "false"
|
concrete.accessibility.toolbar_tooltips | "true"
|
concrete.i18n.choose_language_login | "false"
|
concrete.i18n.auto_install_package_languages | "true"
|
concrete.i18n.community_translation.entry_point | "https://translate.concretecms.org/api"
|
concrete.i18n.community_translation.api_token | "" |
concrete.i18n.community_translation.progress_limit | "60"
|
concrete.i18n.community_translation.cache_lifetime | "3600"
|
concrete.i18n.community_translation.package_url | "https://translate.concretecms.org/translate/package"
|
concrete.urls.concrete | "http://marketplace.concretecms.com"
|
concrete.urls.concrete_secure | "https://marketplace.concretecms.com"
|
concrete.urls.background_feed | "//backgroundimages.concretecms.com/wallpaper"
|
concrete.urls.privacy_policy | "//www.concretecms.com/about/legal/privacy-policy"
|
concrete.urls.background_feed_secure | "https://backgroundimages.concrete5.org/wallpaper"
|
concrete.urls.background_info | "http://backgroundimages.concretecms.com/get_image_data.php"
|
concrete.urls.videos | "https://www.youtube.com/user/concrete5cms/videos"
|
concrete.urls.activity_slots | "https://marketing.concretecms.com/ccm/marketing/activity_slots"
|
concrete.urls.help.developer | "https://documentation.concretecms.org/developers"
|
concrete.urls.help.user | "https://documentation.concretecms.org/user-guide"
|
concrete.urls.help.forum | "https://forums.concretecms.org"
|
concrete.urls.help.remote_search | "https://documentation.concretecms.org/ccm/documentation/remote_search"
|
concrete.urls.paths.site_page | "/private/sites"
|
concrete.urls.paths.marketplace.projects | "/profile/projects/"
|
concrete.urls.paths.marketplace.connect | "/marketplace/connect"
|
concrete.urls.paths.marketplace.connect_success | "/marketplace/connect/-/connected"
|
concrete.urls.paths.marketplace.connect_validate | "/marketplace/connect/-/validate"
|
concrete.urls.paths.marketplace.connect_new_token | "/marketplace/connect/-/generate_token"
|
concrete.urls.paths.marketplace.checkout | "/cart/-/add"
|
concrete.urls.paths.marketplace.purchases | "/marketplace/connect/-/get_available_licenses"
|
concrete.urls.paths.marketplace.item_information | "/marketplace/connect/-/get_item_information"
|
concrete.urls.paths.marketplace.item_free_license | "/marketplace/connect/-/enable_free_license"
|
concrete.urls.paths.marketplace.remote_item_list | "/marketplace/"
|
concrete.white_label.logo | "false"
|
concrete.white_label.name | "false"
|
concrete.white_label.background_image | "feed"
|
concrete.white_label.background_url | "null"
|
concrete.session.name | "CONCRETE"
|
concrete.session.handler | "file"
|
concrete.session.redis.database | "1"
|
concrete.session.save_path | "null"
|
concrete.session.max_lifetime | "7200"
|
concrete.session.gc_probability | "1"
|
concrete.session.gc_divisor | "100"
|
concrete.session.cookie.cookie_path | "false"
|
concrete.session.cookie.cookie_lifetime | "0"
|
concrete.session.cookie.cookie_domain | "false"
|
concrete.session.cookie.cookie_secure | "false"
|
concrete.session.cookie.cookie_httponly | "true"
|
concrete.session.cookie.cookie_raw | "false"
|
concrete.session.cookie.cookie_samesite | "null"
|
concrete.session.remember_me.lifetime | "1209600"
|
concrete.user.registration.enabled | "false"
|
concrete.user.registration.type | "disabled"
|
concrete.user.registration.captcha | "true"
|
concrete.user.registration.email_registration | "false"
|
concrete.user.registration.display_username_field | "true"
|
concrete.user.registration.display_confirm_password_field | "true"
|
concrete.user.registration.validate_email | "false"
|
concrete.user.registration.validate_email_threshold | "5184000"
|
concrete.user.registration.approval | "false"
|
concrete.user.registration.notification | "false"
|
concrete.user.group.badge.default_point_value | "50"
|
concrete.user.username.maximum | "64"
|
concrete.user.username.minimum | "3"
|
concrete.user.username.allowed_characters.boundary | "A-Za-z0-9"
|
concrete.user.username.allowed_characters.middle | "A-Za-z0-9_\."
|
concrete.user.username.allowed_characters.requirement_string | "A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end)."
|
concrete.user.username.allowed_characters.error_string | "A username may only contain letters, numbers, dots (not at the beginning/end), and underscores (not at the beginning/end)."
|
concrete.user.password.maximum | "128"
|
concrete.user.password.minimum | "5"
|
concrete.user.password.required_special_characters | "0"
|
concrete.user.password.required_lower_case | "0"
|
concrete.user.password.required_upper_case | "0"
|
concrete.user.password.reuse | "0"
|
concrete.user.password.hash_algorithm | "2y"
|
concrete.user.password.hash_portable | "false"
|
concrete.user.password.hash_cost_log2 | "12"
|
concrete.user.password.legacy_salt | "" |
concrete.user.email.test_mx_record | "false"
|
concrete.user.email.strict | "true"
|
concrete.user.private_messages.throttle_max | "20"
|
concrete.user.private_messages.throttle_max_timespan | "15"
|
concrete.user.deactivation.enable_login_threshold_deactivation | "false"
|
concrete.user.deactivation.login.threshold | "120"
|
concrete.user.deactivation.authentication_failure.enabled | "false"
|
concrete.user.deactivation.authentication_failure.amount | "5"
|
concrete.user.deactivation.authentication_failure.duration | "300"
|
concrete.user.deactivation.message | "This user is inactive. Please contact us regarding this account."
|
concrete.spam.allowlist_group | "0"
|
concrete.spam.notify_email | "" |
concrete.calendar.colors.text | "#ffffff"
|
concrete.calendar.colors.background | "#3A87AD"
|
concrete.security.session.invalidate_on_user_agent_mismatch | "true"
|
concrete.security.session.invalidate_on_ip_mismatch | "true"
|
concrete.security.session.invalidate_inactive_users.enabled | "false"
|
concrete.security.session.invalidate_inactive_users.time | "300"
|
concrete.security.misc.content_security_policy | "false"
|
concrete.security.misc.strict_transport_security | "false"
|
concrete.security.misc.x_frame_options | "SAMEORIGIN"
|
concrete.permissions.forward_to_login | "true"
|
concrete.permissions.model | "simple"
|
concrete.seo.exclude_words | "a, an, as, at, before, but, by, for, from, is, in, into, like, of, off, on, onto, per, since, than, the, this, that, to, up, via, with"
|
concrete.seo.url_rewriting | "false"
|
concrete.seo.url_rewriting_all | "false"
|
concrete.seo.redirect_to_canonical_url | "false"
|
concrete.seo.canonical_url | "null"
|
concrete.seo.canonical_url_alternative | "null"
|
concrete.seo.trailing_slash | "false"
|
concrete.seo.title_format | "%2$s :: %1$s"
|
concrete.seo.title_segment_separator | " :: "
|
concrete.seo.page_path_separator | "-"
|
concrete.seo.group_name_separator | " / "
|
concrete.seo.segment_max_length | "128"
|
concrete.seo.paging_string | "ccm_paging_p"
|
concrete.statistics.track_downloads | "true"
|
concrete.limits.sitemap_pages | "100"
|
concrete.limits.page_search_index_batch | "200"
|
concrete.limits.job_queue_batch | "10"
|
concrete.limits.style_customizer.size_min | "-50"
|
concrete.limits.style_customizer.size_max | "200"
|
concrete.page.search.always_reindex | "false"
|
concrete.composer.idle_timeout | "1"
|
concrete.api.enabled | "false"
|
concrete.api.grant_types.client_credentials | "true"
|
concrete.api.grant_types.authorization_code | "true"
|
concrete.api.grant_types.password_credentials | "false"
|
concrete.api.grant_types.refresh_token | "true"
|
concrete.notification.server_sent_events | "false"
|
concrete.mutex.semaphore.priority | "100"
|
concrete.mutex.semaphore.class | "Concrete\Core\System\Mutex\SemaphoreMutex"
|
concrete.mutex.file_lock.priority | "50"
|
concrete.mutex.file_lock.class | "Concrete\Core\System\Mutex\FileLockMutex"
|
concrete.version_db_installed | "20220516191423"
|
Key | Value |
ufaq | "30e-per-year"
|
Key | Value |
USER | "janecraggweb"
|
HOME | "/var/www/vhosts/janecragg.co.uk"
|
SCRIPT_NAME | "/index.php"
|
REQUEST_URI | "/?ufaq=30e-per-year"
|
QUERY_STRING | "ufaq=30e-per-year"
|
REQUEST_METHOD | "GET"
|
SERVER_PROTOCOL | "HTTP/1.0"
|
GATEWAY_INTERFACE | "CGI/1.1"
|
REMOTE_PORT | "39438"
|
SCRIPT_FILENAME | "/var/www/vhosts/janecragg.co.uk/httpdocs/index.php"
|
SERVER_ADMIN | "root@localhost"
|
CONTEXT_DOCUMENT_ROOT | "/var/www/vhosts/janecragg.co.uk/httpdocs"
|
CONTEXT_PREFIX | "" |
REQUEST_SCHEME | "https"
|
DOCUMENT_ROOT | "/var/www/vhosts/janecragg.co.uk/httpdocs"
|
REMOTE_ADDR | "3.89.56.228"
|
SERVER_PORT | "443"
|
SERVER_ADDR | "10.10.27.151"
|
SERVER_NAME | "www.janecragg.co.uk"
|
SERVER_SOFTWARE | "Apache"
|
SERVER_SIGNATURE | "" |
PATH | "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
|
HTTP_USER_AGENT | "claudebot"
|
HTTP_ACCEPT | "*/*"
|
HTTP_X_PROXY_ID | "prx1.i-com.co"
|
HTTP_X_FORWARDED_PROTO | "https"
|
HTTP_CONNECTION | "close"
|
HTTP_X_ACCEL_INTERNAL | "/internal-nginx-static-location"
|
HTTP_X_FORWARDED_FOR | "3.89.56.228"
|
HTTP_X_REAL_IP | "3.89.56.228"
|
HTTP_HOST | "www.janecragg.co.uk"
|
proxy-nokeepalive | "1"
|
HTTPS | "on"
|
PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY | "0"
|
PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY | "0"
|
PERL5LIB | "/usr/share/awstats/lib:/usr/share/awstats/plugins"
|
UNIQUE_ID | "ZgYdcdAxPoDemGFb22NECgAAAgg"
|
FCGI_ROLE | "RESPONDER"
|
PHP_SELF | "/index.php"
|
REQUEST_TIME_FLOAT | 1711676785.5654
|
REQUEST_TIME | 1711676785
|