Shared hosting or a small server
This page is for individuals deciding where their site will live. There are three realistic places; each works, and each leaves different work to you. The hosting section has the detail for hosts (Choosing a hosting model).
Warning
.htaccess slows down every request. When .htaccess files are enabled (AllowOverride anything but None), let alone
used, Apache looks for them and reads and evaluates them on every request, in every directory of the path, and
page loading times go up drastically (measured). The only real fix is to switch the feature off for
the virtual host: AllowOverride None in the HTTPS virtual host, and the rules in the virtual host's own
configuration as mod_rewrite rules. That is far faster in production speed tests and well worth the time it takes
to optimize a production configuration. Switch over right away: copy the rules of the
example HTTPS virtual host into your virtual host (with the static cache, also
staticcache_offload.conf), set AllowOverride None, run apachectl configtest, reload Apache and
test the site. The same rules for other servers: nginx, LiteSpeed,
Caddy, IIS, Velocity (built in); where virtual host rules go in a control
panel: Plesk, cPanel, DirectAdmin, ISPConfig.
On LiteSpeed or OpenLiteSpeed, the server's own page cache can also answer anonymous visitors and crawlers without PHP: Page caching with LiteSpeed and OpenLiteSpeed.
Contents
- The three places
- Shared hosting
- A small virtual server
- A machine at home
- Questions to ask any host
- Moving later
The three places
| Shared hosting | Small virtual server | Machine at home | |
|---|---|---|---|
| You manage | The site | The site and the operating system | Everything, including the connection |
| Shell access | Often none | Yes | Yes |
| Velocity | Usually not allowed | Yes | Yes |
| Served by | Apache or LiteSpeed with .htaccess | Velocity, or Apache or nginx with PHP-FPM | Same as a server |
| Install with | The setup wizard | exp:install or the kickstarter | Same as a server |
| Updates of the system | The host | You | You |
| Suits | Personal sites, small blogs, family sites | Portfolios, clubs, anyone who wants control | Learning; small private family sites, with care |
Shared hosting
The project's sources say it plainly: "Your hosting will not let you run a long-lived process. Shared hosting usually
will not. Apache or LiteSpeed with .htaccess is the answer there." (root README.md, quoted in
Shared hosting). What you need to know:
- Install with the setup wizard, by FTP and browser (Choosing an install method).
- SQLite removes the need for a database account; or use the panel's database.
- Cron: schedule
runcronjobs.phpin the panel's cron page with the same PHP version as the site; newsletters and scheduled publishing depend on it (Shared hosting, Cron jobs). - PHP settings per account: memory, upload sizes, the functions the cronjob page needs (PHP settings for Exponential).
- No Velocity in most cases; the site is still fast with the 6.0.15 cache fixes.
A small virtual server
A virtual private server gives you a whole (small) machine:
- Velocity serves the site without Apache or nginx, and handles HTTPS certificates itself (Serving the site, Velocity).
- Or Apache or nginx with PHP-FPM, if you know them.
- You keep the operating system updated, the firewall closed, backups running and mail working (VPS hosting).
- Size: a small site needs little; see Sizing memory, CPU and disk.
If keeping an operating system patched sounds like a chore you will skip, choose shared or managed hosting instead. An unpatched server is worse than a slower one.
A machine at home
Possible, and good for learning. For a public site it brings problems that hosting solves for you: a changing address, an internet provider that may block incoming connections or outgoing mail, power and hardware failures, and your home network exposed to the internet. A family site that only relatives use is the most reasonable case; still keep backups away from that machine.
Questions to ask any host
| Question | Why |
|---|---|
| Which PHP versions, and can I choose 8.x per site? | PHP 8.0 or later (PHP 7.4 usable without support) is required |
Are intl, mbstring, xsl, gd or ImageMagick, sqlite3 available? | Required or needed extensions (PHP versions and extensions) |
| Can I run cron every few minutes? | Newsletters, scheduled publishing |
| Can the site send mail, and from my domain? | Registration, password reset, forms, newsletters |
| Is there shell access? | Composer, console install, maintenance |
| Are long-running processes allowed? | Velocity |
| How are backups done, and can I download them? | Your own copy |
| Is HTTPS included? | Signing in must be encrypted |
More in What to ask your host.
Moving later
Starting on shared hosting and moving to a server later is normal. A move is: the code, the database (with SQLite,
one file), var/storage and your settings, then the new address in the settings and DNS
(Backups for one person, Domain names and HTTPS).
Rehearse it once with a copy.
Related pages
- Setup for individuals
- Shared hosting
- VPS hosting
- Hosting for a website
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.