
Hosting HQ: Domains, Servers, SSL, Uptime, and Why the Site Is Down Again
Welcome to Web Dev → Hosting — the Fyrbloc place for hosting questions, server setup, domains, DNS, SSL, uptime, migrations, storage, backups, PHP versions, control panels, email delivery, redirects, speed problems, and that deeply calm moment when your website says:
This site can’t be reached
and your soul briefly leaves the room.
Hosting is where your project meets the real internet.
Locally, everything is peaceful.
On the server, reality arrives with permissions, DNS caches, SSL certificates, upload limits, and logs written like ancient warnings.
This section is for keeping websites online, stable, fast, secure, and slightly less cursed.

What belongs here?
Use Web Dev → Hosting for topics like:
- Web hosting setup
- Shared hosting
- VPS hosting
- Cloud servers
- Dedicated servers
- Control panels
- CloudPanel
- cPanel
- Plesk
- Nginx
- Apache
- PHP-FPM
- SSL certificates
- DNS records
- Domain pointing
- Site migrations
- Upload limits
- Storage limits
- Backups
- Restores
- Uptime monitoring
- Server errors
- 403 / 404 / 500 issues
- Redirect problems
- Email deliverability
- CDN setup
- Cloudflare
- Performance
- Security basics
- “It works on my Wi-Fi but not mobile data” chaos
If the issue is about where the site lives, how it loads, why it fails, or why the server is making you question your decisions, post it here.
Hosting help template
Copy this when asking for help:
Website/domain:
Hosting type:
Shared / VPS / Cloud / Dedicated / Other
Hosting provider/control panel:
App/script/framework:
PHP/Node version:
Web server:
Nginx / Apache / LiteSpeed / Other
What I am trying to do:
What happened:
What I expected:
Exact error:
What changed recently:
What I already tried:
Logs/screenshots:
Private info removed:
Yes
Example:
Website/domain:
example.com
Hosting type:
VPS
Hosting provider/control panel:
CloudPanel
App/script/framework:
Flarum
PHP version:
8.4
Web server:
Nginx
What I am trying to do:
Move the site to a new server.
What happened:
Domain loads a 403 Forbidden page.
What I expected:
The forum homepage should load.
Exact error:
403 Forbidden
What changed recently:
Changed the web root and DNS.
What I already tried:
Checked DNS, reloaded PHP-FPM, cleared app cache.
Logs/screenshots:
Added below.
Private info removed:
Yes
That is a useful hosting post.
Much better than:
Site dead.
The site may be dead.
But we still need the cause of death.

