Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To install October CMS 4.x on an Ubuntu VPS, provision PHP 8.2 or newer with the required extensions, Composer 2 or newer, at least 256 MB of allocated memory, and a supported database. The standard installation is three commands: composer create-project october/october myoctober, php artisan october:install, and php artisan october:migrate.

For production, point Nginx at the project’s public/ directory, use October’s supplied Nginx configuration as the basis for the virtual host, configure authentication and .env values, run migrations, and mirror assets when plugins or themes require it. If Composer is unavailable, the official browser wizard can install from an archive instead.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Requirements for October CMS 4.x

Check the server against these requirements before creating the project. October CMS is a PHP application that uses Composer to manage its dependencies, so a VPS that only has a web server and PHP will not be sufficient for the normal installation path.

Component October CMS 4.x requirement What to check
PHP PHP 8.2.0 or newer Run php -v and confirm the CLI version used by Composer matches the version used by your web server.
Composer Composer 2.0 or newer Run composer --version. The command must be available to the account that creates and maintains the project.
PHP extensions PDO, cURL, OpenSSL, Mbstring, ZipArchive, GD and SimpleXML Install the Ubuntu packages listed below, then verify with php -m.
Memory 256 MB or more allocated memory This figure is listed by the official installer repository. Leave additional headroom for Composer, PHP workers, database activity and extensions.
MySQL-compatible database MySQL 5.7 or MariaDB 10.2 Use a database account with permission to create and alter the October CMS schema.
PostgreSQL PostgreSQL 9.6 Use the matching PHP PostgreSQL driver if you select this database.
SQLite SQLite 3.8.8 Ensure the SQLite file location is writable by the web-server user.
Web server Apache, Nginx, Lighttpd or Microsoft IIS This guide uses Nginx on Ubuntu and keeps the application outside the public document root.

Why the PHP version matters

Do not install October CMS 4.x on a VPS whose active PHP version is 8.1 or older. A newer PHP package may exist on the server while the command-line binary, PHP-FPM service and Nginx configuration still point to different versions. Check all three layers before troubleshooting Composer or a blank browser response.

Database planning

Create the database and credentials before the browser setup or production deployment. Record the database name, username, password, host and port. The installer can collect connection details interactively, while a production deployment normally receives them through .env.

Choose the installation route

Route Use it when Main trade-off
Composer project creation You can install Composer 2 and want the normal, maintainable deployment workflow. Requires Composer access and, for some production projects, October project authentication.
Browser wizard Composer is unavailable on the VPS or you need to install from an official archive. Still requires a writable installation directory and browser access to install.php; future dependency management is less convenient than a Composer-based project.

For a new VPS, Composer is the preferred route because it creates the dependency-managed project that October’s deployment instructions are designed around. Use the wizard only when the server environment genuinely cannot provide Composer.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prepare Ubuntu

Update package metadata

  1. Connect to the VPS with an account that can use sudo.
  2. Update Ubuntu’s package index:
sudo apt-get update

Install October’s PHP dependencies

The official installer repository gives this Ubuntu dependency command:

sudo apt-get update && sudo apt-get install php php-ctype php-curl php-xml php-fileinfo php-gd php-json php-mbstring php-mysql php-sqlite3 php-zip

The command installs the PHP packages needed for common MySQL and SQLite installations. If you choose PostgreSQL, install the PHP PostgreSQL driver supplied by your Ubuntu release as well. Package names can differ between Ubuntu releases, so confirm that the resulting PHP module list contains PDO, cURL, OpenSSL, Mbstring, ZipArchive, GD and SimpleXML.

Verify the command-line runtime

php -v
php -m
composer --version

Confirm that PHP reports 8.2.0 or newer, Composer reports 2.0 or newer, and the required modules appear in the module list. If Composer reports a different PHP binary than your web server, fix that mismatch before creating the project; otherwise the installation may succeed in the shell and fail through Nginx.

Create a private application directory

