نمایش 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;

و پایان!

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

درود بر شما

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

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

لوکال بکاپ خوبه چون سرعت دسترسی بهش بیشتره اما اشکال اساسیش اینه که اگر مشکلی برای سرور پیش بیاد، فرضا دیسک سرور بسوزه همه لوکال بکاپ‌ها هم می‌سوزن و اون وقته که گردنمون در برابر مشتری از مو هم باریکتر خواهد شد. بنابراین لازمه علاوه بر تهیه لوکال بکاپ حتما تمهیداتی هم برای تهیه منظم ریموت بکاپ‌ها داشته باشیم.

کار زمان بریه اگر بخوایم خودمون بصورت دستی بریم آخرین نسخه لوکال بکاپ هر سرور رو به سرور ریموت بکاپ انتقال بدیم و فرضا اگر شما صد دستگاه سرور داشته باشید هر هفته چندین ساعت درگیر خواهید بود.

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

روش کار اسکریپت به این صورته که آخرین نسخه فول بکاپ سرورهای سی پنلی (کامپرس یا اینکریمنتال) یا دایرکت ادمینی رو به دایرکتوری home سرور ریموت rsync می‌کنه و در دایرکتوری به اسم هاست نیم سرور لوکال بکاپ یا آی‌پی سرور (بسته به این که شما در برابر متغیر HOST در اسکریپت کدوم رو می‌نویسید) منتقل می‌‌کنه.

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

https://github.com/Farshid928/bash-scripts/blob/master/cp-da-remote-bak.sh

برای این که این اسکریپت رو برای چندین سرور توی کران جاب اجرا کنید کافیه با اسکریپت زیر ترکیبش کنید.

اسکریپت خواندن خط به خط محتویات یک فایل

و تمام!

خطای 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 ریبیلد و ریستارت بشه.

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

و تمام

عدم دسترسی به crontab در centOS به دلیل اشکال در پرمیشن pam

اگر برای دسترسی به کران‌جاب در سرورهای لینوکسی که با دستور زیر انجام می‌شه:

crontab -e

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

You (root) are not allowed to access to (/usr/bin/crontab) because of pam configuration.

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

nano /etc/pam.d/crond 

و لاین زیر رو کامنت کنید:

 #account    required   pam_access.so 

و تمام!

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

درود بر شما

لکن چنانچه در لاگین به وب میل راندکیوب مشکل داشتید اما 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

خطای Failed at step NAMESPACE spawning /bin/sh: Invalid argument

لکن اگر برای استارت سرویسی مثل mariadb با خطای اینچنینی مواجه شدید،

Failed at step NAMESPACE spawning /bin/sh: Invalid argument

احتمالا سرور شما روی مجازی ساز openvz با کرنلی قدیمی بنا شده است. برای رفع اشکال باید فایل مربوط به سرویس رو ویرایش کنید،

nano /etc/systemd/system/mariadb.service

مقدار زیر رو توش پیدا و با قرار دادن # قبل از اون کامنتش کنید که اجرا نشه.

PrivateDevices=true

در نهایت یک بار دستورات زیر رو اجرا کنید:

systemctl daemon-reload
service mariadb status

و تمام!

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

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

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

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

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

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

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