phpVMS
How to install phpVMS 7: step-by-step guide
To install phpVMS 7, upload a phpVMS release to your web host, point your domain or subdomain at its public folder, make the cache and storage folders writable, create an empty database, then visit your site to run the web installer. Finish by adding a cron job that runs phpVMS every minute.
A phpVMS 7 install comes down to five jobs: upload the files with the document root pointing at public, fix folder permissions, create the database, run the web installer, and set up cron. Cron is the easiest to miss, because phpVMS loads fine without it. This guide follows the order the phpVMS installation guide uses for a virtual airline (VA) install, and adds fixes for the problems we'd check first.
If you haven't picked a host yet, read phpVMS hosting first. Some cheap hosts can't run phpVMS properly, and it's easier to find out before you upload anything.
Before you start
You need:
- A host that meets the phpVMS requirements. When we checked the phpVMS 7 documentation in October 2026, it listed PHP 8.1 or newer and a set of PHP extensions (cURL, JSON, fileinfo, mbstring, openssl, PDO, tokenizer, bcmath, intl and zip), plus a supported database server. Check the phpVMS requirements page for the current list.
- A domain or subdomain. We'd suggest a subdomain such as
crew.yourairline.comfor phpVMS (the phpVMS documentation recommends one on shared hosting), keeping the main domain for a landing page. - File access. A control panel file manager or FTP is enough. Shell (SSH) access makes several steps faster and some fixes possible.
- Database access. Your host's control panel or database tool, to create a database and user.
Download the latest phpVMS 7 release from the phpVMS site. Use the packaged release rather than cloning the source code: the release already includes its dependencies, while a clone needs PHP's dependency manager run on the server before it will work.
Step 1: upload the files
phpVMS has a public folder, and only that folder should be reachable from the web. Everything else (configuration, logs, the code itself) must sit outside your web root. The phpVMS documentation describes four ways to do that on shared hosting:
| Option | How it works | When to use it |
|---|---|---|
| Subdomain (recommended) | Extract phpVMS into its own folder next to your web root, then set the subdomain's document root to that folder's public subfolder | Shared hosting, with a separate main site |
| Copy the public folder | Upload phpVMS to a phpvms folder in your home directory, then copy the contents of public into your web root | phpVMS is your main site. You must update those copied files by hand on every upgrade |
| Symlink | Replace your web root with a symlink to phpvms/public | Advanced, needs shell access, not recommended on shared hosts |
| Upload into the web root | Put phpVMS straight into your public web folder | Not recommended: it can expose sensitive files if the server's rewrite rules aren't active |
On your own server, extract phpVMS anywhere and point the virtual host's document root at public (the phpVMS documentation has example virtual host configurations). The documentation discourages running phpVMS in a subdirectory of another site.
Step 2: set folder permissions
phpVMS writes to its cache, session and log folders. Give your web server user read and write access (the documentation uses 775) to:
bootstrapandbootstrap/cachestorage/logsstorage/framework/cache,storage/framework/sessionandstorage/framework/views
Wrong permissions can cause a blank page or a server error on the first visit.
Step 3: create the database
Create an empty database, a user and a strong password, and give that user full privileges on the database. Use a Unicode character set and collation (the documentation's example uses utf8_unicode_ci). Without it, airport names, pilot names and news posts in languages other than English can come out garbled.
Write down the database name, username, password and server address. Your host will tell you the address, for example localhost or 127.0.0.1.
Step 4: run the web installer
Visit your phpVMS address in a browser. With no configuration yet, phpVMS sends you to its installer.
- Requirements check. The installer lists PHP's version and each required extension. It only continues when every item passes. If one fails, enable that extension in your host's PHP settings and reload.
- Database details. Enter your site name and URL, choose your database type, then enter the credentials from Step 3. Use Test Database Credentials before you continue.
- Set up the database. The installer creates phpVMS's tables.
- Airline and admin account. Enter your airline's details and your own admin username and password. This first account becomes an administrator.
- Finish. Sign in and you land on your dashboard.
Moving from phpVMS 5? The installer has a legacy import option that reads your old database. Back up both sites before you run it.
Step 5: set up cron
phpVMS needs a scheduled task that runs once a minute. It drives the job queue (emails and notifications), finances and other timed work. Without it, phpVMS loads fine but parts of it quietly stop working. The phpVMS cron guide lists what depends on it.
With shell access, add a crontab entry that runs phpVMS's bin/cron script every minute with your PHP binary. If your host only offers a control panel, choose "once per minute" and use the PHP path your host gives you. If your host offers several PHP versions, make sure cron uses the same one as your website.
If you can't run server cron at all, phpVMS has a web cron option under Admin > Maintenance. It's off by default. Turn it on and phpVMS gives you a URL to call from an external scheduler every minute.
Step 6: after the install
- Review the configuration. Set up email sending so registration and notification emails go out.
- Turn on HTTPS. Pilots sign in to this site, and ACARS clients send their credentials to it.
- Add your airline's data. Airports, subfleets and aircraft, ranks, then schedules. Ranks can decide which aircraft pilots may fly, so set them up before you open registrations.
- Pick your extras. Themes change the look, and phpVMS modules add features.
Updating phpVMS later
Back up your site and database, and at least your .env file and any files you changed in config. Delete the vendor folder, empty (don't delete) bootstrap/cache and storage/framework/cache, then upload the new release over the old one. Finish by visiting /update on your site, which applies any database changes. The phpVMS update guide has the current steps.
Common installation problems
| Symptom | Likely cause |
|---|---|
| 500 error on the first visit | Folder permissions, a missing PHP extension, or a PHP version that's too old. Check your host's error log and phpVMS's storage/logs folder |
| Installer won't pass requirements | A required PHP extension isn't enabled |
| Garbled characters in names | The database was created without a Unicode collation |
| Emails never arrive | Cron isn't running, or email settings aren't configured |
| A directory listing or raw files show | The document root isn't pointing at public |
The phpVMS documentation keeps its own installation issues page for installer 404s and permission errors.
Frequently asked questions
Can I install phpVMS without SSH access?
Yes. You can upload with a file manager or FTP, run the web installer in your browser, and use web cron if server cron isn't available. Some maintenance commands and fixes are only possible from a shell, so a host with SSH is easier to live with.
Can I install phpVMS in a subfolder of my website?
The phpVMS documentation discourages it. Use a subdomain such as crew.yourairline.com with its document root set to phpVMS's public folder instead.
Why does phpVMS show a 500 error after installing?
Usually permissions on the bootstrap/cache and storage folders, a missing PHP extension or an old PHP version. The real error is in your server's error log or phpVMS's storage/logs folder.
Do I need to install anything on my computer?
No. phpVMS runs entirely on your web host. You need a browser, a way to upload files, and later the ACARS client your pilots will use so you can test a flight.
Where Stratos fits
Once phpVMS 7 is running, you can connect it to Stratos, the free ACARS client by Skyvex Software, by installing Skyvex Software's Stratos modules for phpVMS from your phpVMS admin. The Stratos Core API module needs PHP 8.2 or newer, so check your host's PHP version while you're setting up. The Stratos API modules guide and connect phpVMS to Stratos cover the next steps.
Stratos by Skyvex Software
Bring Stratos
to your airline.
Free for every pilot, and it works with phpVMS or your own backend. We onboard each airline personally and make sure it works with your setup before you go live.