This guide walks through a complete VuFind installation on a Linux server, from confirming system requirements through first-run verification. Two installation methods are covered: a packaged release (recommended for production) and a Git checkout (recommended for development or when you need unreleased changes). Both methods end with the same Apache configuration andDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/vufind-org/vufind/llms.txt
Use this file to discover all available pages before exploring further.
install.php step.
System requirements
VuFind requires the following software to be installed before you begin:| Component | Minimum version | Notes |
|---|---|---|
| PHP | 8.2 | See required extensions below |
| Apache | 2.4 | mod_rewrite required; Nginx supported but not covered by install.php |
| Java | 11 | Required by the bundled Apache Solr |
| MySQL or MariaDB | 5.7 / 10.3 | For user accounts, sessions, and saved searches |
| Composer | 2.x | Required only for Git checkout installations |
Installation
- Packaged release
- Git checkout
Packaged releases are available at vufind.org/vufind/downloads.html. They include all Composer-managed PHP dependencies, so you do not need Composer installed on the server.
The installer in detail
install.php is a Symfony Console command implemented in module/VuFindConsole/src/VuFindConsole/Command/Install/InstallCommand.php. It is interactive by default and accepts these options:
| Option | Description |
|---|---|
--use-defaults | Accept all defaults without prompting |
--non-interactive | Use provided options or defaults; no prompts |
--overridedir=PATH | Directory for local config, cache, harvest, and import files (default: local/) |
--basepath=PATH | URL base path for VuFind (default: /vufind) |
--module-name=NAME | Name of a custom PHP module for local code overrides |
--solr-port=PORT | Port Solr will listen on (default: 8983) |
--multisite=MODE | Enable multi-site mode: directory or host |
--skip-backups | Overwrite existing files without creating .bak backups |
--no-apache-help | Suppress Apache configuration instructions in output |
local/httpd-vufind.conf— ApacheIncludefragment withAlias,Directory, andSetEnvdirectivesenv.sh— ExportsVUFIND_HOME,VUFIND_LOCAL_DIR,VUFIND_LOCAL_MODULES, andSOLR_PORTenv.bat— Windows equivalent ofenv.shlocal/import/import.properties— SolrMarc import configuration with paths resolved to your installationlocal/import/import_auth.properties— SolrMarc import configuration for authority records
Configure Apache
After the installer runs, load the generated configuration file into Apache.Set environment variables
For CLI tools (indexing, harvesting, maintenance commands) to locate VuFind, sourceenv.sh in every shell session or add it to your system profile:
Start Solr
Set file permissions
The web server process needs write access to the cache and configuration directories in your override directory:First run and verification
Open a browser and navigate to your VuFind URL (by defaulthttp://your-server/vufind). You should see the auto-configuration page that confirms Apache, PHP, and Solr are connected.
Once you have reviewed the auto-configuration output, disable it in local/config/vufind/config.ini:
[Site] settings to review in the same file:
generator meta tag in config.ini confirms which version is running:
Troubleshooting common issues
White page or 500 error after Apache restart
White page or 500 error after Apache restart
Check the Apache error log for the actual PHP error:Common causes:
- A required PHP extension is missing. Run
php -mand compare against the extension list above. vendor/autoload.phpis absent, which meanscomposer installhas not been run. This affects Git checkout installations only.- File permissions prevent Apache from reading the VuFind directory. Ensure the VuFind root and all subdirectories are readable by
www-data.
'Please run composer install' error from install.php
'Please run composer install' error from install.php
This message is printed by Run
install.php when vendor/autoload.php does not exist:composer install from the VuFind home directory and then re-run install.php. This error does not occur with packaged releases, which ship with vendor/ included.Solr fails to start or returns connection refused
Solr fails to start or returns connection refused
Verify Java is installed and on the PATH:Check whether port If another process occupies the port, either stop it or reconfigure VuFind to use a different Solr port by re-running
8983 is already in use:install.php --solr-port=NEWPORT.Review the Solr log for startup errors:VuFind loads but the search returns no results
VuFind loads but the search returns no results
An empty result set after installation is expected — no records have been indexed yet. Index MARC records using the import scripts:See the indexing guide for full instructions, including OAI-PMH harvesting.
Apache configuration is not loading
Apache configuration is not loading
Confirm the symlink target exists and is readable:Validate the Apache configuration syntax before restarting:If
configtest reports a syntax error in httpd-vufind.conf, re-run php install.php to regenerate the file.Cache or config permission errors in the browser
Cache or config permission errors in the browser
The auto-configuration page reports permission problems when
www-data cannot write to the local directory. Fix ownership and then reload the page:Next steps
Configuration overview
Set your site title, ILS driver, search backends, and authentication method.
Index your records
Import MARC records or configure OAI-PMH harvesting to populate the Solr index.
Customise themes
Apply your institution’s branding through the Bootstrap 5 theme system.
CLI commands
Explore VuFind’s Symfony Console commands for maintenance and administration.
