October CMS is a Laravel-based content management system designed for developers who want a clean, modular platform without the bloat of WordPress. It supports themes, plugins, a drag-and-drop page builder, and a powerful backend panel. Version 3.x introduced Composer-based installation, replacing the old zip download method used in earlier versions.
This guide covers installing October CMS on Ubuntu 24.04 or 22.04 with PHP 8.3, MariaDB, Nginx, and Let’s Encrypt SSL. The installation uses Composer to scaffold the project, then the built-in CLI wizard to configure the database and create the admin account.
Tested March 2026 | October CMS 3.7, PHP 8.3.6, MariaDB 10.11.14, Nginx 1.24.0, Composer 2.9.5, Ubuntu 24.04.4 LTS
Prerequisites
- A server running Ubuntu 24.04 or 22.04 LTS with at least 2 GB RAM
- Root or sudo access
- A domain name pointed to your server (for SSL)
- Ports 80 and 443 open
Install PHP and Required Extensions
October CMS 3.x requires PHP 8.0.2 or higher. Ubuntu 24.04 ships PHP 8.3, which works perfectly. Install PHP-FPM and the extensions October needs:
sudo apt update
sudo apt install -y php8.3-fpm php8.3-cli php8.3-mysql php8.3-zip php8.3-gd \
php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-sqlite3 unzip curl
Verify PHP is installed:
php -v
On Ubuntu 24.04:
PHP 8.3.6 (cli) (built: Jan 27 2026 03:09:47) (NTS)
On Ubuntu 22.04, install php8.1-fpm and the matching extensions instead (replace 8.3 with 8.1 in all package names). PHP 8.1 is the default on 22.04 and meets the minimum requirement.
Install MariaDB
October CMS supports MySQL, MariaDB, PostgreSQL, and SQLite. MariaDB is a solid default choice:
sudo apt install -y mariadb-server
sudo systemctl enable --now mariadb
Create a database and user for October CMS:
sudo mysql
Run the following SQL commands in the MariaDB shell:
CREATE USER 'october'@'localhost' IDENTIFIED BY 'Str0ngDBP@ss';
CREATE DATABASE october CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON october.* TO 'october'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Verify the connection works:
mysql -u october -p'Str0ngDBP@ss' -e "SHOW DATABASES;" | grep october
You should see october in the output. Ubuntu 24.04 ships MariaDB 10.11.14, Ubuntu 22.04 ships MariaDB 10.6. Both are supported.
Install Composer
October CMS v3 is installed via Composer (the old zip download no longer works). Install Composer globally:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
Confirmed working with Composer 2.9.5.
Install October CMS
Create the October CMS project in the web root:
cd /var/www
sudo composer create-project october/october octobercms "^3.0" --no-interaction
This downloads the October CMS skeleton with the Rain framework. It takes 2 to 5 minutes depending on your connection. The output ends with:
Generating autoload files
> System\Console\ComposerScript::postAutoloadDump
INFO Application key set successfully.
Set ownership so the web server can write to storage and cache directories:
sudo chown -R www-data:www-data /var/www/octobercms
sudo chmod -R 775 /var/www/octobercms/storage /var/www/octobercms/themes
Configure the Database
Edit the .env file to set the database connection:
sudo vi /var/www/octobercms/.env
Update the database settings:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=october
DB_USERNAME=october
DB_PASSWORD=Str0ngDBP@ss
Also set the application URL to your domain:
APP_URL=https://octobercms.example.com
Run the Installation Wizard
October CMS v3 includes an interactive CLI installer that sets up the database schema, creates the admin account, and optionally installs a demo theme. Run it from the project directory:
cd /var/www/octobercms
sudo -u www-data php artisan october:install
The wizard walks you through these steps:
- Language selection: choose
enfor English - Application URL: confirm your HTTPS domain
- Backend URI: the admin panel path (default
/backend) - Database engine: select
1for MySQL - Database host, port, name, user, password: enter the values from your
.env - Demo content: choose
yesto install a sample theme (recommended for first-time users)
The installer downloads the core modules (system, backend, CMS, editor, media, tailor), runs all database migrations, and sets up the default theme. This takes 3 to 10 minutes.
If you have an October CMS license key, you can skip the interactive wizard and use:
sudo -u www-data php artisan project:set YOUR_LICENSE_KEY
sudo -u www-data php artisan october:build
Install Nginx as Reverse Proxy
Install Nginx if not already present:
sudo apt install -y nginx
Create the Nginx server block:
sudo vi /etc/nginx/sites-available/octobercms.conf
Add the following configuration (replace the domain with yours):
server {
listen 80;
server_name octobercms.example.com;
root /var/www/octobercms;
index index.php;
client_max_body_size 50M;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
location /storage/app/uploads/public { try_files $uri 404; }
location /storage/app/media { try_files $uri 404; }
location /themes { try_files $uri 404; }
}
On Ubuntu 22.04, change the PHP-FPM socket path to /run/php/php8.1-fpm.sock.
Enable the site and reload Nginx:
sudo ln -sf /etc/nginx/sites-available/octobercms.conf /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx
Secure with Let’s Encrypt SSL
Install certbot and obtain a certificate:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d octobercms.example.com --non-interactive --agree-tos -m [email protected]
Certbot automatically modifies the Nginx config to add SSL directives and a redirect from HTTP to HTTPS. Verify with:
sudo nginx -t
sudo systemctl reload nginx
Test automatic renewal:
sudo certbot renew --dry-run
Configure the Firewall
Allow HTTP, HTTPS, and SSH through UFW:
sudo ufw allow OpenSSH
sudo ufw allow "Nginx Full"
sudo ufw enable
sudo ufw status
The output confirms the rules are active:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
Access October CMS
Open your browser and navigate to https://octobercms.example.com. You should see the default October CMS theme (if you installed demo content) or a blank page ready for customization.
Access the backend administration panel at:
https://octobercms.example.com/backend
Log in with the admin credentials you created during the installation wizard. The backend panel provides a clean interface for managing pages, themes, plugins, and system settings.
Set Up the Scheduler
October CMS uses Laravel’s task scheduler for background jobs like cache cleanup and plugin updates. Add the cron entry:
sudo crontab -u www-data -e
Add the following line:
* * * * * php /var/www/octobercms/artisan schedule:run >> /dev/null 2>&1
Ubuntu 22.04 Differences
The installation process is identical on Ubuntu 22.04 with these package version differences:
- PHP: 8.1 (default) vs 8.3 on 24.04. Change all
php8.3-*package names tophp8.1-*and update the FPM socket path in Nginx fromphp8.3-fpm.socktophp8.1-fpm.sock. - MariaDB: 10.6 (vs 10.11 on 24.04). Both are fully supported.
- Nginx: 1.18.0 (vs 1.24.0). Same configuration syntax.
- The Composer installation, October CMS wizard, and all artisan commands work identically on both releases.