Installation
Total CMS can be installed on any server running PHP 8.2 or higher. The setup wizard guides you through the process in under 5 minutes.
System Requirements
Section titled “System Requirements”PHP Requirements
Section titled “PHP Requirements”- PHP 8.2 or higher (PHP 8.3 and 8.4 supported)
- Required PHP extensions:
curl- HTTP requests (license validation, embeds)exif- Image metadata extractionfileinfo- File type detectiongd(with FreeType) - Image processing and text renderingjson- JSON parsingmbstring- Multibyte string handlingopenssl- HTTPS and encryption
Recommended PHP Extensions
Section titled “Recommended PHP Extensions”These extensions enhance performance and enable additional features:
intl- Internationalization and locale supportimagick- Advanced image processingopcache- PHP bytecode caching (strongly recommended)apcu- High-performance in-memory cachingredis- Redis caching supportmemcached- Memcached caching support
You only need one caching extension. APCu is recommended for single-server deployments.
Web Server
Section titled “Web Server”- Apache 2.4+ with
mod_rewriteenabled - Nginx with PHP-FPM (see Nginx Configuration)
- LiteSpeed or other PHP-compatible servers
File System
Section titled “File System”- Write access to the data directory
- Recommended: 100MB+ free disk space (varies by content volume)
Browser Support (Admin Dashboard)
Section titled “Browser Support (Admin Dashboard)”- Chrome/Edge (latest 2 versions)
- Firefox (latest 2 versions)
- Safari (latest 2 versions)
Quick Start
Section titled “Quick Start”- Download the Total CMS zip from totalcms.co
- Extract to your server (e.g.,
/var/www/example.com/tcms/) - Point your web server’s document root to the
public/directory - Visit your site in a browser — the setup wizard starts automatically
Setup Wizard
Section titled “Setup Wizard”The wizard walks you through the installation:
Welcome
Section titled “Welcome”Choose your preferred language for the admin interface. Currently supported: English, English (UK), Deutsch, Español, Nederlands.
Environment Check
Section titled “Environment Check”The wizard verifies your server meets the requirements. All required checks must pass before you can continue. Optional checks are shown as recommendations.
Data Path
Section titled “Data Path”Choose where Total CMS stores its data:
- Document Root —
<docroot>/tcms-data(simplest, works everywhere) - Above Document Root (recommended) —
<parent>/tcms-data(more secure, not web-accessible) - Custom Path — any absolute path on the server
The data directory is created with an .htaccess file that blocks direct web access.
Admin Account
Section titled “Admin Account”Create your first administrator account with an email address and password.
License
Section titled “License”Your license is automatically validated. New installations start with a free trial. If you’ve already purchased a license for your domain, it will be detected automatically.
Directory Structure
Section titled “Directory Structure”After installation:
/var/www/example.com/├── tcms/ # Total CMS application│ ├── config/ # Configuration files│ ├── public/ # Web root (point your server here)│ │ ├── index.php # Entry point│ │ └── assets/ # CSS, JS, images│ ├── resources/ # Templates, schemas, translations, docs│ ├── src/ # PHP source code│ ├── vendor/ # Dependencies│ └── version.json # Version info├── tcms-data/ # Your content (separate from app)│ ├── .schemas/ # Custom schema definitions│ ├── .system/ # System files (settings, API keys)│ ├── templates/ # Custom Twig templates│ └── [collections]/ # Collection dataThe key principle: tcms/ contains the application and tcms-data/ contains your content. Updates only touch tcms/ — your content is never affected.
Web Server Configuration
Section titled “Web Server Configuration”Apache
Section titled “Apache”Total CMS includes .htaccess files for URL rewriting. Ensure mod_rewrite is enabled:
a2enmod rewriteYour virtual host should point to the public/ directory:
<VirtualHost *:80> ServerName example.com DocumentRoot /var/www/example.com/tcms/public
<Directory /var/www/example.com/tcms/public> AllowOverride All Require all granted </Directory></VirtualHost>See the Nginx Configuration guide for detailed setup.
After installation, Total CMS includes a CLI tool:
php tcms/resources/bin/tcms infoSee the CLI Commands reference for the full list.
Troubleshooting
Section titled “Troubleshooting”Setup wizard doesn’t appear — Ensure your web server points to tcms/public/, not the tcms/ folder itself.
Permission denied errors — The web server user (e.g., www-data) needs write access to tcms-data/, tcms/cache/, tcms/logs/, and tcms/tmp/.
Required extension missing — Install the missing PHP extension and restart your web server. On Ubuntu: apt install php8.2-{extension}.
Blank page or 500 error — Check tcms/logs/ for error logs. Verify PHP version is 8.2+ and all required extensions are installed.
404 errors on all pages — Verify mod_rewrite is enabled (Apache) or check your Nginx try_files directive.
License validation fails — Verify curl is installed, firewall allows outbound HTTPS, and domain matches your license.
Getting Help
Section titled “Getting Help”- Check the Community Forum
- Review the Configuration guide
- Check PHP error logs for specific error messages