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

You can self-host osTicket on a Linux VPS by providing a supported web server, PHP 8.2–8.4, and MySQL 5.5 or newer, then completing osTicket’s browser installer and locking down the resulting files. The current download page lists osTicket Core 1.17.8 and 1.18.4, both released June 17, 2026; check the requirements for the exact branch you select before installing.

This guide covers VPS planning, the Apache/PHP/database stack, packaged and repository deployments, the web installer, incoming-mail polling, security, backups, upgrades, and diagnosis of common failures.

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.

What you need before installing

osTicket is downloadable open-source help-desk software. Self-hosting means your VPS, rather than a vendor-hosted service, runs the web application, database, uploaded attachments, scheduled jobs, and logs. You are responsible for operating-system updates, firewall rules, HTTPS, backups, monitoring, and recovery.

Supported software stack

The official installation prerequisites specify Apache, LiteSpeed, or IIS with URL Rewrite enabled, PHP 8.2 through 8.4 (PHP 8.4 is recommended), and MySQL 5.5 or newer. The download page repeats those requirements for the current 1.17 and 1.18 releases. Older FAQ text on that page contains broader historical version ranges, so use the requirement shown for the release you actually download rather than assuming every 1.17 or 1.18 build has identical needs.

#1 Best Overall
Sale
GMKtec G3S Mini PC Intel N95 Processor (Up to 3.4GHz) 8GB RAM 256GB M.2 SSD | Mini Desktop Computer with VESA Mount for Office Home Business HTPC Proxmox, Dual 4K Display, WiFi 5, Gigabit Ethernet
  • 12th Intel Alder Lake N95 Processor – The GMKtec G3 S Mini PC is powered by the 12th Gen Intel N95 processor with 4 cores, 4 threads, 6MB cache and a burst frequency up to 3.4GHz. Compared with N100/N5105/N5100/N5095, the N95 delivers up to 36% overall performance improvement. Perfect for routine tasks, office work, and home entertainment, this compact mini desktop is more convenient than traditional bulky PCs.
  • 8GB RAM & 256GB SSD Storage – Pre-installed with 8GB DDR4 memory and a fast 256GB M.2 2242 SSD, the G3 S mini desktop offers quicker startup, smoother multitasking, and faster file transfers. Enjoy seamless performance whether you’re working on multiple applications, browsing, or streaming content.
  • Rich Interfaces & Connectivity – The G3 S mini computer comes equipped with USB 3.2 (up to 10Gbps), dual HDMI 2.0 (4K@60Hz), and a 3.5mm audio jack. With support for WiFi 5, Bluetooth 5.0, and Gigabit Ethernet (RJ45 1000MbE), it connects easily with monitors, projectors, printers, office equipment, and other peripherals, making it versatile for both home and business use.
  • Dual 4K Display Support – Featuring upgraded Intel UHD Graphics (up to 1000MHz), the G3 S supports 4K video playback and AV1 decoding for a smooth viewing experience. With dual HDMI outputs, you can connect two 4K@60Hz displays simultaneously, enabling efficient multitasking for work and entertainment.
  • GMKTEC WARRANTY - GMKtec offers a 3-year limited warranty (1 year replacement + 2 years parts replacement) for each mini PC, starting from the date of the purchase effective on all sales starting Oct. 2026. All defects due to design and workmanship are covered. With a professional after sales team always ready to attend to your needs, you can simply relax and enjoy your mini PC
Component Supported requirement Practical decision
Web server Apache, LiteSpeed, or IIS with URL Rewrite Apache is the most straightforward choice on a typical Linux VPS; use another supported server only if you already operate it confidently.
PHP 8.2–8.4; 8.4 recommended by the installation documentation Confirm the selected osTicket branch and install extensions for that exact PHP build.
Database MySQL 5.5 or newer Keep the database on the VPS or a private database network, never exposed to the public internet.
osTicket releases listed June 17, 2026 Core v1.17.8 and v1.18.4 Read the branch-specific release notes and requirements before choosing one.

