How to self-host a PHP business app on shared hosting (2026)
The complete walkthrough for non-developers: what shared hosting is, the six-step install every product here uses, a try-it-locally path, and honest fixes for the three things that actually go wrong.
"Self-hosted software" has a reputation problem. It sounds like something that requires a terminal, a Linux certification, and a free weekend. For a certain class of software that reputation is deserved — but not for plain-PHP business apps, which were designed from the start to run on the cheapest, most ordinary web hosting there is. If you have ever installed WordPress, or even just uploaded files to a website, you already have every skill this guide needs. If you have never done either, budget half an hour instead of ten minutes and you will still finish today.
This guide uses the exact install flow documented in the QUICKSTART file that ships inside every product ZIP in this store — all 37 products follow the same pattern, so learn it once and you can install any of them.
Who this is for
You run a business, not a server rack. Someone — a comparison page, a forum thread, this store — told you there is a one-time-purchase alternative to the SaaS subscription you are paying, and the catch is that "you host it yourself." This guide is for the person who paused at that sentence.
Here is the honest shape of the task: you upload a folder of files, click through a short web form, and log in. There is no command line on the standard path, no code to edit, nothing to compile. The products here are plain PHP with no framework, no Composer, no build step — a deliberate choice precisely so that ordinary shared hosting can run them.
What shared hosting actually is
Shared hosting is the entry tier of web hosting: one physical server, many customers, each with their own isolated folder, database, and control panel (usually cPanel or something like it). It is how most of the world's small-business websites are hosted, and plans typically run $3–6 per month.
That price buys more than enough for a business app like the ones here. A typical plan includes:
- PHP — the language these apps are written in, pre-installed and pre-configured. You need PHP 8.0 or newer with the PDO extension, which is a standard part of any current hosting plan. Many hosts let you pick the PHP version from a dropdown in the control panel.
- A MySQL (or MariaDB) database — created with a few clicks in the panel. Or skip it entirely: every product here also runs on SQLite, which is a single file and needs zero setup.
- A file manager and FTP access — the two ways you will get files onto the server. The web file manager is enough; you never have to touch FTP if you don't want to.
- A domain and HTTPS — most panels now issue free SSL certificates automatically.
The rule of thumb printed on every product page here is accurate: if your host can run WordPress, it can run these. There is no minimum RAM to check, no Node runtime, no "does my host support X" research project. One ordinary PHP host, one app, done.
The six-step install
Every product in this store installs the same way. The QUICKSTART.txt inside your ZIP repeats these steps with product-specific details, but the pattern never changes.
1. Buy and download the ZIP. After checkout your download link and license key appear on the confirmation screen and in your receipt email. The ZIP contains the full application source, a QUICKSTART.txt, a README, and the license.
2. Unzip it and find the app/ folder. Everything the server needs is inside app/. The other files in the ZIP — docs, license — stay on your computer.
*3. Upload the contents* of app/ to your web root.** In cPanel, open File Manager, navigate to public_html/ (or a subfolder like public_html/invoices/ if the app should live at yourdomain.com/invoices), and upload the files. Most file managers let you upload the ZIP and extract it on the server, which is much faster than uploading files one by one. FTP works too if you prefer it. One detail matters: upload the contents of app/ — the files inside it — not the app folder itself, unless you want the app to live at /app/.
4. Create a database — or don't. You have two options, and both are first-class:
- MySQL: in cPanel, open "MySQL Databases," create a database, create a user, add the user to the database with all privileges, and note the database name, username, and password. Two minutes of clicking.
- SQLite: skip this step entirely. The app keeps its whole database in one file inside its
data/folder. For a first install, a trial, or a small deployment, SQLite is the zero-configuration path — you can always move to MySQL later.
While you are in the file manager, check that the app's data/ directory is writable by the server: right-click → Permissions → 755 (or 775 if your host needs it). This is the one folder the app writes to.
5. Open your domain — the installer walks you through. Visit your domain (or the /install/ path — the QUICKSTART tells you which; on most products the installer starts automatically the first time you open the site). A short form asks for your database choice (MySQL credentials, or SQLite with nothing to fill in), your business name, currency and timezone, and an admin email and password. Submit, and the installer writes the configuration file and creates the database tables itself.
6. Log in. The installer drops you at the login page. Sign in with the admin account you just created. Most products include a "Load demo data" button in Settings so you can explore a realistic sample business before entering anything real — and a matching "Reset all data" when you are done exploring.
That is the whole procedure. The installer form is genuinely the two-minute part; uploading files is most of the elapsed time.
The cautious path: try it on your own computer first
If you would rather see the app working before you touch a web host at all, every product here runs on the PHP built-in web server with one command. Install PHP on your computer (a standard download on any platform), unzip the product, and inside the app/ folder run:
```
php -S localhost:8000 router.php
```
Then open http://localhost:8000 in your browser. The same installer appears; choose SQLite and you have a complete, working install on your own machine with no server, no Apache, and nothing to pay for hosting yet. Load the demo data, click around, decide whether the tool fits — then do the real install on your host when you are convinced. Nothing you learn is wasted: the hosted install is the same flow.
When something goes wrong
Three failure points cover nearly every real support case, and all three come straight from the troubleshooting notes in the products' own documentation.
The installer page won't load, or you see raw PHP code or a syntax error. Your host is running an old PHP version. These apps need PHP 8.0 or newer (they are tested on 8.3). Most control panels have a "Select PHP Version" or "MultiPHP Manager" screen — switch to 8.x and reload the page. If the page is a plain 404 instead, check that the files landed in the right folder (a stray nested app/ directory from extracting the ZIP is the usual culprit) and that your host supports .htaccess rewrites, which any standard Apache or LiteSpeed shared host does.
The installer rejects your database details. Almost always a credentials mismatch. Re-check all four values against your hosting panel: host (usually localhost on shared hosting), database name, username, password. Note that cPanel typically prefixes both the database and the user with your account name (youracct_invoices, youracct_dbuser) — the prefixed version is the real name. Confirm the user has actually been added to the database with privileges; creating both is not enough, the panel makes you link them as a third step. If you cannot get MySQL to cooperate, choose SQLite in the installer and move on — you can migrate later.
The app installs but cannot save anything, or the installer cannot write its config. File permissions. The data/ directory must be writable by PHP: in the file manager, set it to 755, or 775 if 755 is not enough on your host. This is the only folder the app needs to write to — the shipped .htaccess already blocks the outside world from reading it, along with config.php and the database file, so making it writable does not expose it.
If none of these three fixes it, the QUICKSTART in your ZIP has product-specific notes, and support is available with your purchase — include your PHP version, database type, and the exact error text.
What you now own
When the login page loads, the transaction is complete in a way subscription software never is. From here:
- Your data lives in one place you control — a MySQL database or a single SQLite file, plus the
data/folder. Backing up is copying those; set a weekly reminder or use your host's backup feature, because that job is now yours. - Updates are a re-download, not a renewal. Your download link always serves the current build — fetch it from your order page whenever you like, upload the new files over the old ones, and the app upgrades its own database on the next load. No auto-updater, nothing phoning home.
- There is no next invoice. No per-seat pricing, no plan tiers, no price increase email. The hosting you already pay for is the entire running cost.
If you are still comparing options, the alternatives pages put each product next to the subscription tools it replaces, with sourced prices. And once you have installed one product from this store, you have installed all of them — the full catalog follows the exact same six steps you just learned.