عیب‌یابی و ابزارهای تعمیر سریع در cPanel & WHM

این مقاله مجموعه‌ای از ابزارهای مهم عیب‌یابی و تعمیر سریع در cPanel & WHM را معرفی می‌کند، شامل Autofixer، رفع مشکلات hostname در سرورهای ابری، بازگردانی دسترسی دیتابیس با restoregrants، مدیریت نسخه‌های PHP با scl، و راهنمای کامل رفع خطاهای Perl و CGI.

cPanel troubleshootinghostname cloudPerl CGIrestoregrants0Autofixerrestoregrants، sclPerl CGI، hostname cloud

~3 دقیقه مطالعه • بروزرسانی ۲۹ بهمن ۱۴۰۴

1. Autofixer – ابزار تعمیر خودکار از مرورگر


Autofixer مجموعه‌ای از اسکریپت‌های داخلی cPanel است که به شما اجازه می‌دهد برخی مشکلات رایج را بدون SSH و فقط از طریق مرورگر رفع کنید.


نحوه استفاده

  1. به آدرس زیر بروید:
    https://serverip:2087/scripts2/autofixer
  2. با کاربر root وارد شوید.
  3. نام اسکریپت Autofixer را وارد کنید.
  4. روی Submit کلیک کنید.
  5. نتیجه در مرورگر نمایش داده می‌شود.

اسکریپت‌های موجود (تا سال ۲۰۲۶)

نام اسکریپت توضیحات توصیه مهم
safesshrestart تعمیر فایل تنظیمات SSH و ری‌استارت سرویس فقط وقتی SSH مشکل دارد
test اسکریپت تست – بدون تغییر برای بررسی عملکرد Autofixer
update_gatherer_permissions رفع مشکلات مجوزهای Configuration Analytics وقتی آنالیز cPanel مشکل دارد

هشدار: فقط زمانی از Autofixer استفاده کنید که پشتیبانی cPanel توصیه کرده باشد.




2. Cloud-Hosted Hostname Solution


در سرورهای ابری (Google Cloud، AWS، Hetzner و ...)، سرویس dhclient ممکن است hostname را بازنویسی کند. این مشکل باعث می‌شود:

  • hostname تغییر کند
  • لایسنس cPanel غیرفعال شود
  • WHM → Change Hostname کار نکند

راه‌حل: dhclient exit hook

فایل زیر را ایجاد کنید:

/etc/dhcp/dhclient-exit-hooks.d/zzz-set-hostname

محتوا:

#!/bin/sh
hostname server.yourdomain.com
/scripts/fixetchosts

ساخت سریع فایل:

mkdir -p /etc/dhcp/dhclient-exit-hooks.d/ && \
echo -ne '#!/bin/sh\nhostname server.yourdomain.com\n/scripts/fixetchosts\n' > /etc/dhcp/dhclient-exit-hooks.d/zzz-set-hostname && \
chmod +x /etc/dhcp/dhclient-exit-hooks.d/zzz-set-hostname

نکته: مجوز فایل باید 0755 باشد.




3. Restore Database Grants


گاهی کاربر دیتابیس دسترسی‌های خود را از دست می‌دهد (GRANT حذف می‌شود). برای رفع مشکل:


بازگردانی دسترسی با restoregrants

برای یک کاربر خاص:

/usr/local/cpanel/bin/restoregrants --cpuser=USERNAME --db=mysql --dbuser=DBUSER

برای همه کاربران دیتابیس یک اکانت:

/usr/local/cpanel/bin/restoregrants --cpuser=USERNAME --db=mysql --all

اگر restoregrants کار نکرد:

پسورد اکانت cPanel را تغییر دهید. این کار معمولاً GRANTها را بازسازی می‌کند.




4. ابزار scl – مدیریت نسخه‌های PHP در EasyApache 4


EasyApache 4 از SCL برای اجرای همزمان چند نسخه PHP استفاده می‌کند (ea-php81، ea-php82، ea-php83).


سینتکس:

scl enable ea-php81 'php -m'
scl enable ea-php82 'php -v'
scl enable ea-php83 'pecl install xdebug'

مثال‌های کاربردی:

  • لیست ماژول‌های PHP 8.1:
    scl enable ea-php81 'php -m'
  • نصب Redis برای PHP 8.2:
    scl enable ea-php82 'pecl install redis'
  • چک نسخه:
    scl enable ea-php81 'php -v'



5. راهنمای عیب‌یابی Perl و CGI


مشکلات رایج و راه‌حل‌ها

۱. مجوز فایل اشتباه است

ls -la example.cgi
chmod 755 example.cgi

۲. خطای 500 Internal Server Error

ابتدا این خطوط را اضافه کنید:

#!/usr/bin/perl
use CGI::Carp qw(fatalsToBrowser);

سپس تست کنید:

perl -w ./example.cgi

۳. فراموش کردن Content-Type

print "Content-type: text/html\n\n";

۴. مشکل suexec

لاگ را چک کنید:

tail -f /usr/local/apache/logs/suexec_log

دایرکتوری والد باید 755 باشد.

۵. خطای getgrgid invalid groupid

chmod 644 /etc/group
chmod 644 /etc/passwd
chmod 000 /etc/shadow


نتیجه‌گیری


این ابزارها و روش‌ها مجموعه‌ای از سریع‌ترین و مؤثرترین راهکارهای عیب‌یابی در cPanel & WHM هستند. با استفاده از Autofixer، restoregrants، scl و تکنیک‌های رفع خطای Perl/CGI می‌توانید بسیاری از مشکلات رایج را بدون نیاز به پشتیبانی خارجی حل کنید.


نوشته و پژوهش شده توسط دکتر شاهین صیامی