PHP extensions

The project’s deployment documentation lists mysqli and recommends these extensions: ctype, fileinfo, gd, gettext, iconv, imap, intl, json, mbstring, Zend OPcache, phar, xml, xml-dom, and zip. Some are used by particular features, such as IMAP/POP3 mail fetching or image handling. Install and enable the set required by your chosen release, then verify them from the command line and in the installer’s requirement check.

VPS, DNS, and access prerequisites

  • A maintained Linux distribution that can supply the documented server, PHP, and database versions. The official sources do not mandate Ubuntu, Debian, or another specific distribution.
  • A DNS name whose A/AAAA record points to the VPS. Use a dedicated hostname such as support.example.com.
  • Administrative SSH access and a plan for non-root administration, firewalling, and operating-system updates.
  • Enough CPU, memory, storage, and network capacity for your users, attachment volume, mail frequency, logs, and backup-retention policy. No authoritative minimum CPU, RAM, disk, or ticket-volume figure is published; validate your sizing under realistic load.

Choose a deployment method

There are two documented ways to put osTicket on the VPS. A packaged release is downloaded from the official download page and unpacked into the web root. A repository deployment uses the project source and its deployment command. Both can produce a working installation; the better choice depends on how you plan to upgrade and how comfortable you are maintaining source checkouts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Approach Typical workflow Strengths Trade-offs
Packaged release Download a release archive, verify it, unpack it into the document root, then run the browser installer. Clear version boundaries and a simple first installation. You must repeat the download, file replacement, and permission work for upgrades.
Repository deployment Clone the repository and run php manage.php deploy --setup /var/www/htdocs/osticket/; remove the deployed setup directory after completion. Documented path for pulling source and redeploying during upgrades; useful for administrators already using Git. Requires source-control discipline and careful separation of the live tree, configuration, and backups.

Do not install an unverified third-party package. Whichever method you use, record the exact release, PHP version, enabled extensions, database version, and file location so a later upgrade can reproduce the environment.

Provision the Linux VPS and web stack

1. Update the operating system and establish administrative controls

  1. Apply the distribution’s security updates before exposing the site.
  2. Create a non-root administrator with SSH-key authentication, and reserve root access for recovery.
  3. Configure the VPS firewall to allow SSH from trusted addresses where possible, plus HTTP (80) and HTTPS (443) for the help desk. Do not open the database port to the internet.
  4. Set the server time zone and enable time synchronization. Accurate time matters for mail polling, logs, sessions, and scheduled jobs.

Package names and service commands differ by distribution. Use your distribution’s supported repositories and confirm that the resulting PHP version is within 8.2–8.4 before proceeding.

2. Install and configure the web server

Install Apache, LiteSpeed, or IIS according to the server’s own documentation. On Apache, enable URL Rewrite and create a virtual host for the DNS name. Set the document root to a directory dedicated to osTicket, not a general-purpose web directory containing unrelated applications.

Before installing osTicket, test the virtual host with a simple temporary file, confirm that the hostname resolves to the VPS, and remove the test file. Enable HTTPS before inviting users. Redirect HTTP to HTTPS and ensure that certificates renew automatically.

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

3. Install PHP and extensions

Install one supported PHP version and its web-server integration, then enable the extensions required by the release. At minimum, verify mysqli; also check the project’s recommended list: ctype, fileinfo, gd, gettext, iconv, imap, intl, json, mbstring, Zend OPcache, phar, xml, xml-dom, and zip.

Restart the PHP handler and web server after changing modules. Confirm the command-line PHP executable and the web-server PHP module report the same supported major/minor version; a mismatch can make cron work differently from browser requests.

4. Install MySQL and create a database

Install MySQL 5.5 or newer and keep its listener bound to localhost or a private network. Create a dedicated database and account for this osTicket instance. During the web installer, the database account needs full privileges on the target database because osTicket creates its tables and schema. After installation, review whether your operating policy permits reducing privileges for routine operation; retain only the permissions your tested setup requires.

