Skip to main content

Installation with FrankenPHP

FrankenPHP is a modern PHP app server, built on top of the Caddy web server. You can run Jinya CMS in FrankenPHP's worker mode for the best performance, or in standard mode for a more traditional setup.

Prerequisites

Before you begin, ensure your server meets the following requirements:

  • PHP: Version 8.4 or higher
  • FrankenPHP: Installed and running
  • PHP Extensions:
    • ext-date
    • ext-fileinfo
    • ext-intl
    • ext-json
    • ext-pdo
    • ext-pdo_mysql
    • ext-zip
    • ext-zlib
  • Database: MySQL or MariaDB

Installation Steps

Download Jinya CMS

Download the latest stable release of Jinya CMS from our release server:

Download Jinya CMS Stable

Extract the Archive

Extract the downloaded ZIP file into your desired directory.

unzip jinya-cms-stable.zip -d /var/www/jinya-cms

Set Permissions

Ensure that the user running FrankenPHP has write access to the following directories:

  • var/
  • public/ (for media uploads)
chown -R frankenphp:frankenphp /var/www/jinya-cms
chmod -R 775 /var/www/jinya-cms/var
chmod -R 775 /var/www/jinya-cms/public

Configure FrankenPHP (Caddyfile)

Create or update your Caddyfile to use FrankenPHP. Choose between worker mode and standard mode.

Running Jinya CMS in FrankenPHP's worker mode provides the best performance. Jinya CMS includes a frankenphp-worker.php script in the root directory.

Example Caddyfile configuration for worker mode:

{
frankenphp {
worker {
file /var/www/jinya-cms/frankenphp-worker.php
num 4
}
}
}

yourdomain.com {
root * /var/www/jinya-cms/public
encode zstd gzip

route {
# Serve designer assets
@designer path /designer /designer/*
handle @designer {
try_files {path} /designer/index.html
file_server
}

# Static assets
@static {
path /installer/* /jinya-content/* /lib/* /themes/* /designer-file-cache-service-worker.js
file
}
handle @static {
file_server
}

# PHP files (excluding worker script itself if needed)
@php path *.php
handle @php {
php_server
}

# Fallback to worker for all other requests
handle {
rewrite * /frankenphp-worker.php
php_server {
worker ./frankenphp-worker.php
}
}
}
}

Run the Installer

Once FrankenPHP is running with your configuration, navigate to your domain in your web browser. Jinya CMS includes a web-based installer that will guide you through the remaining steps:

  • Database configuration
  • Administrative user creation
  • Initial site setup

Follow the on-screen instructions to complete your installation.

Troubleshooting

  • Worker Errors: Check your FrankenPHP/Caddy logs if the worker fails to start.
  • Permissions: Ensure the var/ directory is writable, as it's used for caching and logs.
  • Extensions: Verify that all required PHP extensions are installed in your FrankenPHP environment.