خطای Too many open files در MySQL

گاها ممکنه پیش اومده باشه هنگام کار با MySQL خصوصا تو سرورهای سی‌پنلی خطایی به شکل زیر دریافت کرده باشید:

Error    : Got error 24 "Too many open files" from storage engine MyISAM

برای رفع این خطا اول وارد MySQL shell بشید ( با تایپ دستور mysql روی شل لینوکس) و دستور زیر رو اجرا کنید تا مشخص بشه محدودیت open files چقدر هست:

SHOW VARIABLES LIKE 'open_files_limit';

خروجی این دستور چیزی مشابه زیر خواهد بود:

+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 10000 |
+------------------+-------+
ادامه خواندن خطای Too many open files در MySQL

رفع اشکال lfd on HOSTNAEM: Email queue size alert

اگر احیانا از cPanel و میل سرور exim استفاده می‌کنید و روی این‌ها lfd نصب کردید ممکنه گاها پیام‌هایی به شکل زیر از lfd دریافت کنید:

 
lfd on HOSTNAME: Email queue size alert
Time: Mon Apr 6 14:41:15 2020 +0100

The exim delivery queue size is 1049

خب همونطور که مشخصه صف ایمیل شما پر شده، راه حل ساده برای رفع این مشکل مراجعه به گزینه Mail Queue Manager تو پنل WHM، مشاهده علت پر شدن صف ایمیل، رفع اون و حذف ایمیل‌های اضافی هست، اما گاها پیش میاد که شما وارد این بخش می‌شید اما هیچ ایمیلی نمی‌بینید.

در این حالت احتمالا شما قبلا ایمیل‌ها رو از صف پاک کردید اما id پیام‌ها از لاگ‌های exim حذف نشده. برای رفع این مشکل کافیه دستور زیر رو اجرا کنید.

exim -bp | exiqgrep -i | xargs exim -Mrm

دقت داشته باشید با اجرای این دستور همه ایمیل‌های توی صف exim پاک خواهند شد، پس بهتره وقتی دستور رو اجرا کنید که پیام حساسی توی صف نباشه. مثلا نیمه‌های شب.

برای این که ببینید در حال حاضر چه تعداد ایمیل در صف exim دارید هم می‌تونید از دستور زیر استفاده کنید:

exim -bpc

نمایش IP صحیح بازدیدکنندگان در Engintron

درود بر شما

همونطور که احتمالا اطلاع دارید Engintron یک ماژول از وب سرور انجین ایکسه که برای استفاده از این وب سرور روی سرورهای سی‌پنلی ساخته شده که به عنوان ریورز در کنار آپاچی پرفورمنس نسبتا مناسبی رو ارائه می‌ده.

ممکنه برای شما هم پیش اومده باشه که تو لاگ‌های آپاچی دیده باشید که به جای آی‌پی همه بازدیدکننده‌ها آی‌پی سرور درج شده باشه و کدهای php مثل کد زیر هم به جای برگردوندن آی‌پی بازدیدکننده آی‌پی سرور رو نمایش بدن.

$_SERVER['REMOTE_ADDR']

برای رفع این مشکل دو اقدام باید انجام داد،

اول از طریق EasyApache در پنل WHM باید ماژول‌های آپاچی mod_remoteip و mod_cloudflare رو فعال کنید.

سپس فایل زیر رو ادیت کنید:

nano /etc/apache2/conf.modules.d/370_mod_remoteip.conf

محتوای این فایل باید به صورت زیر باشه:

# Enable mod_remoteip
LoadModule remoteip_module modules/mod_remoteip.so
RemoteIPHeader        X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1 192.168.1.1 192.168.1.2

تو کدهای بالا به جای 192.168.1.1 باید آی‌پی سرورتون رو وارد کنید و اگر IP اختصاصی هم دارید برای اکانتی به جای 192.168.1.2 وارد کنید، اگر هم آی‌پی اشتراکی یا اختصاصی دیگه‌ای ندارید که نیازی نیست چیز دیگه‌ای اضافه بشه.

مورد دیگه‌ای هم که باید مدنظر داشته باشید اینه که با فعال کردن mod_cloudflare باید کانفیگ‌های زیر به مسیر /etc/nginx/nginx.conf اضافه بشه، اگر نبود به صورت دستی اضافه کنید تا آی‌پی بازدیدکننده‌های سایت‌هایی که از کلودفلر استفاده می‌کنن هم به درستی لاگ بشه.

    # CloudFlare IPs
    # List from: https://www.cloudflare.com/ips-v4
    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 104.16.0.0/12;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 131.0.72.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    # List from: https://www.cloudflare.com/ips-v6
    set_real_ip_from 2400:cb00::/32;
    set_real_ip_from 2405:8100::/32;
    set_real_ip_from 2405:b500::/32;
    set_real_ip_from 2606:4700::/32;
    set_real_ip_from 2803:f800::/32;
    set_real_ip_from 2c0f:f248::/32;
    set_real_ip_from 2a06:98c0::/29;

    # Replace with correct visitor IP
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;

