Troubleshooting Common Server Issues: Developer Guide

Site down, disk full, memory exhausted, permission denied — 10 common problems and their solutions with clear steps.
Introduction
No matter how well-configured your server is, you will eventually encounter a technical issue that needs quick resolution. The ability to diagnose problems systematically is what separates a minutes-long outage from a hours-long disaster. This guide covers the most common Linux server problems and how to resolve them step by step.
1. Server Not Responding
Check Server Status
Always start by determining whether the problem is with the server itself or the network:
ping your-server-ip
traceroute your-server-ip
If ping works but websites are not loading, the issue is with the web service, not the server hardware.
Check Resource Usage
# CPU and memory usage
top
htop
# Disk space
df -h
# Memory usage
free -m
If CPU is at 100% or memory is exhausted, that is the root cause of the unresponsiveness.
2. Memory (RAM) Problems
Diagnosing Out-of-Memory
# Show processes consuming the most memory
ps aux --sort=-%mem | head -20
# Check OOM Killer log
dmesg | grep -i "killed process"
journalctl -k | grep -i "out of memory"
Temporary Fix
# Free page cache without stopping services
sync; echo 3 > /proc/sys/vm/drop_caches
Permanent Solution
If your application genuinely needs more RAM, the correct solution is to upgrade your server specifications. On cloud.net.sa, you can add RAM at 600 SAR per 2GB without requiring a server restart or data migration.
3. Disk Problems
Full Disk
# Find the directories consuming the most space
du -sh /* 2>/dev/null | sort -rh | head -20
# Find large files
find / -size +100M -type f 2>/dev/null | sort -k5 -rn
# Clean old nginx logs
find /var/log/nginx -name "*.log" -mtime +30 -delete
# Remove unused packages
apt autoremove -y
apt autoclean
Full inode Table
# Check inode usage
df -i
# Find directories with many files
find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -rn | head -10
4. nginx Issues
nginx Won't Start
# Check error log
tail -50 /var/log/nginx/error.log
# Test configuration syntax
nginx -t
# Restart nginx
systemctl restart nginx
systemctl status nginx
Common nginx Errors
| Error | Cause | Fix |
|---|---|---|
| 502 Bad Gateway | Application not running | Check PHP-FPM or Node.js process |
| 504 Gateway Timeout | Application too slow | Increase timeout settings |
| 413 Request Entity Too Large | File exceeds size limit | Increase client_max_body_size |
| 403 Forbidden | Permission error | Check chmod and chown settings |
# Allow larger uploads
echo "client_max_body_size 100M;" > /etc/nginx/conf.d/upload.conf
nginx -t && systemctl reload nginx
5. MySQL / MariaDB Problems
Database Won't Start
# Check error log
tail -100 /var/log/mysql/error.log
# Restart service
systemctl restart mysql
systemctl status mysql
Slow Database
# Show running queries
mysql -u root -p -e "SHOW FULL PROCESSLIST;"
# Enable slow query log
mysql -u root -p -e "SET GLOBAL slow_query_log = 'ON';"
mysql -u root -p -e "SET GLOBAL long_query_time = 2;"
Repair Corrupted Tables
mysqlcheck -u root -p --all-databases --auto-repair
6. SSL Certificate Problems
# Check certificate validity
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com | openssl x509 -noout -dates
# Renew Let's Encrypt certificate
certbot renew --dry-run
certbot renew
7. SSH Problems
# If you forgot sudo password, reboot into recovery mode
# Change user password
passwd username
# Add backup SSH key
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Diagnostic Methodology
When facing any problem, follow this order:
- Check logs —
/var/log/syslog,/var/log/nginx/error.log, application logs - Check resources — CPU, RAM, disk, network
- Check services —
systemctl statusfor each service - Check network — ping, traceroute, netstat
- Check change history — was anything modified recently?
Technical Support
At cloud.net.sa, the support team is available to assist your developer in diagnosing problems. It is not just hosting — it is a genuine technical partnership. If you are stuck on an issue, open a ticket and receive a response within business hours.
Summary
Systematic diagnosis saves time. Always start with logs, then resources, then services. Most server problems have clear solutions — the skill is knowing where to look.
Get Started
Want to try it yourself? Choose the right hosting plan or build your custom server with the specs you need.