A typical SQL sequence, adapted to your naming policy, is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
NIMO AI NAS, Agentic Computer Mini PC and AI Server, Intel Core Ultra 5 320 (up to 4.6 GHz, beat AI 5 340) up to 132TB ZFS Hybrid Storage, for 24hr AI Agent
  • High-Performance NAS with Powerful Procesor: Intel Core 5 320 is ideal for small offices, & More. You can enjoy smooth performance and seamless collaboration, while making use of advanced features like Docker and virtual machines. It works semalessly across every device inluding Windows, macOS, Linux, iOS, Android or Google services and so on.
  • Better Way to Store Than External Drives: NAS offers centralized storage, automatic backups, remote access, and a wide range of RAID options for easy data recovery even if a drive fails. Massive Storage Capacity: Never worry about storage limits again. With up 144TB capacity, you can store 50 million 1MB photos or 98K 1.5GB movies,5 million 30MB songs! *Hard Drives not included.
  • Secure Private Cloud: Retain 100% data ownership with advanced encryption to protect your files. Flexible permission management makes it easy to protect your privacy when collaborating with others.
  • AI-Powered Photo Album: Automatically organizes your photos by recognizing faces, scenes, objects, and locations. It can also instantly remove duplicates, freeing up storage space and saving you time.
  • User-Friendly App: Simple setup and easy file-sharing on Windows, macOS, Android, iOS, web browsers, and smart TVs, giving you secure access from any device.
CREATE DATABASE osticket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'osticket_app'@'localhost' IDENTIFIED BY 'use-a-long-random-password';
GRANT ALL PRIVILEGES ON osticket.* TO 'osticket_app'@'localhost';
FLUSH PRIVILEGES;

Use a password manager for the database secret. Do not put it in shell history, a public repository, or a ticket. If your database server uses a different character-set policy, follow that server’s supported settings and verify the result in the installer.

Download and place osTicket

Packaged-release workflow

  1. Open the official osTicket download page and select the current release or the branch required by your compatibility plan. As of June 17, 2026, the page lists Core 1.17.8 and Core 1.18.4.
  2. Download the archive to a staging directory on the VPS, verify its checksum or signature when the project publishes one, and unpack it outside the public document root first.
  3. Copy the application files into the virtual host’s document root while preserving ownership and permissions. Keep a separate copy of the original archive and release identifier for rollback.
  4. Ensure the web-server account can read the application. Do not make the entire tree writable; only the installer’s configuration file needs temporary write access.

Repository deployment workflow

The project documents a source path that clones the repository and runs:

php manage.php deploy --setup /var/www/htdocs/osticket/

Adjust the destination to your actual document root. The command prepares the deployed tree and setup files; after the browser setup finishes, delete the deployed setup directory. For an upgrade, pull the intended source revision and redeploy only after backing up attachments, the database, and the codebase.

Run the browser installer

Browse to the HTTPS hostname. The installer checks server requirements, asks for site and administrator details, and writes the database schema and configuration when the supplied credentials are valid.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Open the help-desk URL and read every requirement warning. Fix missing PHP modules, unsupported versions, URL Rewrite, file ownership, or database connectivity before continuing.
  2. Enter the help-desk name, administrator identity, email address, and a unique administrator password. Use an address that you monitor because it may receive alerts and password-recovery messages.
  3. Enter the database host, database name, username, and password created earlier. The installer account must have full privileges on the target database during this operation.
  4. Allow the installer to write include/ost-config.php. This is a temporary requirement; do not leave the file writable after setup.
  5. Submit the form and wait for the schema creation to complete. If it fails, record the exact error, inspect web/PHP and database logs, correct the underlying problem, and rerun rather than repeatedly guessing credentials.

When the installer reports success, sign in to the staff control panel and confirm that a test ticket can be created, assigned, replied to, and viewed by the intended user roles.