و پایان!

خطای sender verify fail در سی‌پنل

درود بر شما

لکن اگر مثل ما نیم روزی روی تنظیم اکانت ایمیل‌ها روی اوتلوک (خصوصی روی سرورهای سی‌پنلی) خطایی مطابق زیر ملاحظه فرمودید:

"Sending' reported error (0x800CCC65) : 'Your outgoing (SMTP) e-mail server has reported an internal error. If you continue to receive this message, contact your server administrator or Internet service provider (ISP). The server responded: 503 Valid RCPT command must precede DATA'"

و روی لاگ فایل وب سرور اگزیم که با دستور زیر قابل بررسیه:

tail -f /var/log/exim_rejectlog 

خطاهایی مثل زیر ملاحظه فرمودید:

 sender verify fail for : No such person at this address.
F= A=dovecot_login:test@farshid.xyz rejected RCPT : Sender verify failed

لکن موقتا می‌تونید وارد WHM و سپس Exim Configuration Manager بشید و گزینه Sender Verification رو روی off بذارید و تنظیمات رو ذخیره کنید تا کانفیگ exim ریبیلد و ریستارت بشه.

غیرفعال بودن این گزینه می‌تونه مشکل آفرین باشه. بعدا که دلیل اصلی خطا مشخص شد غیرفعالش کنید.

و تمام

خطا در لاگین به وب میل راندکیوب در دایرکت ادمین

درود بر شما

لکن چنانچه در لاگین به وب میل راندکیوب مشکل داشتید اما squirrelmail مشکلی نداشت، ارور لاگ فایل راندکیوب رو در مسیر زیر بررسی کردید:

tail -n 20 /var/www/html/roundcube/logs/errors

و خطایی مشابه زیر مشاهده شد:

 PHP Error: Failed to create a user record. Maybe aborted by a plugin? in /var/www/html/roundcubemail-1.3.10/program/include/rcmail.php on line 652 (POST /roundcube/?_task=login&_action=login)

دستور زیر رو اجرا کنید، انشالله تعالی که افاقه کند:

mysql --defaults-extra-file=/usr/local/directadmin/conf/my.cnf -e 'ALTER TABLE da_roundcube.users DROP COLUMN alias;' --host=localhost

اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین

همونطور که اطلاع دارید با افزایش نجومی هزینه‌های لایسنس سی‌پنل خیلی از سرویس‌دهنده‌ها تصمیم دارن سی‌پنل رو از سرورهاشون حذف کنن و دایرکت‌ادمین رو جایگزین اون کنن.

طبیعتا تنها راه انجام این انتقال اینه که سرور جدیدی با کنترل‌پنل دایرکت‌ادمین ستاپ بشه و اکانت‌ها از سی‌پنل به دایرکت ادمین منتقل و ریستور بشن.

خبر خوب این که دایرکت‌ادمین اخیرا اسکریپت تبدیل بکاپ سی‌پنل به دایرکت‌ادمین رو تو نسخه جدیدش اضافه کرده و اگر شما فول بکاپ سی‌پنل رو با فرمت اسم cpmove-user.tar.gz روی دایرکت‌ادمین ریستور کنید، بصورت خودکار به فول بکاپ دایرکت‌ادمین تبدیل و ریستور می‌شه.

یک راه انتقال اینه که از همه اکانت‌های سی‌پنل فول بکاپ بگیرید، به یکباره همه رو به سرور دایرکت‌ادمین انتقال بدید و در نهایت همه اکانت‌ها رو یک جا ریستور بزنید.

این کار اشکالاتی داره…

ادامه خواندن اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین

خطای Your license OS (CentOS 6) does not match the OS installed (CentOS 7) دایرکت ادمین

با تغییر سیاست لایسنس‌دهی سی‌پنل و افزایش بی‌رویه و ددمنشانه قیمت لایسنس، احتمالا شما هم جزو اون دسته از افردای باشید که بخواید کنترل‌پنل سرورهای لینوکسی‌تون رو به مناسب‌ترین و مقرون‌به‌صرفه‌ترین پلن که از نظر محققان دایرکت ادمین هست تغییر بدید.

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

یکی از اشکالاتی که در این خصوص ممکنه ایجاد بشه این هست که ممکنه مشکل ناهماهنگ بودن ورژن لایسنس دایرکت ‌ادمین و نسخه سرور ایجاد بشه. برای من مشکل ایجاد شده اینطور بود که لایسنس دایرکت ادمین هماهنگ با centos 6 روی سروری با نسخه 7 از سیستم عامل centos نصب شده بود، و برای اجرای آپدیت‌های کاستوم بیلد هشدار زیر دریافت می‌شد:

Your license OS (CentOS 6) does not match the OS installed (CentOS 7).
ادامه خواندن خطای Your license OS (CentOS 6) does not match the OS installed (CentOS 7) دایرکت ادمین