Warning: mkdir(): File exists in /usr/local/vufind/config/application.config.php on line 41

Warning: mkdir(): File exists in /usr/local/vufind/config/application.config.php on line 50
Whoops! There was an error.
Laminas \ ServiceManager \ Exception \ ServiceNotCreatedException (2)
Service with name "Laminas\Session\SessionManager" could not be created. Reason: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time
Previous exceptions
  • ini_set(): Headers already sent. You cannot change the session module's ini settings at this time (2)
Laminas\ServiceManager\Exception\ServiceNotCreatedException thrown with message "Service with name "Laminas\Session\SessionManager" could not be created. Reason: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time" Stacktrace: #15 Laminas\ServiceManager\Exception\ServiceNotCreatedException in /usr/local/vufind/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:772 #14 Whoops\Exception\ErrorException in /usr/local/vufind/vendor/laminas/laminas-session/src/Config/SessionConfig.php:147 #13 ini_set in /usr/local/vufind/vendor/laminas/laminas-session/src/Config/SessionConfig.php:147 #12 Laminas\Session\Config\SessionConfig:setStorageOption in /usr/local/vufind/vendor/laminas/laminas-session/src/Config/StandardConfig.php:536 #11 Laminas\Session\Config\StandardConfig:setCookieHttpOnly in /usr/local/vufind/vendor/laminas/laminas-session/src/Config/StandardConfig.php:113 #10 Laminas\Session\Config\StandardConfig:setOptions in /usr/local/vufind/module/VuFind/src/VuFind/Session/ManagerFactory.php:147 #9 VuFind\Session\ManagerFactory:__invoke in /usr/local/vufind/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:765 #8 Laminas\ServiceManager\ServiceManager:doCreate in /usr/local/vufind/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:201 #7 Laminas\ServiceManager\ServiceManager:get in /usr/local/vufind/module/VuFind/src/VuFind/Auth/ManagerFactory.php:89 #6 VuFind\Auth\ManagerFactory:__invoke in /usr/local/vufind/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:765 #5 Laminas\ServiceManager\ServiceManager:doCreate in /usr/local/vufind/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:201 #4 Laminas\ServiceManager\ServiceManager:get in /usr/local/vufind/module/VuFind/src/VuFind/Bootstrapper.php:322 #3 VuFind\Bootstrapper:VuFind\{closure} in /usr/local/vufind/vendor/laminas/laminas-eventmanager/src/EventManager.php:321 #2 Laminas\EventManager\EventManager:triggerListeners in /usr/local/vufind/vendor/laminas/laminas-eventmanager/src/EventManager.php:178 #1 Laminas\EventManager\EventManager:triggerEventUntil in /usr/local/vufind/vendor/laminas/laminas-mvc/src/Application.php:331 #0 Laminas\Mvc\Application:run in /usr/local/vufind/public/index.php:88
15
Laminas\ServiceManager\Exception\ServiceNotCreatedException
/vendor/laminas/laminas-servicemanager/src/ServiceManager.php772
14
Whoops\Exception\ErrorException
/vendor/laminas/laminas-session/src/Config/SessionConfig.php147
13
ini_set
/vendor/laminas/laminas-session/src/Config/SessionConfig.php147
12
Laminas\Session\Config\SessionConfig setStorageOption
/vendor/laminas/laminas-session/src/Config/StandardConfig.php536
11
Laminas\Session\Config\StandardConfig setCookieHttpOnly
/vendor/laminas/laminas-session/src/Config/StandardConfig.php113
10
Laminas\Session\Config\StandardConfig setOptions
/module/VuFind/src/VuFind/Session/ManagerFactory.php147
9
VuFind\Session\ManagerFactory __invoke
/vendor/laminas/laminas-servicemanager/src/ServiceManager.php765
8
Laminas\ServiceManager\ServiceManager doCreate
/vendor/laminas/laminas-servicemanager/src/ServiceManager.php201
7
Laminas\ServiceManager\ServiceManager get
/module/VuFind/src/VuFind/Auth/ManagerFactory.php89
6
VuFind\Auth\ManagerFactory __invoke
/vendor/laminas/laminas-servicemanager/src/ServiceManager.php765
5
Laminas\ServiceManager\ServiceManager doCreate
/vendor/laminas/laminas-servicemanager/src/ServiceManager.php201
4
Laminas\ServiceManager\ServiceManager get
/module/VuFind/src/VuFind/Bootstrapper.php322
3
VuFind\Bootstrapper VuFind\{closure}
/vendor/laminas/laminas-eventmanager/src/EventManager.php321
2
Laminas\EventManager\EventManager triggerListeners
/vendor/laminas/laminas-eventmanager/src/EventManager.php178
1
Laminas\EventManager\EventManager triggerEventUntil
/vendor/laminas/laminas-mvc/src/Application.php331
0
Laminas\Mvc\Application run
/public/index.php88
     * @return mixed
     * @throws ServiceNotFoundException if unable to resolve the service.
     * @throws ServiceNotCreatedException if an exception is raised when
     *     creating a service.
     * @throws ContainerException if any other error occurs
     */
    private function doCreate($resolvedName, array $options = null)
    {
        try {
            if (! isset($this->delegators[$resolvedName])) {
                // Let's create the service by fetching the factory
                $factory = $this->getFactory($resolvedName);
                $object  = $factory($this->creationContext, $resolvedName, $options);
            } else {
                $object = $this->createDelegatorFromName($resolvedName, $options);
            }
        } catch (ContainerException $exception) {
            throw $exception;
        } catch (Exception $exception) {
            throw new ServiceNotCreatedException(sprintf(
                'Service with name "%s" could not be created. Reason: %s',
                $resolvedName,
                $exception->getMessage()
            ), (int) $exception->getCode(), $exception);
        }
 
        foreach ($this->initializers as $initializer) {
            $initializer($this->creationContext, $object);
        }
 
        return $object;
    }
 
    /**
     * Create the lazy services delegator factory.
     *
     * Creates the lazy services delegator factory based on the lazy_services
     * configuration present.
     *
     * @return Proxy\LazyServiceFactory
                // introduced in PHP 7.2. Do not alter running INI setting.
                return $this;
            default:
                $key = 'session.' . $storageName;
                break;
        }
 
        $iniGet       = ini_get($key);
        $storageValue = (string) $storageValue;
        if (false !== $iniGet && (string) $iniGet === $storageValue) {
            return $this;
        }
 
        $sessionRequiresRestart = false;
        if (session_status() == PHP_SESSION_ACTIVE) {
            session_write_close();
            $sessionRequiresRestart = true;
        }
 
        $result = ini_set($key, $storageValue);
 
        if ($sessionRequiresRestart) {
            session_start();
        }
 
        if (false === $result) {
            throw new Exception\InvalidArgumentException(
                "'{$key}' is not a valid sessions-related ini setting."
            );
        }
        return $this;
    }
 
    /**
     * Retrieve a storage option from a backend configuration store
     *
     * Used to retrieve default values from a backend configuration store.
     *
     * @param  string $storageOption
     * @return mixed
Exception message: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time
                // introduced in PHP 7.2. Do not alter running INI setting.
                return $this;
            default:
                $key = 'session.' . $storageName;
                break;
        }
 
        $iniGet       = ini_get($key);
        $storageValue = (string) $storageValue;
        if (false !== $iniGet && (string) $iniGet === $storageValue) {
            return $this;
        }
 
        $sessionRequiresRestart = false;
        if (session_status() == PHP_SESSION_ACTIVE) {
            session_write_close();
            $sessionRequiresRestart = true;
        }
 
        $result = ini_set($key, $storageValue);
 
        if ($sessionRequiresRestart) {
            session_start();
        }
 
        if (false === $result) {
            throw new Exception\InvalidArgumentException(
                "'{$key}' is not a valid sessions-related ini setting."
            );
        }
        return $this;
    }
 
    /**
     * Retrieve a storage option from a backend configuration store
     *
     * Used to retrieve default values from a backend configuration store.
     *
     * @param  string $storageOption
     * @return mixed
    {
        if (null === $this->cookieSecure) {
            $this->cookieSecure = $this->getStorageOption('cookie_secure');
        }
        return $this->cookieSecure;
    }
 
    /**
     * Set session.cookie_httponly
     *
     * case sensitive method lookups in setOptions means this method has an
     * unusual casing
     *
     * @param  bool $cookieHttpOnly
     * @return StandardConfig
     */
    public function setCookieHttpOnly($cookieHttpOnly)
    {
        $this->cookieHttpOnly = (bool) $cookieHttpOnly;
        $this->setStorageOption('cookie_httponly', $this->cookieHttpOnly);
        return $this;
    }
 
    /**
     * Get session.cookie_httponly
     *
     * @return bool
     */
    public function getCookieHttpOnly()
    {
        if (null === $this->cookieHttpOnly) {
            $this->cookieHttpOnly = $this->getStorageOption('cookie_httponly');
        }
        return $this->cookieHttpOnly;
    }
 
    /**
     * Set session.use_cookies
     *
     * @param  bool $useCookies
     * otherwise, a standard option will be set with the value provided via
     * {@link setOption()}.
     *
     * @param  array|Traversable $options
     * @return StandardConfig
     * @throws Exception\InvalidArgumentException
     */
    public function setOptions($options)
    {
        if (! is_array($options) && ! $options instanceof Traversable) {
            throw new Exception\InvalidArgumentException(sprintf(
                'Parameter provided to %s must be an array or Traversable',
                __METHOD__
            ));
        }
 
        foreach ($options as $key => $value) {
            $setter = 'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key)));
            if (method_exists($this, $setter)) {
                $this->{$setter}($value);
            } else {
                $this->setOption($key, $value);
            }
        }
        return $this;
    }
 
    /**
     * Get all options set
     *
     * @return array
     */
    public function getOptions()
    {
        return $this->options;
    }
 
    /**
     * Set an individual option
     *
     * @param string             $requestedName Service being created
     * @param null|array         $options       Extra options (optional)
     *
     * @return object
     *
     * @throws ServiceNotFoundException if unable to resolve the service.
     * @throws ServiceNotCreatedException if an exception is raised when
     * creating a service.
     * @throws ContainerException if any other error occurs
     */
    public function __invoke(ContainerInterface $container, $requestedName,
        array $options = null
    ) {
        if (!empty($options)) {
            throw new \Exception('Unexpected options passed to factory.');
        }
 
        // Build configuration:
        $sessionConfig = new \Laminas\Session\Config\SessionConfig();
        $sessionConfig->setOptions($this->getOptions($container));
 
        // Build session manager and attach handler:
        $sessionManager = new $requestedName($sessionConfig);
        $sessionManager->setSaveHandler($this->getHandler($container));
 
        // Start up the session:
        $sessionManager->start();
 
        // Verify that any existing session has the correct path to avoid using
        // a cookie from a service higher up in the path hierarchy.
        $storage = new \Laminas\Session\Container('SessionState', $sessionManager);
        if (null !== $storage->cookiePath) {
            if ($storage->cookiePath != $sessionConfig->getCookiePath()) {
                // Disable writes temporarily to keep the existing session intact
                $sessionManager->getSaveHandler()->disableWrites();
                // Regenerate session ID and reset the session data
                $sessionManager->regenerateId(false);
                session_unset();
                $sessionManager->getSaveHandler()->enableWrites();
                $storage->cookiePath = $sessionConfig->getCookiePath();
    /**
     * Create a new instance with an already resolved name
     *
     * This is a highly performance sensitive method, do not modify if you have not benchmarked it carefully
     *
     * @param  string     $resolvedName
     * @param  null|array $options
     * @return mixed
     * @throws ServiceNotFoundException if unable to resolve the service.
     * @throws ServiceNotCreatedException if an exception is raised when
     *     creating a service.
     * @throws ContainerException if any other error occurs
     */
    private function doCreate($resolvedName, array $options = null)
    {
        try {
            if (! isset($this->delegators[$resolvedName])) {
                // Let's create the service by fetching the factory
                $factory = $this->getFactory($resolvedName);
                $object  = $factory($this->creationContext, $resolvedName, $options);
            } else {
                $object = $this->createDelegatorFromName($resolvedName, $options);
            }
        } catch (ContainerException $exception) {
            throw $exception;
        } catch (Exception $exception) {
            throw new ServiceNotCreatedException(sprintf(
                'Service with name "%s" could not be created. Reason: %s',
                $resolvedName,
                $exception->getMessage()
            ), (int) $exception->getCode(), $exception);
        }
 
        foreach ($this->initializers as $initializer) {
            $initializer($this->creationContext, $object);
        }
 
        return $object;
    }
 
        // is the fastest method).
        if (isset($this->services[$requestedName])) {
            return $this->services[$requestedName];
        }
 
        $name = isset($this->resolvedAliases[$name]) ? $this->resolvedAliases[$name] : $name;
 
        // Next, if the alias should be shared, and we have cached the resolved
        // service, use it.
        if ($requestedName !== $name
            && (! isset($this->shared[$requestedName]) || $this->shared[$requestedName])
            && isset($this->services[$name])
        ) {
            $this->services[$requestedName] = $this->services[$name];
            return $this->services[$name];
        }
 
        // At this point, we need to create the instance; we use the resolved
        // name for that.
        $object = $this->doCreate($name);
 
        // Cache it for later, if it is supposed to be shared.
        if (($this->sharedByDefault && ! isset($this->shared[$name]))
            || (isset($this->shared[$name]) && $this->shared[$name])
        ) {
            $this->services[$name] = $object;
        }
 
        // Also do so for aliases; this allows sharing based on service name used.
        if ($requestedName !== $name
            && (($this->sharedByDefault && ! isset($this->shared[$requestedName]))
                || (isset($this->shared[$requestedName]) && $this->shared[$requestedName]))
        ) {
            $this->services[$requestedName] = $object;
        }
 
        return $object;
    }
 
    /**
        try {
            // Check if the catalog wants to hide the login link, and override
            // the configuration if necessary.
            $catalog = $container->get(\VuFind\ILS\Connection::class);
            if ($catalog->loginIsHidden()) {
                $config = new \Laminas\Config\Config($config->toArray(), true);
                $config->Authentication->hideLogin = true;
                $config->setReadOnly();
            }
        } catch (\Exception $e) {
            // Ignore exceptions; if the catalog is broken, throwing an exception
            // here may interfere with UI rendering. If we ignore it now, it will
            // still get handled appropriately later in processing.
            error_log($e->getMessage());
        }
 
        // Load remaining dependencies:
        $userTable = $container->get(\VuFind\Db\Table\PluginManager::class)
            ->get('user');
        $sessionManager = $container->get(\Laminas\Session\SessionManager::class);
        $pm = $container->get(\VuFind\Auth\PluginManager::class);
        $cookies = $container->get(\VuFind\Cookie\CookieManager::class);
        $csrf = $container->get(\VuFind\Validator\Csrf::class);
 
        // Build the object and make sure account credentials haven't expired:
        $manager = new $requestedName(
            $config, $userTable, $sessionManager, $pm, $cookies, $csrf
        );
        $manager->checkForExpiredCredentials();
        return $manager;
    }
}
 
    /**
     * Create a new instance with an already resolved name
     *
     * This is a highly performance sensitive method, do not modify if you have not benchmarked it carefully
     *
     * @param  string     $resolvedName
     * @param  null|array $options
     * @return mixed
     * @throws ServiceNotFoundException if unable to resolve the service.
     * @throws ServiceNotCreatedException if an exception is raised when
     *     creating a service.
     * @throws ContainerException if any other error occurs
     */
    private function doCreate($resolvedName, array $options = null)
    {
        try {
            if (! isset($this->delegators[$resolvedName])) {
                // Let's create the service by fetching the factory
                $factory = $this->getFactory($resolvedName);
                $object  = $factory($this->creationContext, $resolvedName, $options);
            } else {
                $object = $this->createDelegatorFromName($resolvedName, $options);
            }
        } catch (ContainerException $exception) {
            throw $exception;
        } catch (Exception $exception) {
            throw new ServiceNotCreatedException(sprintf(
                'Service with name "%s" could not be created. Reason: %s',
                $resolvedName,
                $exception->getMessage()
            ), (int) $exception->getCode(), $exception);
        }
 
        foreach ($this->initializers as $initializer) {
            $initializer($this->creationContext, $object);
        }
 
        return $object;
    }
 
        // is the fastest method).
        if (isset($this->services[$requestedName])) {
            return $this->services[$requestedName];
        }
 
        $name = isset($this->resolvedAliases[$name]) ? $this->resolvedAliases[$name] : $name;
 
        // Next, if the alias should be shared, and we have cached the resolved
        // service, use it.
        if ($requestedName !== $name
            && (! isset($this->shared[$requestedName]) || $this->shared[$requestedName])
            && isset($this->services[$name])
        ) {
            $this->services[$requestedName] = $this->services[$name];
            return $this->services[$name];
        }
 
        // At this point, we need to create the instance; we use the resolved
        // name for that.
        $object = $this->doCreate($name);
 
        // Cache it for later, if it is supposed to be shared.
        if (($this->sharedByDefault && ! isset($this->shared[$name]))
            || (isset($this->shared[$name]) && $this->shared[$name])
        ) {
            $this->services[$name] = $object;
        }
 
        // Also do so for aliases; this allows sharing based on service name used.
        if ($requestedName !== $name
            && (($this->sharedByDefault && ! isset($this->shared[$requestedName]))
                || (isset($this->shared[$requestedName]) && $this->shared[$requestedName]))
        ) {
            $this->services[$requestedName] = $object;
        }
 
        return $object;
    }
 
    /**
 
            // Make sure language code is valid, reset to default if bad:
            if (!in_array($language, array_keys($config->Languages->toArray()))) {
                $language = $config->Site->language;
            }
            try {
                $translator = $sm->get(\Laminas\Mvc\I18n\Translator::class);
                $translator->setLocale($language);
                $this->addLanguageToTranslator($translator, $language);
            } catch (\Laminas\Mvc\I18n\Exception\BadMethodCallException $e) {
                if (!extension_loaded('intl')) {
                    throw new \Exception(
                        'Translation broken due to missing PHP intl extension.'
                        . ' Please disable translation or install the extension.'
                    );
                }
            }
 
            // Store last selected language in user account, if applicable:
            if (($user = $sm->get(\VuFind\Auth\Manager::class)->isLoggedIn())
                && $user->last_language != $language
            ) {
                $user->updateLastLanguage($language);
            }
 
            // Send key values to view:
            $viewModel = $sm->get('ViewManager')->getViewModel();
            $viewModel->setVariable('userLang', $language);
            $viewModel->setVariable('allLangs', $config->Languages);
            $rtlLangs = isset($config->LanguageSettings->rtl_langs)
                ? array_map(
                    'trim', explode(',', $config->LanguageSettings->rtl_langs)
                ) : [];
            $viewModel->setVariable('rtl', in_array($language, $rtlLangs));
        };
        $this->events->attach('dispatch.error', $callback, 10000);
        $this->events->attach('dispatch', $callback, 10000);
    }
 
    /**
        }
 
        if ($this->sharedManager) {
            foreach ($this->sharedManager->getListeners($this->identifiers, $name) as $priority => $listeners) {
                $listOfListenersByPriority[$priority][] = $listeners;
            }
        }
 
        // Sort by priority in reverse order
        krsort($listOfListenersByPriority);
 
        // Initial value of stop propagation flag should be false
        $event->stopPropagation(false);
 
        // Execute listeners
        $responses = new ResponseCollection();
        foreach ($listOfListenersByPriority as $listOfListeners) {
            foreach ($listOfListeners as $listeners) {
                foreach ($listeners as $listener) {
                    $response = $listener($event);
                    $responses->push($response);
 
                    // If the event was asked to stop propagating, do so
                    if ($event->propagationIsStopped()) {
                        $responses->setStopped(true);
                        return $responses;
                    }
 
                    // If the result causes our validation callback to return true,
                    // stop propagation
                    if ($callback && $callback($response)) {
                        $responses->setStopped(true);
                        return $responses;
                    }
                }
            }
        }
 
        return $responses;
    }
            $event->setParams($argv);
        }
 
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEvent(EventInterface $event)
    {
        return $this->triggerListeners($event);
    }
 
    /**
     * @inheritDoc
     */
    public function triggerEventUntil(callable $callback, EventInterface $event)
    {
        return $this->triggerListeners($event, $callback);
    }
 
    /**
     * @inheritDoc
     */
    public function attach($eventName, callable $listener, $priority = 1)
    {
        if (! is_string($eventName)) {
            throw new Exception\InvalidArgumentException(sprintf(
                '%s expects a string for the event; received %s',
                __METHOD__,
                (is_object($eventName) ? get_class($eventName) : gettype($eventName))
            ));
        }
 
        $this->events[$eventName][(int) $priority][0][] = $listener;
        return $listener;
    }
 
    /**
            $response = $result->last();
            if ($response instanceof ResponseInterface) {
                $event->setName(MvcEvent::EVENT_FINISH);
                $event->setTarget($this);
                $event->setResponse($response);
                $event->stopPropagation(false); // Clear before triggering
                $events->triggerEvent($event);
                $this->response = $response;
                return $this;
            }
        }
 
        if ($event->getError()) {
            return $this->completeRequest($event);
        }
 
        // Trigger dispatch event
        $event->setName(MvcEvent::EVENT_DISPATCH);
        $event->stopPropagation(false); // Clear before triggering
        $result = $events->triggerEventUntil($shortCircuit, $event);
 
        // Complete response
        $response = $result->last();
        if ($response instanceof ResponseInterface) {
            $event->setName(MvcEvent::EVENT_FINISH);
            $event->setTarget($this);
            $event->setResponse($response);
            $event->stopPropagation(false); // Clear before triggering
            $events->triggerEvent($event);
            $this->response = $response;
            return $this;
        }
 
        $response = $this->response;
        $event->setResponse($response);
        return $this->completeRequest($event);
    }
 
    /**
     * Complete the request
$pathParts[] = APPLICATION_PATH . '/vendor';
$pathParts[] = get_include_path();
set_include_path(implode(PATH_SEPARATOR, $pathParts));
 
// Composer autoloading
if (file_exists('vendor/autoload.php')) {
    $loader = include 'vendor/autoload.php';
}
 
if (!class_exists('Laminas\Loader\AutoloaderFactory')) {
    throw new RuntimeException('Unable to load Laminas autoloader.');
}
 
// Run the application!
$app = Laminas\Mvc\Application::init(require 'config/application.config.php');
if (PHP_SAPI === 'cli') {
    return $app->getServiceManager()
        ->get(\VuFindConsole\ConsoleRunner::class)->run();
} else {
    $app->run();
}
 

Environment & details:

Key Value
filter Array ( [0] => contributor_facet:"Anthony, Susan B." [1] => contributor_facet:"Davies, Emily" [2] => institution:"FrauenMediaTurm" )
lookfor "Käppeli, Anne-Marie"
type AllFields
empty
empty
empty
empty
Key Value
VUFIND_LOCAL_MODULES Ida
HOSTNAME d895533d4f73
APPLICATION_ENV development
PHP_INI_DIR /usr/local/etc/php
VUFIND_HOME /usr/local/vufind
SHLVL 1
HOME /home/www-data
PHP_LDFLAGS -Wl,-O1 -pie
PHP_CFLAGS -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_VERSION 7.4.29
GPG_KEYS 42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312
PHP_CPPFLAGS -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_ASC_URL https://www.php.net/distributions/php-7.4.29.tar.xz.asc
VUFIND_CACHE_DIR /var/cache/vufind
PHP_URL https://www.php.net/distributions/php-7.4.29.tar.xz
VUFIND_ENV development
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
VUFIND_APPLICATION_PATH /usr/local/vufind
PHPIZE_DEPS autoconf dpkg-dev dpkg file g++ gcc libc-dev make pkgconf re2c
PWD /usr/local/vufind
PHP_SHA256 7d0f07869f33311ff3fe1138dc0d6c0d673c37fcb737eaed2c6c10a949f1aed6
VUFIND_LOCAL_DIR /usr/local/vufind/ida
USER www-data
HTTP_X_REAL_IP 3.144.1.225
HTTP_X_FORWARDED_SERVER 3631eee668cd
HTTP_X_FORWARDED_PROTO https
HTTP_X_FORWARDED_PORT 443
HTTP_X_FORWARDED_HOST stage.meta-katalog.eu
HTTP_X_FORWARDED_FOR 3.144.1.225
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_ACCEPT */*
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_HOST stage.meta-katalog.eu
SCRIPT_FILENAME /usr/local/vufind/public/index.php
REDIRECT_STATUS 200
SERVER_NAME stage.meta-katalog.eu
SERVER_PORT 80
SERVER_ADDR 172.27.0.18
REMOTE_PORT 36088
REMOTE_ADDR 172.27.0.17
SERVER_SOFTWARE nginx/1.27.0
GATEWAY_INTERFACE CGI/1.1
REQUEST_SCHEME http
SERVER_PROTOCOL HTTP/1.1
DOCUMENT_ROOT /etc/nginx/html
DOCUMENT_URI /index.php
REQUEST_URI /Search/Results?filter%5B%5D=contributor_facet%3A%22Anthony%2C+Susan+B.%22&filter%5B%5D=contributor_facet%3A%22Davies%2C+Emily%22&filter%5B%5D=institution%3A%22FrauenMediaTurm%22&lookfor=%22K%C3%A4ppeli%2C+Anne-Marie%22&type=AllFields
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING filter%5B%5D=contributor_facet%3A%22Anthony%2C+Susan+B.%22&filter%5B%5D=contributor_facet%3A%22Davies%2C+Emily%22&filter%5B%5D=institution%3A%22FrauenMediaTurm%22&lookfor=%22K%C3%A4ppeli%2C+Anne-Marie%22&type=AllFields
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1718195076.8252
REQUEST_TIME 1718195076
argv Array ( [0] => filter%5B%5D=contributor_facet%3A%22Anthony%2C [1] => Susan [2] => B.%22&filter%5B%5D=contributor_facet%3A%22Davies%2C [3] => Emily%22&filter%5B%5D=institution%3A%22FrauenMediaTurm%22&lookfor=%22K%C3%A4ppeli%2C [4] => Anne-Marie%22&type=AllFields )
argc 5
Key Value
VUFIND_LOCAL_MODULES Ida
HOSTNAME d895533d4f73
APPLICATION_ENV development
PHP_INI_DIR /usr/local/etc/php
VUFIND_HOME /usr/local/vufind
SHLVL 1
HOME /home/www-data
PHP_LDFLAGS -Wl,-O1 -pie
PHP_CFLAGS -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_VERSION 7.4.29
GPG_KEYS 42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312
PHP_CPPFLAGS -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_ASC_URL https://www.php.net/distributions/php-7.4.29.tar.xz.asc
VUFIND_CACHE_DIR /var/cache/vufind
PHP_URL https://www.php.net/distributions/php-7.4.29.tar.xz
VUFIND_ENV development
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
VUFIND_APPLICATION_PATH /usr/local/vufind
PHPIZE_DEPS autoconf dpkg-dev dpkg file g++ gcc libc-dev make pkgconf re2c
PWD /usr/local/vufind
PHP_SHA256 7d0f07869f33311ff3fe1138dc0d6c0d673c37fcb737eaed2c6c10a949f1aed6
VUFIND_LOCAL_DIR /usr/local/vufind/ida
USER www-data
HTTP_X_REAL_IP 3.144.1.225
HTTP_X_FORWARDED_SERVER 3631eee668cd
HTTP_X_FORWARDED_PROTO https
HTTP_X_FORWARDED_PORT 443
HTTP_X_FORWARDED_HOST stage.meta-katalog.eu
HTTP_X_FORWARDED_FOR 3.144.1.225
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_ACCEPT */*
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_HOST stage.meta-katalog.eu
SCRIPT_FILENAME /usr/local/vufind/public/index.php
REDIRECT_STATUS 200
SERVER_NAME stage.meta-katalog.eu
SERVER_PORT 80
SERVER_ADDR 172.27.0.18
REMOTE_PORT 36088
REMOTE_ADDR 172.27.0.17
SERVER_SOFTWARE nginx/1.27.0
GATEWAY_INTERFACE CGI/1.1
REQUEST_SCHEME http
SERVER_PROTOCOL HTTP/1.1
DOCUMENT_ROOT /etc/nginx/html
DOCUMENT_URI /index.php
REQUEST_URI /Search/Results?filter%5B%5D=contributor_facet%3A%22Anthony%2C+Susan+B.%22&filter%5B%5D=contributor_facet%3A%22Davies%2C+Emily%22&filter%5B%5D=institution%3A%22FrauenMediaTurm%22&lookfor=%22K%C3%A4ppeli%2C+Anne-Marie%22&type=AllFields
SCRIPT_NAME /index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING filter%5B%5D=contributor_facet%3A%22Anthony%2C+Susan+B.%22&filter%5B%5D=contributor_facet%3A%22Davies%2C+Emily%22&filter%5B%5D=institution%3A%22FrauenMediaTurm%22&lookfor=%22K%C3%A4ppeli%2C+Anne-Marie%22&type=AllFields
FCGI_ROLE RESPONDER
0. Whoops\Handler\PrettyPageHandler