How to Install xCRUD Nova Pro
Everything a fresh checkout needs before your first page loads: a database, a config file, and mod_rewrite.
Requirements
xCRUD Nova Pro runs on PHP 8.0+ and MySQL/MariaDB, behind Apache with mod_rewrite enabled (or an equivalent rewrite setup on nginx/IIS). No Composer packages, no Node build step - the PHP is plain, and the client-side widget is a single vanilla JavaScript file.
1. Import the database
The demo catalog ships as a single SQL dump. Create a fresh database and import it:
mysql -u root -e "CREATE DATABASE xcrud16 CHARACTER SET utf8mb4"
mysql -u root xcrud16 < sql/xcrud16.sql
If you're running the Pro tier (login, roles, admin), also import sql/xcrud_pro.sql into the same database - it adds the sys_*/user/logs tables the login screen and admin pages need.
2. Configure src/Config.php
Point XcrudConfig at your new database:
public static string $dbHost = 'localhost';
public static string $dbName = 'xcrud16';
public static string $dbUser = 'root';
public static string $dbPass = '';
While you're there, set $appSecret to a long random string unique to your install - it's the HMAC key signing every where()/subselect()/pass_var() condition, so it matters even in local development. See the Configuration Reference for every other setting.
3. Enable mod_rewrite
The project's own .htaccess turns a clean URL like /payments into a call to core/router.php, which resolves it to pages/payments.php. That needs two things in Apache's config:
mod_rewriteenabled (XAMPP has this on by default).AllowOverride Allset for your document root, so.htaccessis actually read.
4. Load your first page
Visit your install in a browser - if you're using the bundled demo catalog, start at the dashboard:
http://localhost/xcrud_8/app
Ready to build your own page instead of browsing the demos? Continue to the Quick Start guide - a working CRUD screen in three lines of PHP.
Project structure
| Path | What it is |
|---|---|
src/Config.php | Database credentials, table whitelist, UI framework switch |
src/Xcrud.php | The Xcrud class - table()/route()/render()/page() and every field/form option |
core/ajax_crud.php | The REST API (GET/POST/PUT/DELETE), PDO + prepared statements |
core/xcrud.js | The CRUD widget - list, add, edit, delete, all via fetch() |
themes/{ui}/ | One folder per UI framework (none/tailwind/bootstrap) |
core/router.php | Maps /payments to pages/payments.php |
pages/ | One file per route |
sql/xcrud16.sql | The demo database dump |