Choose a directory such as /var/www/myoctober. Keep the project’s source, configuration and storage directories outside the web root. Only the project’s public/ directory should be exposed by Nginx.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Install October CMS with Composer

Create the project

From the parent directory, run the official project-creation command:

composer create-project october/october myoctober

Composer downloads October CMS and its dependencies into a new directory named myoctober. If you selected another directory name, use that name consistently in every later command and in the Nginx document root.

Run the October installer

Change into the project directory and start the guided installer:

cd myoctober
php artisan october:install

The installation command guides the application setup. Supply the database connection details when prompted and follow the requested configuration steps. Keep the database credentials accurate; a typo here commonly appears later as a connection or migration error rather than as a clear Nginx problem.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Initialize the database

php artisan october:migrate

This command initializes the October CMS database schema. Let it finish without interrupting the process. If it fails, check the database host, credentials, selected driver and PHP extension before running it again.

Create the administrator account

After the process finishes, open the site in a browser. October’s documentation states: “When the process finishes, you can access the backend panel in a browser and create the administrator user profile.” Complete that account creation promptly and store the credentials in your password manager.

Configure Nginx for October CMS

Point the virtual host at public/

Create a virtual host for the domain and set its document root to the project’s public directory, for example:

/var/www/myoctober/public

Do not set the root to /var/www/myoctober. That would expose files that belong outside the public web directory, including environment and application files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use October’s supplied Nginx configuration

October’s deployment documentation says to use the project’s nginx.conf in the Nginx server block. Treat that file as the authoritative application-specific configuration rather than replacing it with a generic PHP front-controller snippet. Keep the server block’s domain name, TLS settings and PHP-FPM socket aligned with the Ubuntu image you deployed.

Enable and test the site

  1. Save the virtual-host file under Ubuntu’s Nginx site configuration directory.
  2. Enable it using the normal Ubuntu sites-enabled mechanism.
  3. Run sudo nginx -t. Fix every syntax or include-path error before reloading.
  4. Reload Nginx with sudo systemctl reload nginx.
  5. Point the domain’s DNS record at the VPS address and wait for the record to resolve.
  6. Open the domain in a browser and complete any remaining October setup screens.

Exact service names, PHP-FPM socket paths and TLS commands vary with the Ubuntu release and VPS image. The stable October-specific requirements are the public/ document root and the project nginx.conf included in the server block.

Permissions and writable paths

The web-server user must be able to write to the directories October uses for cache, storage, uploads and generated files. Grant only the required ownership and write access; do not make the entire VPS or every project file world-writable. If the browser reports a permissions error after Nginx is working, inspect the application and storage directories first, not the DNS configuration.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Production deployment from a Composer project

A development checkout and a production deployment have different concerns. Production should install the locked dependency set, keep secrets out of version control and expose only generated public assets.

Authenticate the project

Clone or copy the project to the server. If the deployment requires October project authentication, either copy the project’s auth.json securely to the server or recreate it with:

php artisan project:set <license key>

Protect auth.json as you would any credential file. Do not place it in a public directory or commit it to a repository that other users can read.

Install production dependencies and environment settings

  1. Change into the project directory.
  2. Install dependencies without development packages:
composer install --no-dev
  1. Create the environment file:
cp .env.example .env

Edit .env with the production application URL, database driver, host, port, database name, username and password, plus any mail or cache settings required by your deployment. The exact values depend on your database and VPS. Never commit .env; it contains sensitive credentials.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run migrations

php artisan october:migrate

Run migrations only after the production database values are correct. Back up an existing database before applying migrations to an established installation, and schedule the operation during a maintenance window if the application is already serving users.

Mirror public assets

php artisan october:mirror

The mirror command exposes assets that belong in public/. Run it again after adding plugins or themes whose assets must be publicly available. A page that loads HTML but lacks CSS, JavaScript or images often needs this step rather than an Nginx rewrite change.

Install with the browser wizard when Composer is unavailable