Finish the installation securely

Do these steps immediately after a successful installation, before publishing the help-desk address widely:

  1. Remove write permission from include/ost-config.php. The web-server account should be able to read it but not modify it during ordinary operation.
  2. Delete the setup/ directory from the live tree. Leaving setup accessible gives an attacker an unnecessary installation surface.
  3. Enable the system in osTicket’s administration interface. A newly installed system can remain disabled until you explicitly turn it on.
  4. Confirm the final permissions and ownership recursively. Avoid broad modes such as writable-by-everyone.
  5. Verify HTTPS, redirect behavior, session cookies, administrator access, and the absence of setup pages from the public URL.

At the VPS layer, restrict the administration panel to trusted networks or a VPN when practical. Keep MySQL private, apply operating-system and PHP security updates, and monitor authentication, web, PHP, database, and osTicket logs.

Configure incoming email and cron

Create the osTicket mail queue

For POP3 or IMAP intake, configure an osTicket email queue with the mailbox host, port, encryption mode, username, and password supplied by your mail provider. Use a dedicated mailbox, a strong secret, and the least access the provider supports. Send a controlled test message and confirm that osTicket creates a ticket or appends to the intended thread.

Schedule the polling script

Mail fetching is a scheduled task that runs api/cron.php. The official example runs it every five minutes. A system cron entry has this shape:

*/5 * * * * /usr/bin/php /var/www/osticket/api/cron.php

Replace both paths with the PHP executable and osTicket document root on your VPS. Run the same command manually first, as the same operating-system user used by cron. Check the command’s output and then inspect osTicket system logs, PHP/web-server logs, and the mail-server logs.

Rank #3
AMD Ryzen™ AI Halo - Personal AI Desktop Computer - Developer Platform - Linux OS
  • Built for Local AI Development: AMD Ryzen AI Halo is designed for local AI development and inference, featuring 128GB unified memory and support for up to 200B parameter models to build and run intensive AI workloads locally.
  • 128GB Unified Memory: Features 128GB LPDDR5x unified memory at 8000 MT/s with 256 GB/s memory bandwidth, providing a shared memory pool across the CPU, GPU, and NPU to support larger AI models.
  • AMD Ryzen AI Max+ 395 Processor: Features 16 cores, 32 threads, and Zen 5 architecture, paired with AMD Radeon 8060S integrated graphics featuring 40 RDNA 3.5 compute units and an AMD XDNA 2 NPU with up to 50 TOPS.
  • Linux AI Developer Platform: Purpose-built for Linux-based AI development with full AMD ROCm software support and preloaded tools, models, and workflows optimized for local AI development.
  • Compact, Connected Design: Includes a 2TB M.2 SSD, 10GbE LAN, Wi-Fi 7, Bluetooth 5.4, USB-C connectivity, and HDMI 2.1b.

Protect externally triggered polling

If your hosting scheduler cannot execute a local command and must call a public URL, do not expose an unauthenticated polling endpoint. The documented mechanism requires both an allowed originating IP and an API key supplied as the User-Agent. Restrict the endpoint to the scheduler’s fixed addresses, configure the key in osTicket, and ensure the scheduler sends that exact User-Agent. Test from an approved address, verify that a request from an unapproved address is rejected, and only then return the scheduler to its intended interval.

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

Use local CLI cron when possible: it avoids an internet-facing trigger and removes DNS, TLS, firewall, and source-IP complications. Whichever method you choose, prevent overlapping runs if a slow mail server can make one five-minute job last longer than its interval.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Backups, upgrades, and rollback

What to back up

A restorable osTicket backup has three parts:

  • The MySQL database, including a tested dump and the credentials or procedure needed to restore it.
  • Uploaded attachments and any other user-generated files stored by the application.
  • The codebase and deployment metadata, including the exact release or repository revision and your web-server/PHP configuration.

