حل مشاكل السيرفر الشائعة: دليل المطور

الموقع وقف، المساحة امتلأت، الذاكرة خلصت، permission denied — 10 مشاكل شائعة وحلولها بخطوات واضحة.
مقدمة
مهما كانت جودة السيرفر أو مزود الاستضافة، ستواجه في مرحلة ما مشكلة تقنية تحتاج إلى حلها بسرعة. القدرة على تشخيص المشاكل بشكل منهجي تفرق بين توقف لساعات وتوقف لدقائق. هذا الدليل يغطي أكثر المشاكل شيوعاً على سيرفرات Linux وكيفية حلها خطوة بخطوة.
أولاً: السيرفر لا يستجيب
التحقق من حالة السيرفر
الخطوة الأولى دائماً هي التحقق هل المشكلة في السيرفر نفسه أم في الشبكة:
ping your-server-ip
traceroute your-server-ip
إذا كان ping يعمل لكن المواقع لا تفتح، المشكلة في خدمة الويب وليس في السيرفر نفسه.
التحقق من استخدام الموارد
# استخدام CPU والذاكرة
top
htop
# مساحة القرص
df -h
# استخدام الذاكرة
free -m
إذا كان استخدام CPU وصل 100% أو الذاكرة ممتلئة، هذا هو سبب عدم الاستجابة.
ثانياً: مشاكل الذاكرة (RAM)
تشخيص نفاد الذاكرة
# عرض العمليات الأكثر استهلاكاً للذاكرة
ps aux --sort=-%mem | head -20
# سجل نظام OOM Killer
dmesg | grep -i "killed process"
journalctl -k | grep -i "out of memory"
الحل المؤقت
# تحرير ذاكرة cache بدون إيقاف الخدمات
sync; echo 3 > /proc/sys/vm/drop_caches
الحل الدائم
إذا كان التطبيق يحتاج ذاكرة أكثر، الحل الصحيح هو رفع مواصفات السيرفر. على كلاود يمكنك إضافة RAM بـ 600 ريال لكل 2GB إضافية دون الحاجة لإعادة تشغيل السيرفر.
ثالثاً: مشاكل القرص الصلب
امتلاء القرص
# إيجاد المجلدات الأكثر استهلاكاً
du -sh /* 2>/dev/null | sort -rh | head -20
# إيجاد الملفات الكبيرة
find / -size +100M -type f 2>/dev/null | sort -k5 -rn
# تنظيف سجلات nginx القديمة
find /var/log/nginx -name "*.log" -mtime +30 -delete
# تنظيف حزم apt غير المستخدمة
apt autoremove -y
apt autoclean
مشكلة inode ممتلئة
# التحقق من inode
df -i
# إيجاد المجلدات ذات ملفات كثيرة
find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -rn | head -10
رابعاً: مشاكل nginx
nginx لا يبدأ
# التحقق من سجل الأخطاء
tail -50 /var/log/nginx/error.log
# اختبار صحة الإعدادات
nginx -t
# إعادة تشغيل nginx
systemctl restart nginx
systemctl status nginx
أخطاء شائعة في nginx
| الخطأ | السبب | الحل |
|---|---|---|
| 502 Bad Gateway | التطبيق لا يعمل | تحقق من PHP-FPM أو Node.js |
| 504 Gateway Timeout | التطبيق بطيء جداً | رفع timeout_limit |
| 413 Request Entity Too Large | الملف أكبر من المسموح | رفع client_max_body_size |
| 403 Forbidden | مشكلة في الصلاحيات | تحقق من chmod وchown |
# تعديل حجم الملف المسموح
echo "client_max_body_size 100M;" > /etc/nginx/conf.d/upload.conf
nginx -t && systemctl reload nginx
خامساً: مشاكل MySQL / MariaDB
قاعدة البيانات لا تبدأ
# التحقق من السجل
tail -100 /var/log/mysql/error.log
# إعادة تشغيل الخدمة
systemctl restart mysql
systemctl status mysql
قاعدة البيانات بطيئة
# عرض الاستعلامات البطيئة
mysql -u root -p -e "SHOW FULL PROCESSLIST;"
# تفعيل سجل الاستعلامات البطيئة
mysql -u root -p -e "SET GLOBAL slow_query_log = 'ON';"
mysql -u root -p -e "SET GLOBAL long_query_time = 2;"
إصلاح جداول تالفة
mysqlcheck -u root -p --all-databases --auto-repair
سادساً: مشاكل SSL
# التحقق من صلاحية الشهادة
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com | openssl x509 -noout -dates
# تجديد شهادة Let's Encrypt
certbot renew --dry-run
certbot renew
سابعاً: مشاكل SSH
# إذا نسيت كلمة مرور sudo
# أعد تشغيل السيرفر في recovery mode
# تغيير كلمة مرور مستخدم
passwd username
# إضافة SSH key بديلة
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
منهجية التشخيص
عند مواجهة أي مشكلة، اتبع هذا الترتيب:
- تحقق من السجلات —
/var/log/syslog،/var/log/nginx/error.log، سجل تطبيقك - تحقق من الموارد — CPU، RAM، قرص، network
- تحقق من الخدمات —
systemctl statusلكل خدمة - تحقق من الشبكة — ping، traceroute، netstat
- ابحث في سجل التغييرات — هل تم تغيير شيء مؤخراً؟
الدعم التقني
على كلاود (cloud.net.sa)، فريق الدعم متاح لمساعدة مطورك في تشخيص المشاكل. ليس فقط استضافة — بل شراكة تقنية حقيقية. إذا كنت عالقاً في مشكلة، افتح تذكرة وسيتم الرد خلال ساعات العمل.
خلاصة
التشخيص المنهجي يوفر الوقت. ابدأ دائماً بالسجلات، ثم الموارد، ثم الخدمات. معظم مشاكل السيرفر لها حل واضح — المهارة في معرفة أين تبحث.
ابدأ الآن
تبي تجرب بنفسك؟ اختر باقة الاستضافة المناسبة أو صمم سيرفرك الخاص بالمواصفات اللي تبيها.
