~3 دقیقه مطالعه • بروزرسانی ۲۹ بهمن ۱۴۰۴
1. Autofixer – ابزار تعمیر خودکار از مرورگر
Autofixer مجموعهای از اسکریپتهای داخلی cPanel است که به شما اجازه میدهد برخی مشکلات رایج را بدون SSH و فقط از طریق مرورگر رفع کنید.
نحوه استفاده
- به آدرس زیر بروید:
https://serverip:2087/scripts2/autofixer - با کاربر root وارد شوید.
- نام اسکریپت Autofixer را وارد کنید.
- روی Submit کلیک کنید.
- نتیجه در مرورگر نمایش داده میشود.
اسکریپتهای موجود (تا سال ۲۰۲۶)
| نام اسکریپت | توضیحات | توصیه مهم |
|---|---|---|
| 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 میتوانید بسیاری از مشکلات رایج را بدون نیاز به پشتیبانی خارجی حل کنید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی