فقط محتوای داخل بلوک HTML زیر را در ویرایشگر کد وردپرس قرار دهید؛ علامتهای “` جزو HTML نیستند.
“`html
اگر بعد از Update در cPanel یا DirectAdmin ناگهان سایتها باز نمیشوند، PHP خطای 502 یا 503 میدهد، MariaDB بالا نمیآید، ایمیل قطع شده یا حتی خود پنل در دسترس نیست، اولین کار Reboot کردن سرور یا اجرای دوباره همه Updateها نیست. باید اول مشخص کنید دقیقاً کدام سرویس خراب شده، Update در چه مرحلهای تمام شده و اولین خطای واقعی داخل Log چیست.
در این راهنما یک مسیر عیبیابی کمخطر و مرحلهای داریم: ابتدا وضعیت Server و Update را ثبت میکنیم، بعد سرویس خراب را پیدا میکنیم، Log همان سرویس را میخوانیم و فقط در صورت وجود شواهد سراغ Repair، بازسازی Configuration یا نصب دوباره Package میرویم. مسیرهای cPanel/WHM و DirectAdmin جدا هستند تا دستورهای دو کنترلپنل با هم مخلوط نشوند.
اگر فقط یک نکته از این مقاله یادتان بماند:
بعد از Update، بهجای Restart یا Rebuild همهچیز، این ترتیب را رعایت کنید:
نشانه خرابی را دقیق مشخص کنید.
زمان و نسخه Update را ثبت کنید.
سرویس Failed و Log همان بازه زمانی را پیدا کنید.
Syntax یا Package خراب را Repair کنید.
فقط همان سرویس را Restart و دوباره آزمایش کنید.
این مقاله برای چه سروری نوشته شده است؟
این آموزش برای مدیر سروری است که به root SSH دسترسی دارد و cPanel/WHM یا DirectAdmin روی یک سیستمعامل لینوکسی پشتیبانیشده نصب شده است. اگر فقط User معمولی cPanel یا DirectAdmin هستید، بسیاری از دستورهای این مقاله برای شما قابل اجرا نیستند و باید متن خطا را برای مدیر Server یا Hosting Provider ارسال کنید.
در یک Incident واقعی، زمان مناسبی برای تعویض سیستمعامل یا مهاجرت کنترلپنل نیست. همان سیستمعامل فعلی را حفظ کنید و ابتدا سرویسها را به وضعیت سالم برگردانید. دستورهای Service در این مقاله برای Serverهای مبتنی بر systemd نوشته شدهاند؛ نام دقیق بعضی Unitها با توجه به Web Server، Database و تنظیمات Server ممکن است فرق کند.
قبل از هر Repair این پنج کار را انجام ندهید
سرور را فقط به امید اینکه مشکل خودبهخود برطرف شود Reboot نکنید؛ ممکن است Log و وضعیت موقت مهمی را از دست بدهید و Downtime بیشتر شود.
در DirectAdmin بلافاصله da build all اجرا نکنید. این فرمان همه Componentهای مدیریتشده را دوباره Build میکند و برای عیبیابی روزمره توصیه نمیشود.
در cPanel بدون خواندن Update Log سراغ upcp –force نروید.
Configurationهای Apache، Nginx، PHP یا Mail را از روی آموزش تصادفی جایگزین نکنید؛ کنترلپنل ممکن است آن فایل را خودش مدیریت کند.
Firewall، SELinux یا TLS را برای «تست» بهطور کامل خاموش نکنید. اول خطا را اثبات کنید.
مرحله ۱: قبل از تغییر، Snapshot یا Backup قابل بازگشت داشته باشید
اگر زیرساخت شما Snapshot سطح VPS یا Hypervisor دارد، قبل از Repairهای سنگین یک Snapshot بگیرید. اگر Snapshot در دسترس نیست، حداقل از Configurationهای سفارشی، Databaseهای مهم و فایلهایی که قرار است تغییر دهید Backup بگیرید.
در این مرحله هنوز چیزی را حذف یا Rebuild نمیکنیم؛ فقط یک نقطه بازگشت میسازیم. اگر Server میزبان چند سایت فعال است، Repairهای پرریسک را در بازه کمترافیک انجام دهید.
Snapshot جای Backup مستقل را نمیگیرد. Snapshot برای برگشت سریع Incident مفید است، اما اگر Storage اصلی آسیب ببیند یا Snapshot هم روی همان زیرساخت از بین برود، Backup جداگانه همچنان لازم است.
مرحله ۲: مشخص کنید دقیقاً چه چیزی خراب شده است
عبارت «Server بعد از Update خراب شد» برای عیبیابی کافی نیست. باید نشانه را به یک سرویس یا لایه محدود کنید.
| نشانه | سرویسهای محتمل | اولین بررسی |
|---|---|---|
| همه سایتها Down هستند | Apache، Nginx، LiteSpeed، PHP-FPM | Service Status، Port 80/443 و Syntax Config |
| فقط سایتهای PHP خطا دارند | PHP-FPM، LSAPI، PHP Extension | PHP-FPM Journal و نسخه PHP |
| Error establishing database connection | MariaDB یا MySQL | Database Service و Error Log |
| ارسال یا دریافت ایمیل قطع شده | Exim، Dovecot، Spam Filter | Exim/Dovecot Status و Mail Log |
| دامنه Resolve نمیشود | BIND/Named، PowerDNS، DNS خارجی | DNS Service و Query مستقیم |
| خود WHM/cPanel باز نمیشود | cpsrvd، License، Firewall، Package | Portهای پنل و cPanel Error Log |
| DirectAdmin روی 2222 باز نمیشود | directadmin.service، License، Config | systemctl و journalctl |
مرحله ۳: قبل از پنل، سلامت پایه Server را بررسی کنید
این دستورات روی خود Server و با دسترسی root اجرا میشوند. هنوز هیچ تغییری ایجاد نمیکنند؛ فقط وضعیت را میخوانند.
date
uptime
free -h
df -h
df -i
systemctl --failed --no-pager
این پنج بررسی ساده تعداد زیادی از خرابیهای بعد از Update را جدا میکنند. اگر Disk یا Inode به 100% رسیده باشد، Package Manager و سرویسها ممکن است نتوانند فایل جدید بسازند. اگر RAM تمام شده باشد، OOM Killer ممکن است Database یا PHP-FPM را متوقف کرده باشد.
برای خطاهای مهم Boot جاری:
journalctl -p err -b --no-pager | tail -n 200
اگر Server هنوز از زمان Update Reboot نشده، این خروجی میتواند Errorهای Service و Library را نشان دهد. وجود یک Error در Journal بهتنهایی علت قطعی نیست؛ زمان آن را با زمان Update مقایسه کنید.
مرحله ۴: ببینید Port سرویس واقعاً Listen میکند یا نه
برای اینکه بفهمیم سرویس فقط در Panel «سبز» دیده میشود یا واقعاً Port دارد، از ss استفاده کنید:
ss -lntp | grep -E ':(80|443|2083|2087|2222|3306|25|465|587|993)\b'
چند Port مهم در این خروجی:
80 و 443 برای Web Server
2083 برای cPanel HTTPS
2087 برای WHM HTTPS
2222 برای DirectAdmin
3306 برای MySQL/MariaDB در حالت معمول
25، 465 و 587 برای SMTP و 993 برای IMAPS
اگر Port مورد انتظار وجود ندارد، اول خود Service را بررسی کنید. اگر Port وجود دارد اما از بیرون قابل دسترس نیست، بعد سراغ Firewall، Network و NAT بروید.
مسیر اول: عیبیابی خرابی بعد از Update در cPanel/WHM
مرحله ۵: نسخه cPanel و تاریخ Update را ثبت کنید
روی Server cPanel با root اجرا کنید:
/usr/local/cpanel/cpanel -V
tail -5 /var/cpanel/updatelogs/summary.log
readlink -f /var/cpanel/updatelogs/last
دستور اول نسخه فعلی cPanel & WHM را نشان میدهد. دستور دوم تاریخ Updateهای اخیر را نمایش میدهد و دستور سوم مشخص میکند آخرین Update Log دقیقاً کدام فایل است.
مرحله ۶: اولین Error واقعی Update را پیدا کنید
grep " E " /var/cpanel/updatelogs/last | tail -n 80
cPanel در مستندات عیبیابی Update همین Directory را بهعنوان محل اصلی بررسی Update Failure معرفی میکند. اگر grep چیزی نشان نداد یا Context کافی نبود، Log را با less بخوانید:
less /var/cpanel/updatelogs/last
برای پیامهای مکمل خود cPanel:
tail -n 150 /usr/local/cpanel/logs/error_log
مرحله ۷: سرویس خراب را با ابزار خود cPanel بررسی کنید
cPanel برای Restart Serviceها اسکریپت restartsrv دارد. قبل از Restart، وضعیت سرویس مورد نظر را Check کنید. لازم نیست همه این دستورها را اجرا کنید؛ فقط سرویس مرتبط با نشانه را بررسی کنید.
/usr/local/cpanel/scripts/restartsrv_httpd --check
/usr/local/cpanel/scripts/restartsrv_mysql --check
/usr/local/cpanel/scripts/restartsrv_exim --check
/usr/local/cpanel/scripts/restartsrv_dovecot --check
/usr/local/cpanel/scripts/restartsrv_cpsrvd --check
اگر Apache مشکل دارد، ابتدا Configuration را بررسی کنید:
/usr/sbin/httpd -t
اگر نتیجه Syntax OK بود و Log مشکل دیگری نشان نمیدهد، Apache را با ابزار cPanel Restart کنید:
/usr/local/cpanel/scripts/restartsrv_httpd
اگر Syntax Error دارید، Restart مکرر چیزی را حل نمیکند. اول همان فایل، Module یا Include ذکرشده در Error را بررسی کنید.
مرحله ۸: اگر Packageهای cPanel ناقص یا خراب شدهاند
cPanel ابزار رسمی برای بررسی Packageهای خودش دارد:
/usr/local/cpanel/scripts/check_cpanel_pkgs
این مرحله زمانی معنا دارد که Update Log یا Error سرویس به Package گمشده، خراب یا ناسازگار اشاره کند. آن را جایگزین بررسی Log نکنید.
مرحله ۹: چه زمانی Apache Config را Rebuild کنیم؟
اگر Error مشخصاً نشان میدهد Configuration تولیدشده Apache خراب یا ناقص است، cPanel فرمان رسمی زیر را برای بازسازی ارائه میکند:
/usr/local/cpanel/scripts/rebuildhttpdconf
فقط اگر Rebuild با موفقیت تمام شد، Apache را Restart کنید:
/usr/local/cpanel/scripts/restartsrv_httpd
فایل اصلی httpd.conf را برای Customization دائمی ویرایش نکنید. cPanel هنگام Rebuild میتواند تغییرات مستقیم را بازنویسی کند. Customizationهای Apache باید از مسیر Includeهای مدیریتشده cPanel انجام شوند.
مرحله ۱۰: upcp –force آخر کار است، نه اول کار
اگر Update Log نشان میدهد خود Update cPanel نیمهکاره مانده یا Packageهای اصلی به وضعیت ناسازگار رسیدهاند، اجرای مجدد Update میتواند منطقی باشد. فرمان cPanel برای Update دستی:
/usr/local/cpanel/scripts/upcp --force
قبل از این کار Disk، Update Log و Backup را بررسی کنید. اگر مشکل فقط یک Apache Include یا یک PHP-FPM Unit است، Force Update کل پنل Repair هدفمندی نیست.
آیا بعد از خرابی Update میتوان cPanel را Downgrade کرد؟
برای Major Version پاسخ عمومی خیر است. cPanel رسماً Downgrade از یک Major جدید به Major قبلی را پشتیبانی نمیکند. برای نمونه اگر از 136 به 138 ارتقا دادهاید، نباید برنامه بازیابی را روی برگشت مستقیم به 136 بنا کنید.
cPanel برای بعضی Minor Buildهای همان Major مسیر Downgrade دارد، اما Pin کردن نسخه باعث میشود Updateهای امنیتی و Bug Fixهای جدید را دریافت نکنید. بنابراین Minor Downgrade فقط وقتی معنا دارد که Regression مشخص و مستند داشته باشید و Plan بازگشت به Release سالم را از قبل مشخص کرده باشید.
کنترلپنل را روی VPS خودتان مدیریت میکنید؟
وقتی cPanel یا DirectAdmin را روی VPS شخصی مدیریت میکنید، مسئولیت Update، Backup، Service Monitoring و بازیابی بعد از خرابی با مدیر همان سرور است. اگر برای پروژه جدید به VPS لینوکسی نیاز دارید، میتوانید پلنهای سرور مجازی ایران و سایر VPSهای ایرانیکاسرور را بررسی کنید و سیستمعامل و کنترلپنل را بر اساس نیاز نرمافزار انتخاب کنید.
تماس با پشتیبانی ایرانیکاسرور:
021-91302467
مسیر دوم: عیبیابی خرابی بعد از Update در DirectAdmin
مرحله ۱۱: نسخه DirectAdmin و Update Channel را ببینید
روی Server و با root اجرا کنید:
da version
da config-get update_channel
DirectAdmin برای Update خود پنل Channelهای جدا مانند current، stable و alpha دارد. اگر Server Production روی alpha قرار گرفته، این موضوع برای تحلیل خرابی مهم است؛ اما وسط Incident بدون بررسی Release Notes Channel را خودسرانه تغییر ندهید.
مرحله ۱۲: اول خود DirectAdmin را بررسی کنید
systemctl status directadmin --no-pager
journalctl -u directadmin.service -n 150 --no-pager
tail -n 100 /var/log/directadmin/error.log
اگر Port 2222 باز نیست و directadmin.service Failed شده، Error همین خروجیها معمولاً از Restart مکرر اطلاعات بیشتری میدهد.
مرحله ۱۳: بفهمید Update خود DirectAdmin بوده یا CustomBuild
این تفاوت بسیار مهم است. در نسخههای جدید DirectAdmin، خود پنل با سیستم Update داخلی و فرمان da update مدیریت میشود. CustomBuild برای نرمافزارهای ثالث مثل Apache، Nginx، PHP، Exim و سایر Componentها استفاده میشود.
از DirectAdmin 1.704 به بعد، فرمان da build update_versions دیگر خود DirectAdmin را Update نمیکند. اگر بعد از اجرای CustomBuild سرویس خراب شده، اول Log همان CustomBuild را بررسی کنید.
فهرست نسخههای Componentهای مدیریتشده:
da build versions
CustomBuild Log اصلی:
tail -n 150 /usr/local/directadmin/custombuild/custombuild.log
برای دیدن Logهای Runهای اخیر CustomBuild:
ls -lt /var/log/directadmin/custombuild.*.log | head
فایل جدیدتر را با less یا tail باز کنید و اولین Error مربوط به Build را پیدا کنید.
مرحله ۱۴: سرویس واقعی نصبشده را پیدا کنید
DirectAdmin میتواند با Apache، Nginx، Nginx + Apache، LiteSpeed یا OpenLiteSpeed و چند نسخه PHP کار کند. پس نباید فرض کنیم نام Service روی همه Serverها یکی است.
systemctl list-units --type=service --all | grep -Ei 'directadmin|httpd|apache2|nginx|lsws|php-fpm|mariadb|mysql|exim|dovecot|named|pdns'
بعد فقط Unit مرتبط را بررسی کنید. برای مثال اگر Server واقعاً Nginx دارد:
systemctl status nginx --no-pager
journalctl -u nginx -n 100 --no-pager
nginx -t
اگر Apache نصب است، Syntax را بررسی کنید:
httpd -t
اگر توزیع شما Command را با نام apache2ctl ارائه میکند، از همان ابزار موجود روی Server استفاده کنید. مهم این است که قبل از Restart، Syntax Configuration بررسی شود.
مرحله ۱۵: اگر Configuration تولیدشده DirectAdmin خراب شده است
DirectAdmin برای بازنویسی Configurationهای مدیریتشده توسط CustomBuild فرمان زیر را دارد:
da build rewrite_confs
این فرمان را قبل از بررسی Customizationها کورکورانه اجرا نکنید. DirectAdmin بخشی از Configurationها را از Templateهای CustomBuild بازتولید میکند. Customizationهای دائمی باید در مسیرهای Custom مخصوص DirectAdmin نگهداری شوند؛ تغییر مستقیم بعضی فایلهای Generated ممکن است بعد از Update یا rewrite_confs از بین برود.
قبل از Rewrite، Customizationهای مهم را بررسی کنید:
find /usr/local/directadmin/custombuild/custom -maxdepth 3 -type f 2>/dev/null
find /usr/local/directadmin/data/templates/custom -maxdepth 2 -type f 2>/dev/null
اگر خروجی دارید، قبل از Rewrite از این مسیرها Backup بگیرید و مطمئن شوید Template قدیمی با Version جدید ناسازگار نشده است.
مرحله ۱۶: Rebuild فقط Component خراب، نه کل Stack
اگر Log مشخصاً نشان میدهد یک Component در CustomBuild ناقص Build شده، همان Component را Repair کنید. نمونههای رسمی CustomBuild شامل این فرمانها هستند:
da build apache
da build php
da build nginx
همه این فرمانها را پشتسرهم اجرا نکنید. فقط Componentی را Build کنید که واقعاً روی Server استفاده میشود و Log آن خرابی Build یا Library را نشان میدهد.
فرمان زیر همه Componentهای مدیریتشده را Reinstall/Build میکند:
da build all
DirectAdmin خودش تأکید میکند که این فرمان برای استفاده عادی توصیه نمیشود، چون تقریباً کل Software Stack تحت مدیریت CustomBuild را دوباره Build میکند. آن را آخرین گزینه Repair بدانید، نه مرحله دوم عیبیابی.
خطای 502 یا 503 بعد از Update؛ اول PHP-FPM را بررسی کنید
اگر Web Server بالا است اما سایت PHP خطای 502 Bad Gateway یا 503 Service Unavailable میدهد، احتمال دارد PHP-FPM Unit مربوط به نسخه PHP بالا نیامده باشد یا Socket تغییر کرده باشد.
اول Unitهای PHP-FPM موجود را پیدا کنید:
systemctl list-units --type=service --all | grep -i 'php.*fpm'
سپس Unit واقعی را جایگزین کنید. نمونه:
systemctl status php-fpm82.service --no-pager
journalctl -u php-fpm82.service -n 120 --no-pager
نام بالا فقط نمونه است و باید با Unit واقعی Server جایگزین شود. DirectAdmin در نسخههای جدید برای PHP-FPM Service Log استفاده از journalctl را مستند کرده است.
در cPanel ممکن است PHP-FPM تحت Packageهای EasyApache و Unitهای مخصوص همان نسخه PHP مدیریت شود. نام Unit را ابتدا از systemctl پیدا کنید و بعد همان را بررسی کنید.
Apache یا Nginx بعد از Update بالا نمیآید
اگر Error چیزی شبیه Cannot load module، undefined symbol یا Missing Library نشان میدهد، مشکل معمولاً با Restart بیشتر حل نمیشود. اول Syntax و Library Error را کامل بخوانید.
برای Apache:
/usr/sbin/httpd -t
برای Nginx:
nginx -t
اگر خطا Address already in use است، ببینید کدام Process Port را گرفته:
ss -lntp | grep -E ':(80|443)\b'
در Serverهای Nginx + Apache یا LiteSpeed، وجود چند Web Server لزوماً اشتباه نیست؛ مهم این است که معماری تنظیمشده کنترلپنل را بشناسید و Portها را با Templateهای آن هماهنگ نگه دارید.
MariaDB یا MySQL بعد از Update Start نمیشود
اول نام Service واقعی را پیدا کنید:
systemctl list-units --type=service --all | grep -Ei 'mariadb|mysql'
اگر MariaDB است:
systemctl status mariadb --no-pager
journalctl -u mariadb -n 150 --no-pager
اگر Log از InnoDB، Permission، Disk Full، Unsupported Option یا Upgrade System Tables صحبت میکند، همان خطا را حل کنید. حذف ibdata، پاک کردن Data Directory یا Initialize مجدد Database راهحل عیبیابی نیست و میتواند دادهها را از بین ببرد.
هیچ فایل InnoDB را برای بالا آوردن فوری MariaDB حذف نکنید. قبل از هر Recovery دیتابیس، Backup و علت دقیق خطا لازم است.
Exim و Dovecot بعد از Update خراب شدهاند
برای Mail Server ابتدا Service Status را ببینید:
systemctl status exim --no-pager
systemctl status dovecot --no-pager
در cPanel مسیرهای مهم Exim شامل این Logها هستند:
tail -n 100 /var/log/exim_mainlog
tail -n 100 /var/log/exim_paniclog
tail -n 100 /var/log/maillog
در DirectAdmin، Exim معمولاً Logهای خود را زیر مسیر زیر دارد:
tail -n 100 /var/log/exim/mainlog
tail -n 100 /var/log/exim/paniclog
tail -n 100 /var/log/maillog
اگر paniclog پر شده است، قبل از Restart تکراری Exim متن خطا را بررسی کنید؛ معمولاً مشکل Configuration، Permission، Library یا Dependency قابل مشاهده است.
DNS بعد از Update خراب شده است
اول مشخص کنید DNS واقعاً روی همین Server Authoritative است یا دامنه از Cloudflare یا DNS Provider خارجی استفاده میکند. خراب بودن named روی Server وقتی Nameserver دامنه خارجی است ممکن است دلیل Down بودن سایت نباشد.
Serviceهای متداول DNS را پیدا کنید:
systemctl list-units --type=service --all | grep -Ei 'named|bind|pdns'
برای BIND:
named-checkconf
اگر این فرمان Syntax Error نشان داد، فایل و Line اعلامشده را اصلاح کنید و بعد Service را Restart کنید. اگر DNS خارجی دارید، Zone را در Provider واقعی دامنه بررسی کنید، نه صرفاً داخل کنترلپنل Server.
DirectAdmin بعد از Update باز نمیشود؛ Debug Mode چه زمانی مفید است؟
اگر journalctl و error.log علت را نشان نمیدهند، DirectAdmin Debug Mode دارد. این مرحله باعث توقف موقت Service Panel میشود، بنابراین باید فقط زمانی اجرا شود که SSH شما پایدار است و میدانید چطور Service را دوباره Start کنید.
ابتدا DirectAdmin را متوقف کنید:
systemctl stop directadmin
سپس Debug سطح 2000:
da server --debug=2000
بعد از مشاهده Error، با Ctrl+C Debug را متوقف کنید و Service عادی را برگردانید:
systemctl start directadmin
Downgrade در DirectAdmin؛ فقط وقتی Regression اثبات شده است
DirectAdmin امکان Update به Build مشخص با Commit Hash را مستند کرده است. این قابلیت برای Debug و Regression مفید است، اما به معنی این نیست که پس از هر خرابی باید نسخه قبلی را نصب کنید.
اگر واقعاً ثابت شده Build جدید Bug مشخصی دارد، قبل از نصب Build مشخص باید Snapshot داشته باشید، Release Notes را بخوانید و رفتار Auto-update/Autopatch را در نظر بگیرید. در غیر این صورت DirectAdmin میتواند طبق Update Channel دوباره به Version جدید برگردد.
برای Incidentهای معمول، Repair سرویس یا Config خراب از Rollback کل Panel کمریسکتر است.
چطور بفهمیم Update واقعاً علت خرابی بوده است؟
همزمانی بهتنهایی اثبات علت نیست. ممکن است Update ساعت 03:00 تمام شده باشد ولی Disk ساعت 04:30 پر شده باشد یا Certificate در همان روز Expire شده باشد.
برای اثبات ارتباط، این سه زمان را کنار هم قرار دهید:
زمان شروع و پایان Update
اولین Error سرویس
اولین گزارش Downtime یا Monitoring Alert
اگر اولین Error درست بعد از تغییر Package یا Config مشخص ظاهر شده، فرضیه Update قویتر میشود. اگر Error ساعتها قبل از Update وجود داشته، باید دنبال علت دیگری باشید.
چکلیست سریع براساس نوع خرابی
| خطا | بررسی اول | اقدام بعدی در صورت اثبات |
|---|---|---|
| cPanel/WHM باز نمیشود | cpsrvd، Port 2087، cPanel error_log | Repair Package یا Restart cpsrvd |
| DirectAdmin باز نمیشود | directadmin.service و journalctl | اصلاح Config یا Debug Mode |
| همه سایتها Down | Web Server Status و Syntax | Repair Config/Module و Restart همان Service |
| 502/503 PHP | PHP-FPM Unit و Journal | Repair نسخه PHP یا FPM Config |
| Database Down | MariaDB/MySQL Journal، Disk، Permission | رفع خطای مشخص بدون حذف Data |
| Mail Down | Exim/Dovecot و panic log | Repair Config/Package مرتبط |
| DNS Down | Authoritative DNS و named/pdns | Syntax Fix و Restart DNS Service |
بعد از Repair چطور مطمئن شویم Server واقعاً سالم شده است؟
فقط سبز شدن systemctl کافی نیست. مسیر واقعی کاربر را آزمایش کنید.
صفحه اصلی یک Domain را با HTTPS باز کنید.
یک صفحه PHP را که به Database وصل میشود بررسی کنید.
در صورت استفاده از Mail، ارسال و دریافت Test انجام دهید.
ورود به WHM/cPanel یا DirectAdmin را آزمایش کنید.
systemctl –failed را دوباره اجرا کنید.
پنج تا پانزده دقیقه بعد Log سرویس Repairشده را دوباره ببینید.
systemctl --failed --no-pager
چطور جلوی تکرار خرابی بعد از Update را بگیریم؟
هیچ Updateای بدون ریسک نیست، اما میتوان Blast Radius را کوچک کرد.
قبل از Major Update Snapshot و Backup بگیرید.
Release Notes کنترلپنل و سرویسهای حیاتی را بخوانید.
روی Production از Channelهای آزمایشی بدون دلیل استفاده نکنید.
Configurationهای سفارشی را در مسیرهای رسمی Customization همان Panel نگه دارید.
Monitoring برای HTTP، Database، Mail و Disk داشته باشید تا زمان دقیق خرابی مشخص باشد.
بعد از Update فقط Login به Panel را تست نکنید؛ مسیر کامل Website، PHP، DB، Mail و DNS را بررسی کنید.
سؤالات متداول
بعد از Update اولین کار Restart کردن Server است؟
خیر. اول Service Failed، Update Log و Error Log را بررسی کنید. Reboot میتواند Downtime را بیشتر کند و بدون حل Configuration یا Package خراب، مشکل بعد از Boot دوباره برمیگردد.
آیا upcp –force همه مشکلات cPanel را حل میکند؟
خیر. این فرمان کل Update cPanel را دوباره اجرا میکند و برای هر Error مناسب نیست. اگر مشکل از یک Apache Include، PHP-FPM Unit یا Database Configuration باشد، Repair هدفمند منطقیتر است.
در DirectAdmin بعد از Update باید da build all اجرا کنیم؟
بهصورت پیشفرض خیر. مستندات DirectAdmin این فرمان را برای Build مجدد همه Componentها معرفی میکنند و برای استفاده عادی توصیه نمیکنند. ابتدا Component خراب را از Log مشخص کنید.
فرق da update و da build update_versions چیست؟
da update خود DirectAdmin را طبق Update Channel مدیریت میکند. da build update_versions مربوط به Softwareهای مدیریتشده با CustomBuild است و از DirectAdmin 1.704 به بعد دیگر خود DirectAdmin را Update نمیکند.
آیا میتوان cPanel را به Major قبلی برگرداند؟
cPanel بازگشت از Major Version جدید به Major قبلی را پشتیبانی نمیکند. برای Minor Buildهای همان Major شرایط متفاوت است، اما Pin کردن نسخه میتواند دریافت Security Update را متوقف کند.
اگر بعد از Update فقط یک سایت خراب شده باشد چه؟
وقتی بقیه سایتها سالماند، احتمال خرابی Web Server سراسری کمتر است. PHP Version همان Domain، .htaccess، VirtualHost، Permission، Extensionهای PHP و Application Log همان سایت را بررسی کنید.
چطور بفهمیم مشکل از Update است یا همزمان اتفاق افتاده؟
Timestamp Update Log را با اولین Error سرویس و زمان Monitoring Alert مقایسه کنید. اگر Error دقیقاً پس از تغییر Package یا Config ایجاد شده باشد، ارتباط قویتر است؛ همزمانی بهتنهایی دلیل قطعی نیست.
جمعبندی
خرابی سرویس بعد از Update در cPanel و DirectAdmin را باید مثل یک Incident بررسی کرد: اول نشانه را محدود کنید، بعد Update Log و Service Log را کنار هم بگذارید و فقط همان Componentی را Repair کنید که شواهد به آن اشاره میکنند.
در cPanel، مسیرهای کلیدی شامل /var/cpanel/updatelogs، اسکریپتهای restartsrv و ابزار check_cpanel_pkgs هستند. در DirectAdmin، journalctl، Logهای CustomBuild، da build versions و Repair هدفمند Componentها مهمترند.
اگر هنوز علت مشخص نشده، Rebuild کامل، Downgrade یا حذف فایلهای Database را انجام ندهید. حفظ داده و قابلیت Rollback از سریعترین راهحل ظاهری مهمتر است.
منابع رسمی
cPanel: پیدا کردن Error در Update Failure
cPanel: Repair Packageهای خراب با check_cpanel_pkgs
DirectAdmin: عیبیابی سرویس DirectAdmin
DirectAdmin: عیبیابی CustomBuild
DirectAdmin: Update و Rebuild سرویسهای CustomBuild
بعد از Update هنوز سرویسهای سرور بالا نمیآیند؟
اگر Apache، Nginx، PHP-FPM، MariaDB، Exim یا خود cPanel/DirectAdmin بعد از Update Failed شده و نمیخواهید با Rebuild یا Downgrade اشتباه Downtime را بیشتر کنید، میتوانید درخواست بررسی و کانفیگ سرور ثبت کنید. Log Update و متن Error سرویس را همراه درخواست بفرستید تا مسیر عیبیابی دقیقتر باشد.
تماس با پشتیبانی ایرانیکاسرور: 021-91302467
“`






دیدگاهها (۰)