When your website goes down, quick diagnosis is essential. This guide provides a systematic approach to identifying and fixing the most common causes of website downtime on your Data Mammoth server.
Quick Diagnosis Flowchart
Work through these checks in order — each step narrows down the cause:
Step 1 — Check Server Status
Also check for any billing-related suspensions — overdue invoices can cause service suspension. See How to Pay an Invoice.
Step 2 — Test SSH Access
ssh [email protected]- If SSH connects — The server is online. Proceed to check web services.
- If SSH times out — The server may be unresponsive or the firewall may be blocking SSH. Try the web console.
- If SSH is refused — SSH service may be down. Use the web console.
Step 3 — Check the Web Server
Nginx
sudo systemctl status nginxIf Nginx is not running:
sudo systemctl start nginxIf it fails to start, check the configuration:
sudo nginx -tFix any errors reported, then restart.
Apache
sudo systemctl status apache2 # Ubuntu/Debian
sudo systemctl status httpd # CentOS/AlmaLinuxIf not running:
sudo systemctl start apache2Check configuration:
sudo apache2ctl configtestStep 4 — Check Error Logs
Error logs reveal the specific cause of the issue:
# Nginx
sudo tail -50 /var/log/nginx/error.logApache
sudo tail -50 /var/log/apache2/error.log # Ubuntu/Debian
sudo tail -50 /var/log/httpd/error_log # CentOS/AlmaLinuxPHP-FPM
sudo tail -50 /var/log/php*-fpm.logCommon errors and solutions:
| Error | Solution |
|---|---|
502 Bad Gateway | PHP-FPM or application backend crashed — restart it |
503 Service Unavailable | Web server overloaded — check resources |
Permission denied | Fix file ownership and permissions |
No space left on device | Clean up disk space |
Too many open files | Increase file descriptor limits |
Step 5 — Check DNS
From your local machine:
dig example.com A +short- If the result matches your server's IP (
203.0.113.10) — DNS is correct. - If the result is wrong or empty — DNS is misconfigured. See DNS Not Resolving.
Step 6 — Check the Firewall
Ensure ports 80 and 443 are open:
# UFW
sudo ufw statusfirewalld
sudo firewall-cmd --list-allIf web ports are blocked:
# UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpfirewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reloadSee Firewall Blocking Legitimate Traffic.
Step 7 — Check Application Services
PHP-FPM
sudo systemctl status php*-fpm
sudo systemctl restart php*-fpmDatabase
sudo systemctl status mysql # or mariadb, postgresql
sudo systemctl restart mysqlIf the database is down, your application will typically show a "database connection error."
Application-Specific
Check application logs in your web root or application directory for specific error messages.
Step 8 — Check Server Resources
# CPU and memory
htopDisk space
df -hCheck for high I/O wait
vmstat 5 3If resources are maxed out, see Slow Server Performance.
Quick Restart Sequence
If the cause is not immediately clear, try restarting services in order:
sudo systemctl restart php*-fpm
sudo systemctl restart nginx # or apache2
sudo systemctl restart mysql # or mariadbWhat to Do Next
- DNS Not Resolving — Fix DNS issues.
- Slow Server Performance — Optimize a slow server.
- Firewall Blocking Legitimate Traffic — Fix firewall rules.
- How to Submit a Support Ticket — Get expert help.