The official wizard is a separate installation path, not a way to avoid October’s server requirements. It still needs a supported PHP runtime, the required extensions, a writable application directory and browser access to the installer.

  1. Prepare an empty directory for the new installation.
  2. Download the official installer archive and unpack it into that directory.
  3. Grant the installer write permission to the installation directory and its contents. Use the least-permissive ownership and mode that allow the web server to complete setup.
  4. Point the Nginx document root at the directory intended to serve the installer, following October’s wizard instructions.
  5. Open install.php in a browser.
  6. Follow the wizard to select the database, create the administrator account and finish configuration.
  7. After installation, remove or restrict installer access if the wizard instructions require it, and re-check that only the intended public files are reachable.

If the wizard cannot write files, changing the browser URL will not fix the problem. Correct directory ownership and permissions, then reload the installer. If the database step fails, verify the selected PHP driver and database credentials.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Choosing between October CMS major versions

Do not select a major version solely because an older tutorial uses it. Match the version to the PHP runtime, Composer constraints, database support, project authentication behavior and the version to which an existing application is pinned.

Major version PHP information in the published requirements Decision guidance
4.x PHP 8.2.0 or newer; Composer 2.0 or newer for the standard workflow. Use for a new installation when your extensions, database and plugins support the current 4.x requirements.
3.x PHP 8.0 or newer. Use only when an existing application or plugin set is intentionally pinned to 3.x and has been validated there.
2.x Older requirements; the published guidance explicitly warns that v2 is not compatible with PHP 8.1. Do not place a v2 application on PHP 8.1 or newer without a tested, documented compatibility plan. Preserve the runtime expected by the legacy project.

For a fresh Ubuntu VPS in 2026, October CMS 4.x is the relevant target represented by the current installation requirements. Existing projects should follow their locked major version instead of being upgraded implicitly during a server migration.

Troubleshooting by symptom

Composer refuses to create the project

  • Run php -v and confirm PHP is 8.2 or newer.
  • Run composer --version and confirm Composer 2.0 or newer.
  • Check php -m for the required extensions, especially Mbstring, XML/SimpleXML, GD, ZIP, cURL and the selected database driver.
  • Check available memory. The installer repository lists 256 MB or more allocated memory as a baseline.
  • If the project requires authentication, configure auth.json or run php artisan project:set <license key> as appropriate.

The site shows a 404 or downloads PHP files

  • Verify that Nginx’s root is the project’s public/ directory, not the project directory itself.
  • Confirm the virtual host is enabled and that sudo nginx -t succeeds.
  • Confirm Nginx is passing PHP requests to the PHP-FPM version that satisfies October’s requirement.
  • Reload Nginx after correcting the server block.

The installer cannot connect to the database

  • Test the database account independently using the host, port, username and password entered in the installer or .env.
  • Confirm the database server version is supported: MySQL 5.7, MariaDB 10.2, PostgreSQL 9.6 or SQLite 3.8.8, as applicable.
  • Confirm the matching PHP database extension is enabled.
  • Run php artisan october:migrate again only after correcting the connection details.

Assets or themes are missing after deployment

Run php artisan october:mirror. October’s deployment guidance specifically calls for repeating this command after adding plugins or themes whose assets must be exposed in public/.

The browser reports permission errors

Review ownership and write permissions for the application’s storage, cache, upload and generated-asset directories. The wizard and runtime need write access to those locations, but broad world-write permissions create an unnecessary security risk.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Post-install checklist

  • PHP is 8.2.0 or newer and the web server uses the same supported PHP family.
  • Composer is 2.0 or newer for Composer-managed installations.
  • All required PHP extensions are enabled.
  • The database is one of the supported versions and migrations completed successfully.
  • Nginx serves only the project’s public/ directory and uses the supplied October configuration.
  • The administrator account has been created and its credentials are stored securely.
  • .env and any authentication file are excluded from version control and protected on disk.
  • Production dependencies were installed with composer install --no-dev.
  • php artisan october:mirror has been run whenever plugin or theme assets require public exposure.
  • DNS resolves to the VPS and HTTPS, backups, updates and log monitoring are configured according to your operational policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.