-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements and Installation
This page covers what eveBB needs to run, how to install it with install.php, and what ends up in config.php.
-
PHP 8.1 or later is the supported platform (declared in
composer.jsonas"php": ">=8.1"). eveBB is fully compatible with PHP 8.1–8.4. - eveBB has no runtime Composer dependencies —
composer.jsonrequires only PHP itself. (PHPUnit is a dev-only dependency for running the test suite.) - Note: the installer's own hard floor (
MIN_PHP_VERSIONininstall.php) is5.6.4— it will refuse to run below that — but 8.1+ is what the project targets and tests against.
One of:
-
MySQL / MariaDB — via the classic
mysqliextension or PDO. Minimum MySQL version enforced by the installer: 5.0.6 (MIN_MYSQL_VERSION). -
SQLite 3 — via
pdo_sqlite. No database server needed; the whole forum lives in a single file. The driver requires SQLite 3.25+ (forRENAME COLUMN) and ideally 3.35+ (forDROP COLUMN). -
PostgreSQL — via the classic
pgsqlextension or PDO. Minimum version enforced by the installer: 7.0.0 (MIN_PGSQL_VERSION); in practice the project recommends PostgreSQL 10+.
-
mbstring — recommended but optional. The bundled UTF-8 library (
include/utf8/) auto-detects mbstring and uses it when present; otherwise it falls back to a native pure-PHP implementation. You can force either path by definingUTF8_USE_MBSTRINGorUTF8_USE_NATIVEinconfig.php. - GD + OpenSSL — needed only for the optional registration CAPTCHA (and GD for avatar processing/logo uploads).
- ZipArchive — needed only for the one-click updater and for installing style/plugin zips through the admin console.
-
curl or
allow_url_fopen— needed only for the one-click updater's release checks.
The installer checks that these are writable by the web server:
-
cache/(or whereverFORUM_CACHE_DIRpoints) — for generated cache files. -
img/avatars/— for avatar uploads.
The installer offers only the types your PHP build actually supports:
$db_type |
Driver file (include/dblayer/) |
Shown in installer as | Requires |
|---|---|---|---|
mysqli |
mysqli.php |
MySQL Improved |
mysqli extension |
mysqli_innodb |
mysqli_innodb.php |
MySQL Improved (InnoDB) |
mysqli extension + InnoDB engine |
mysql |
mysql.php |
MySQL (PDO) | PDO with mysql driver |
pgsql |
pgsql.php |
PostgreSQL |
pgsql extension |
pgsql_pdo |
pgsql_pdo.php |
PostgreSQL (PDO) | PDO with pgsql driver |
sqlite |
sqlite.php |
SQLite3 (PDO) | PDO with sqlite driver |
Notes:
- The
sqlitetype is a SQLite3-on-PDO driver. It replaced FluxBB's historical SQLite2 driver but kept the samedb_typename. It setsPRAGMA busy_timeout = 10000to play well with concurrent requests. - The legacy spelling
mysql_innodbis still accepted inconfig.phpas an alias formysqli_innodb(this eases FluxBB migrations). - For
mysqli_innodb, the installer verifies the InnoDB engine is actually available before proceeding.
- Upload the files to your web server (or unpack a release zip there).
-
Point your browser at
install.phpand follow the instructions. - When the installer finishes, remove
install.php. If you forget, the admin index shows an alert with a one-click Delete it link, and the one-click updater also removes it automatically after a successful update.
Database setup
- Database type — one of the types above, filtered to what your PHP supports.
-
Database server hostname — default
localhost. Ignored for SQLite. -
Database name — for SQLite, enter a writable file path (for example
data/forum.sqlite) instead; no server or credentials are needed. - Database username / password — not needed for SQLite.
-
Table prefix — optional; must match
^[a-zA-Z_][a-zA-Z0-9_]*$(letters, digits, underscores, not starting with a digit) and be at most 30 characters in the form. For SQLite the prefixsqlite_is rejected (reserved namespace).
Administration setup
- Administrator username — 2–25 characters. May not be "Guest", an IP address, contain BBCode, or mix brackets and quotes.
- Password — minimum 9 characters, entered twice.
- Administrator email address.
Board setup
- Board title and Board description (description may contain HTML).
- Base URL — the full URL of the forum, auto-guessed from the request; check it carefully.
Appearance
-
Default language (from the installed language packs under
lang/). - Default style — defaults to Carbon, the bundled style.
- All forum tables (with your prefix):
bans,categories,censoring,config,forum_perms,forums,groups,online,login_attempts,posts,reports,search_cache,search_matches,search_words,topic_subscriptions,forum_subscriptions,topics,users. - The four preset groups — Administrators (ID 1), Moderators (2), Guests (3), Members (4) — with Members as the default group for new registrations.
- The Guest account (user ID 1) and your administrator account (user ID 2), the admin password hashed with bcrypt (
$password_hash_cost = 10). - A "Test category" containing a "Test forum" with one test topic, already indexed for search.
- Sensible default settings, including: login throttle on (5 attempts, 15-minute lockout), registration CAPTCHA on, required profile details at registration on, the visual editor on, and avatars enabled if PHP
file_uploadsis on (max 90×90 px, 256000 bytes).
At the end, the installer writes config.php into the forum root. If the root isn't writable, it instead offers the generated config.php as a download so you can upload it manually via FTP/SFTP. The file contains:
$db_type = '...';
$db_host = '...';
$db_name = '...';
$db_username = '...';
$db_password = '...';
$db_prefix = '...';
$p_connect = false; // persistent DB connections
$cookie_name = 'pun_cookie_XXXXXX'; // random per-install
$cookie_domain = '';
$cookie_path = '/';
$cookie_secure = 0;
$cookie_seed = '...'; // 32-char random seed (also keys the CAPTCHA)
$password_hash_cost = 10; // bcrypt cost
define('PUN', 1);The base URL is not stored in config.php — it lives in the database as the o_base_url setting (Administration → Options).
Optional constants you may add to config.php:
| Constant | Effect |
|---|---|
FORUM_CACHE_DIR |
Move the cache directory (default cache/ in the forum root). |
FORUM_DEFAULT_CHARSET |
Override the assumed pre-UTF-8 connection charset during a legacy upgrade. |
FORUM_UPDATE_API |
Point the one-click updater at a different releases API (mirrors/testing). |
PUN_DEBUG |
Enable debug output. |
UTF8_USE_MBSTRING / UTF8_USE_NATIVE
|
Force the UTF-8 layer's backend. |
Any page load without a valid config.php (specifically, without the PUN constant defined) redirects straight to install.php. Re-running install.php on an installed board is blocked ("Already installed").
- Log in with your administrator account and visit Administration → Options to review the board settings (base URL, timezone, email addresses, registration policy).
- Delete
install.phpif you haven't. - Set up cron-free maintenance is not required — eveBB has no scheduled-task dependency; everything (cache regeneration, pruning of expired data) happens inline.
php tests/lite/run.php tests/functions tests/characterization # unit tests
DB_TYPE=sqlite DB_NAME=/tmp/t.sqlite \
php tests/lite/run.php tests/integration # DB contract
DB_TYPE=sqlite DB_NAME=/tmp/e2e.sqlite ./tests/e2e/run.sh # end-to-end
The bundled tests/lite runner is PHPUnit-API-compatible; the same test files run unchanged under real PHPUnit (composer install && composer test).