Schedule database and attachment backups, encrypt them in transit and at rest, keep copies outside the VPS, and test restoration on a separate instance. A backup that has never been restored is an assumption, not a recovery plan.

Upgrade a packaged installation

  1. Read the target release requirements and confirm your PHP, database, and extensions are compatible.
  2. Put the help desk in a maintenance window and record the current release.
  3. Back up the database, attachments, and codebase.
  4. Download and verify the target release, then deploy it according to the project’s upgrade instructions without overwriting your only rollback copy.
  5. Run any required upgrade step, test login, ticket creation, attachments, mail polling, and scheduled jobs, and monitor logs.
  6. Restore the hardened state: configuration file not writable, setup directory absent, HTTPS enforced, and system enabled.

Upgrade a repository deployment

The documented repository path is to pull the desired source and redeploy it with the deployment command. Back up attachments, the database, and the codebase first. Keep the previous revision available until the new deployment passes functional tests; if it fails, restore the backup and redeploy the known-good revision rather than editing production files ad hoc.

Deployment choices and operational trade-offs

Decision Choose this when Main responsibility
Apache You want a common Linux VPS setup with documented URL Rewrite support. Patch Apache/PHP, maintain the virtual host, certificates, logs, and permissions.
LiteSpeed or IIS Your team already operates that supported server and can provide URL Rewrite. Validate PHP integration, rewrite behavior, and service-specific logging.
CLI cron You control the VPS and can run PHP locally. Correct executable/path, non-overlap, exit monitoring, and local log review.
External scheduler Your platform cannot run local cron. HTTPS exposure, fixed source-IP allow-list, API key/User-Agent, and rejection testing.
Packaged release You prefer a fixed archive and a simple first deployment. Repeatable archive verification, file replacement, and rollback during upgrades.
Repository deployment You need source-based redeployment and already use Git operationally. Revision control, deployment isolation, and disciplined backup/rollback.

Troubleshooting by symptom

The installer says a requirement is missing

Check the PHP version used by the web server, not only the command-line binary. Confirm each required extension is loaded, restart the PHP handler after enabling modules, and reload the installer. Verify URL Rewrite and the virtual-host document root as well.

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

Database connection or schema creation fails

Confirm the hostname, port, database name, username, and password. Test connectivity from the VPS, ensure MySQL is listening on the address you selected, and check that the installer account has full privileges on the target database. Inspect the database error log for authentication, character-set, or resource errors.

Blank page or HTTP 500 error

Read the web-server and PHP error logs at the time of the request. Common causes include an unsupported PHP release, a missing extension, a syntax error from a partial deployment, incorrect ownership, or a PHP memory/resource limit. Fix the logged cause, then retest; do not hide the error by disabling all diagnostics permanently.

Mail polling runs but no tickets arrive

Run the cron command manually with the same PHP binary and user. Check the queue credentials, IMAP/POP3 encryption and port, mailbox contents, osTicket system logs, and mail-server logs. For an external scheduler, verify the source IP allow-list and the API-key User-Agent exactly. Confirm that the scheduler is not invoking the job more often than the mail server or osTicket can process.

Attachments fail or disappear after an upgrade

Check that the attachment directory was included in the backup and copied to the new deployment with readable ownership. Compare the configured paths before and after the upgrade, then test a new upload and a download from an existing ticket.

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

Operational checklist

  • Release branch and exact osTicket version recorded.
  • Apache, LiteSpeed, or IIS running with URL Rewrite.
  • PHP 8.2–8.4 selected and required extensions enabled.
  • MySQL 5.5 or newer private to the VPS or private network.
  • HTTPS certificate active and HTTP redirected.
  • include/ost-config.php readable but not writable.
  • setup/ deleted and system enabled.
  • Administrator and staff access restricted and audited.
  • CLI cron or protected external polling tested.
  • Database, attachments, and code backups scheduled and restoration rehearsed.
  • Apache/PHP/database/osTicket/mail logs reviewed during routine operations and incidents.

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.