First hosting checks
Before panic-posting, check the basics.
Is the domain pointing to the right server?
Check DNS:
dig example.com
dig www.example.com
Useful records:
A record:
Points domain to IPv4 server address.
AAAA record:
Points domain to IPv6 server address.
CNAME:
Points one name to another name.
MX:
Email routing.
TXT:
Verification, SPF, DKIM, DMARC, ownership checks.
If DNS was changed recently, it may take time to update everywhere.
DNS is not instant.
DNS moves like it is carrying a sofa upstairs.
Is the site actually down?
Test:
Different browser
Private/incognito mode
Mobile data
Another device
Online uptime checker
Sometimes the site is not down.
Sometimes your browser cache is being dramatic.
Sometimes your Wi-Fi remembers the old DNS and refuses to move on emotionally.
Is SSL working?
Check:
Does http:// work?
Does https:// work?
Does www work?
Does non-www work?
Is the certificate issued?
Is the certificate expired?
Is Cloudflare involved?
SSL issues often look scarier than they are.
But users do not like browser warnings.
A browser warning makes even a normal website feel like it sells cursed batteries.
Common hosting problems
403 Forbidden
Usually means:
Wrong web root
Missing index file
Bad permissions
Access denied by server config
App public folder not selected
Nginx/Apache rule issue
Check:
pwd
ls -lah
For Laravel and Flarum, the web root usually needs to point to:
/public
If the web root points to the wrong folder, the server may stare at your files and say:
No.
Very direct.
Not very helpful.
404 Not Found
Possible causes:
Wrong URL
Missing file
Bad rewrite rules
Wrong web root
Routes not configured
Nginx/Apache config issue
App cache issue
For apps with pretty URLs, check rewrite rules.
For Laravel/Flarum, make sure requests are being routed through index.php.
A 404 can mean the page does not exist.
Or it can mean the server is looking in the wrong cupboard.
500 Internal Server Error
This means something failed server-side.
Check logs.
For Laravel:
tail -n 100 storage/logs/laravel.log
For Flarum:
tail -n 100 storage/logs/*.log
For system errors:
journalctl -xe
For PHP-FPM:
systemctl status php8.4-fpm
The browser says:
500 Internal Server Error
The log says:
Here is the actual problem.
Trust the log.
The browser is just waving a red flag with no map.

Hosting types
Shared hosting
Good for:
Small websites
WordPress
Simple PHP sites
Starter projects
Low-maintenance pages
Watch out for:
Limited control
Lower performance
Shared resources
Upload limits
No root access
Restricted PHP settings
Shared hosting is fine for simple projects.
It is not fine when your app needs queues, workers, custom services, real-time processing, or server-level control.
Do not try to make shared hosting behave like a private server.
It will simply pretend not to hear you.
VPS / cloud server
Good for:
Laravel apps
Flarum forums
Node apps
Custom PHP projects
APIs
Multiple sites
Control panels
Better performance control
Watch out for:
Server maintenance
Security updates
Backups
Firewall
Logs
Permissions
Resource usage
Service crashes
A VPS gives more power.
It also gives more responsibility.
The server is now your pet.
Feed it updates.
Back it up.
Do not leave it outside in the internet without a firewall.
Dedicated server
Good for:
High traffic
Large platforms
Heavy workloads
Custom infrastructure
More isolation
Watch out for:
Cost
Maintenance
Scaling complexity
Security responsibility
Hardware/resource planning
Most small projects do not need dedicated hosting at the start.
Start practical.
Upgrade when the project actually needs it.
Do not buy a tank to deliver a sandwich.
Domain and DNS issues
When asking about DNS, include:
Domain:
DNS provider:
Hosting server IP:
A record:
CNAME record:
www setup:
Cloudflare used:
When DNS was changed:
What works:
What does not work:
Common DNS mistakes:
A record points to old server
www missing
Apex domain missing
Cloudflare proxy causing confusion
Wrong IP copied
AAAA record points somewhere else
DNS cache delay
Nameservers not changed
MX records damaged during move
If the website works at one place but not another, DNS cache may be involved.
DNS cache is the internet saying:
I remember the old thing and I refuse to discuss it.

SSL certificate problems
SSL issues can happen when:
DNS is not pointing correctly
www and apex are not both configured
Certificate expired
Certificate not issued
Cloudflare SSL mode is wrong
Mixed content loads HTTP assets
Firewall blocks validation
Server has wrong vHost
Useful checks:
Does the domain resolve correctly?
Does the web server answer on port 80?
Is HTTPS enabled in hosting panel?
Does www need its own certificate?
Is Cloudflare set to Full or Full Strict?
Are images/scripts loaded over HTTPS?
Mixed content example:
Page is HTTPS but image/script loads from HTTP.
Fix by using HTTPS links or local assets.
A secure page with insecure assets is like locking the front door while leaving the window open with a sign.
Email hosting and deliverability
Hosting often includes website email problems too.
Common topics:
SMTP setup
Contact forms
Transactional email
MX records
SPF
DKIM
DMARC
Email going to spam
Password reset emails
Forum notification emails
Order emails
Contact form failures
Useful details:
Email provider:
SMTP host:
SMTP port:
Encryption:
From address:
App/script:
Error message:
SPF/DKIM/DMARC status:
Do not post SMTP passwords.
Safe:
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=hidden
MAIL_PASSWORD=hidden
MAIL_ENCRYPTION=tls
Email deliverability is half technical setup and half convincing spam filters you are not a goblin.
Good luck.
Upload and file size problems
If uploads fail, check both hosting and app limits.
PHP settings:
upload_max_filesize
post_max_size
memory_limit
max_execution_time
Web server setting:
client_max_body_size
App setting:
Upload limit inside the script/app/admin panel
Useful checks:
php -i | grep upload_max_filesize
php -i | grep post_max_size
php -i | grep memory_limit
When posting upload issues, include:
File size:
File type:
App/script:
PHP limits:
Server limits:
Exact error:
Uploads fail when several settings disagree.
They form a tiny committee.
The committee is slow and wears grey.

Backups
Every hosted project needs backups.
Back up:
Website files
Database
Uploads/media
Config files
.env files
composer.json
composer.lock
Custom server configs
Nginx/Apache vHosts
SSL info if needed
Backup before:
Major updates
Server moves
App upgrades
Composer updates
Database migrations
Permission changes
PHP version changes
Theme changes
Plugin/extension installs
A backup should be:
Recent
Complete
Downloadable
Restorable
Tested
Stored somewhere safe
A backup that cannot restore is not a backup.
It is a decorative zip file.
Migrations and moving hosts
When moving a site, checklist:
Export files
Export database
Create site on new host
Upload files
Import database
Set correct config
Set correct PHP version
Set web root
Fix permissions
Test on temporary URL or hosts file
Update DNS
Issue SSL
Clear app cache
Test email
Test uploads
Test login
Monitor logs
Do not move DNS first and then discover the database import failed.
That is how launches become live theatre.
Move carefully.
Test before switching traffic.
Performance hosting checks
If the site is slow, include:
Hosting type:
Server resources:
App/script:
PHP version:
Database size:
Cache enabled:
CDN used:
PageSpeed result:
Slow page URL:
Recent changes:
Common speed issues:
Cheap shared hosting
No caching
Huge images
Slow database queries
Too many plugins/extensions
No OPcache
No CDN
Heavy third-party scripts
Large uploads served directly
Bad theme
Basic checks:
Image size
Caching
Database queries
Server CPU/RAM
Network latency
PHP-FPM status
Error logs
Sometimes the server is slow.
Sometimes the website is carrying a 9MB hero image like a suitcase full of bricks.
Check both.

Security basics
Hosting security matters.
Basic habits:
Use strong passwords
Use SSH keys where possible
Keep software updated
Keep PHP updated
Remove unused apps
Disable old test sites
Back up regularly
Use SSL
Limit admin access
Protect private files
Do not expose .env
Check file permissions
Do not upload mystery scripts
Use firewall rules
Monitor logs
Never post:
Root passwords
SSH private keys
Database passwords
SMTP passwords
API keys
CloudPanel/cPanel login
Private backups
Customer data
Payment data
If you expose a secret, rotate it.
Deleting the post is not enough.
The internet has screenshots, caches, and gremlins.
Good hosting post titles
Use clear titles like:
Website shows 403 after moving web root to public
SSL works on apex but not www
DNS changed but domain still points to old server
Upload fails above 64MB on VPS hosting
Laravel site shows 500 after migration to new host
Email from contact form goes to spam after hosting move
Avoid:
Hosting help
Site down
Server problem
Question
Those titles do not give enough signal.
Give people a useful clue before they click.
Good replies in hosting threads
Helpful replies:
Check whether the DNS A record points to the new server IP.
A 403 after deployment often means wrong web root or file permissions.
If only www fails, check the www record and SSL coverage.
Upload limits may need changing in both PHP and Nginx.
Before changing DNS, test the site on the new server first.
Less useful replies:
Bad host.
Just move.
Reinstall everything.
No idea.
No.
Hosting problems need diagnosis.
Not dramatic furniture movement.

Hosting checklist before posting
Before posting, check:
Did I include the domain?
Did I include hosting type?
Did I include control panel/provider?
Did I include app/script/framework?
Did I include PHP/Node version if relevant?
Did I include exact error?
Did I mention DNS/SSL changes?
Did I check logs?
Did I say what changed recently?
Did I remove private information?
That is enough.
Hosting issues are solvable faster when the basics are visible.
Without the basics, everyone asks:
What host?
What domain?
What error?
What changed?
Save time.
Post the details first.
Quick hosting starter prompt
Use this:
Hosting issue:
Domain:
Hosting type:
Provider/panel:
App/script:
Server stack:
What I expected:
What happened:
Error:
What changed recently:
What I tried:
Logs/screenshots:
Private info removed:
Yes
Example:
Hosting issue:
Site loads without CSS after moving server.
Domain:
example.com
Hosting type:
VPS
Provider/panel:
CloudPanel
App/script:
Flarum
Server stack:
Nginx, PHP 8.4, MySQL
What I expected:
Forum should load normally with styling.
What happened:
Homepage loads but CSS/JS assets return 404.
Error:
404 on public/assets files.
What changed recently:
Moved files to a new server and changed web root.
What I tried:
Cleared cache and published assets.
Logs/screenshots:
Added below.
Private info removed:
Yes
Clean.
Debuggable.
Not a server séance.
Final note
Hosting is not glamorous, but it decides whether your project actually exists online.
A great website on broken hosting is just a local dream with DNS problems.
Good hosting habits keep the build alive:
Correct DNS
Correct SSL
Correct web root
Correct permissions
Useful logs
Reliable backups
Safe updates
Working email
Monitored uptime
Bring details.
Check logs.
Hide secrets.
Back up before risky changes.
Do not blame DNS until you have blamed DNS properly.
Build. Host. Monitor. Back Up. Ship.