Configuration

SiteX CMS uses a single configuration file (config.php) for all core settings. This guide covers every configuration option available. 

Database Configuration

Set your database credentials in config.php:

define('DB_HOST', 'localhost');
define('DB_NAME', 'sitex_cms');
define('DB_USER', 'sitex_user');
define('DB_PASS', 'your_secure_password');
define('DB_PORT', 3306);
define('DB_CHARSET', 'utf8mb4');

Site Settings

define('SITE_NAME', 'Your Site Name');
define('SITE_URL', 'https://yourdomain.com');
define('SITE_EMAIL', '[email protected]');
define('DEFAULT_LANGUAGE', 'en');
define('TIMEZONE', 'Europe/London');

Caching

SiteX CMS supports three caching backends:

// Options: 'file', 'redis', 'memcached'
define('CACHE_DRIVER', 'file');
define('CACHE_TTL', 3600); // seconds

// Redis settings (if using redis driver)
define('REDIS_HOST', '127.0.0.1');
define('REDIS_PORT', 6379);

// Memcached settings (if using memcached driver)
define('MEMCACHED_HOST', '127.0.0.1');
define('MEMCACHED_PORT', 11211);

Email / SMTP

define('MAIL_DRIVER', 'smtp'); // 'mail' or 'smtp'
define('SMTP_HOST', 'smtp.yourdomain.com');
define('SMTP_PORT', 587);
define('SMTP_USER', '[email protected]');
define('SMTP_PASS', 'your_smtp_password');
define('SMTP_ENCRYPTION', 'tls');

Security

define('DEBUG', false); // Never true in production
define('RATE_LIMIT_LOGIN', 5); // Max login attempts per hour
define('SESSION_LIFETIME', 7200); // 2 hours
Important: Never commit your config.php to a public repository. Add it to .gitignore immediately.