Web Hosting

Install October CMS on Ubuntu 24.04 / 22.04 with Nginx

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.

Original content from computingforgeeks.com - post 4866

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:

  1. Language selection: choose en for English
  2. Application URL: confirm your HTTPS domain
  3. Backend URI: the admin panel path (default /backend)
  4. Database engine: select 1 for MySQL
  5. Database host, port, name, user, password: enter the values from your .env
  6. Demo content: choose yes to 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 to php8.1-* and update the FPM socket path in Nginx from php8.3-fpm.sock to php8.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.

Related Articles

RHEl Install and Configure Vim on RHEL 10 / Rocky Linux 10 / Ubuntu 24.04 Debian Install Joomla on Ubuntu or Debian with Let’s Encrypt SSL Debian Install WordPress with Nginx on Ubuntu 24.04 / Debian 13 Monitoring Install Graphite Monitoring on Ubuntu 24.04

Leave a Comment

Press ESC to close