در سری وبلاگ های عیب یابی آذرسیس، اکنون نوبت به شناسایی و رفع مشکلات نصب دایرکت ادمین می رسد! این مقاله شما را با ماهیت خطاها و نحوه بر طرف کردن آن ها در DirectAdmin آشنا کرده و در پایان مقاله پیش رو باکس مخصوصی را برای طرح سوالات فنی شما قرار داده ایم و تا از رفع شدن مشکلات نصب دایرکت ادمین سیستم شما اطمینان پیدا نکنیم، دست نخواهیم کشید! پس با طوفان فکری وب مستران تیم ما همراه باشید تا نگرانی های پیش آمده ناشی از مشکلات نصب دایرکت ادمین را برای شما مثل آب خوردن حل کنیم! فقط در نظر داشته باشید که برای برقراری ارتباط با دنیای سرعت بی نهایت و قدرت رقابت در پلتفرم های حرفه ای اولین و مهم ترین فاکتور بهره مندی از یک میزبانی وب بین المللی خواهد بود…
فهرست مطالب
نحوه عیب یابی و حل مشکلات نصب دایرکت ادمین
بررسی اصلی ترین عیب ها و مشکلات نصب دایرکت ادمین را در ادامه همراه با نحوه برخورد با هر خطا را مطالعه کنید و در صورت مقاله مشکلات نصب دایرکت ادمین آذرسیس را به کاربران دیگر ارسال کنید:
1- خطای اجرای دایرکت ادمین در Debug Mode
اجرا مرحله رفع این خطا به شما کمک می کند تا بتوانید در مورد دایرکت ادمین نصب شده اطلاعات بیشتری دریافت کنید و خطای پیش آمده را بر طرف کنید، پس بی درنگ با اجرا دستور زیر در حالت پر رنگ شروع کنید:
cd /usr/local/directadmin killall -9 directadmin ./directadmin server "--debug=2000"
اکنون به دایرکت ادمین متصل خواهید شد و اقداماتی که در آن در حال رخ دادن است برای شما نمایش داده می شود. اگر می خواهید Debug یک API Script را انجام دهید، برای فیلتر کردن خروجی طبق آنچه که می خواهید از دستور زیر استفاده کنید:
./directadmin server "--debug=2000" | grep string
پس از اجرا خط بالا، فقط داده های ارسال شده به شما نمایش داده خواهند شد. برای ذخیره تمامی Debug های موجود و بررسی یا grep در زمان دیگر دستور زیر را اجرا کنید:
./directadmin server "--debug=2000" > /var/log/directadmin/debug.log
برای خروج از حالت، Ctrl-C را انتخاب کرده و دستور زیر را بزنید:
./directadmin server --debug=10
اکنون دایرکت ادمین با Daemon بارگذاری می شود.
2- خطای عدم اتصال به دایرکت ادمین در پورت 2222
برای رفع این دسته از مشکلات نصب دایرکت ادمین، ابتدا با یکی از دو خط زیر وضعیت دایرکت ادمین روی سرور را بررسی کنید:
service directadmin status
ps ax | grep directadmin
سپس اگر سرویس از کار افتاده بود، خط زیر را بررسی کنید:
tail /var/log/directadmin/error.log
برای مشکلات رایج مانند تنظیم نادرست Ethernet _dev:
/usr/local/directadmin/conf/directadmin.conf
اگر مجوز نامعتبر است، uid/lid و یا IP اشتباه می باشد:
</directadmin/general-usage/licensing>
اگر IP شما در لیست سیاه خط ” /usr/local/directadmin/data/admin/ip_blacklist ” قرار دارد، در واقع از brute force login detection استفاده می کند. بنابراین باید از تنظیمی استفاده کنید که مقدار آن از 10 کمتر نباشد، به دلیل آن که حتی بارگیری صفحه ورود به سیستم به عنوان 1 تلاش ناموفق به حساب می آید. در ادامه اگر دایرکت ادمین از قبل اجرا نشده برای کشف خطایی که رخ داده از دستور زیر کمک بگیرید تا خطا به شما نمایش داده شود:
cd /usr/local/directadmin ./directadmin b200
طبق آنچه که ما انتظار داریم باید پیام خطا روی صفحه نمایش داده شود اما در غیر این صورت از Ctrl+C برای توقف روند استفاده کنید. اما اگر دایرکت ادمین اجرا شده است ولی به خارج از آن دسترسی ندارید به احتمال زیاد Port 2222 در فایروال بسته شده است. پس ابتدا امکان دسترسی به پورت را در IP 127.0.0.1 بررسی کنید:
telnet 127.0.0.1 2222
پس از اتصال فایروال را متوقف کرده و یا پورت 2222 را باز کنید. برای این کار دستورات زیر را در سیستم های مورد نظرتان اجرا کنید.
- برای توقف فایروال در CentOS7
systemctl disable firewalld systemctl stop firewalld
- برای باز کردن Port 2222
firewall-cmd --zone=public --add-port=2222/tcp --permanent
- برای توقف فایروال در CentOS6، اوبونتو و دبیان
service iptables stop chkconfig iptables off
iptables -I INPUT -p tcp --dport 3030 -j ACCEPT
اما توصیه من این است که CSF را نصب کرده و از این ابزار عالی که قوانین فایروال را حفظ می کند بهره ببرید.
3- خطای عدم دسترسی به دایرکت ادمین به عنوان Admin
از دیگر مشکلات نصب دایرکت ادمین می توان به عدم دسترسی به عنوان Admin دانست، پس اگر از دسترسی به دایرکت ادمین محروم شده اید چند دلیل اساسی می تواند داشته باشد که در ادامه تمامی این موارد را بررسی کرده ایم:
- به احتمال زیاد پارتیشنی که وظیفه ذخیره کردن فایل های Direct Admin را بر عهده گرفته پر شده است. پس برای بررسی پارتیشن ها از عبارت df -h را تایپ کنید.
- احتمال دیگری که وجود دارد این است که IP شما در حال تغییر می باشد و این مورد می تواند یکی از سهل انگاری میزبانی و ارائه دهنده اینترنت باشد! برای حل این مورد گزینه بررسی IP را غیر فعال کنید.
- همچنین اگر از رمز عبور اشتباه استفاده می کنید، امکان بروز خطای عدم دسترسی به دایرکت ادمین وجود دارد. پس سعی کنید آن را از طریق SSH به عنوان ریشه تنظیم مجدد کنید. دستور ” Password Admin ” شما را یاری خواهد کرد. پس از بر طرف شدن ایراد رمز جدید را وارد کنید.
- مطمئن شوید مرورگری که استفاده می کنید، Cookies را فیلتر نمی کند.
- اگر به تازگی دایرکت ادمین خود را به روز رسانی کرده اید، حذف کرده و مجدد آن را راه اندازی کنید.
- از دیگر دلایل رخ دادن این مشکل در دایرکت ادمین می تواند استفاده شما به صورت باینری از یک سیستم عامل دیگر باشد.
- آخرین دلیل احتمالی در دلیل به وجود آمدن این سری از مشکلات نصب دایرکت ادمین، به احتمال زیاد خالی و یا خراب بودن ” Usersdir ” شما در Directadmin.conf است.
برای رفع خطای شماره 7 در این لیست دستور زیر را وارد کرده و مراحل را ادامه دهید:
/usr/local/directadmin/directadmin config | grep usersdir
خروجی باید به شکل زیر باشد:
[~]# /usr/local/directadmin/directadmin config | grep usersdir usersdir=./data/users
4- خطای قرار گرفتن IP در بلاک لیست
در صورت دریافت پیام ” Your IP is blacklisted ” به معنی این است که مشکلات نصب دایرکت ادمین شما ناشی از این می باشد که تلاش های زیادی برای ورود به اطلاعات و سیستم شخصی تان داشته اید، و باید سریعاً راه چاره ای برای این موضوع بیندیشید. اما نگران نباشید زیرا ما فکر این مرحله از مشکلات نصب دایرکت ادمین را هم کرده ایم.
برای رفع این مشکلات نصب دایرکت ادمین، کافیست تنها خط زیر را ویرایش کرده و IP خود را از لیست سیاه یا همان بلاک لیست موجود حذف نمایید:
/usr/local/directadmin/data/admin/ip_blacklist
برای اطمینان بیشتر از اینکه دیگر هرگز در لیست بلاک لیست قرار نخواهید گرفت در خط زیر IP خود را بیافزاید و هر IP را در یک خط قرار دهید:
/usr/local/directadmin/data/admin/ip_whitelist
توجه کنید که شما می توانید از طریق تنظیمات زیر به بخشی منتقل شوید که IP هایی که تلاش های مکرری برای ورود به سیستم شما داشته اند را شناسایی کرده و از این راه IP را در یک بلاک لیست جدید قرار دهید:
- وارد بخش Admin Level شوید.
- Admin Settings را انتخاب کنید.
- در بخش Blacklist IP، آی پی مورد نظر برای قرار گرفتن در فیلتر را انتخاب کنید.
اکنون IP که تعیین شده است در بلاک لیست قرار گرفته و دیگر نمی تواند مداخله ای بر امور اطلاعاتی شما در سیستم تان داشته باشد. اما در صورتی که می خواهید با یک زمان بندی خاصی IP هدف خود را در بلاک لیست قرار دهید مراحل ذکر شده در ادامه مقاله را باید به دقت پیش ببرید. فقط باید در نظر داشته باشید که این مراحل برای DirectAdmin 1.34.0 در نظر گرفته شده است:
- گزینه اول: brute_force_time_limit=120
زمانی که در این گزینه برای مثال بهتر نوشته شده است ( یعنی 120 ثانیه ) زمانبندی آخرین تلاش کاربر با یک آی پی برای ورود ناموفق به سیستم است که در صورت صبر نکردن و امتحان مجدد برای ورود در 120 ثانیه، آی پی در بلاک لیست قرار خواهد گرفت.
- گزینه دوم: clear_blacklist_ip_time=0
استفاده از این گزینه در روند بلاک لیست آی پی، به معنی حذف IP کاربر پس از قرار گرفتن در بلاک لیست می باشد. اکنون پس از این مراحل مشکلات نصب دایرکت ادمین شما که ناشی از بلاک شدن و یا بلاک کردن IP است باید حل شده باشد اما در صورتی که سوالات بیشتری در این مورد دارید می توانید از متخصصین ما بپرسید…
5- خطای رد Session برای Admin
برای رد این خطا در سری مشکلات نصب دایرکت ادمین سریع ترین و کامل ترین راهنمایی این است که از مراحلی که در ادامه ذکر شده است استفاده کنید اما پیش از شروع توجه کنید که اگر در ورود به سیستم و دقیقاً در قسمتی که به صفحه ورود به سیستم اصلی بوت می شود، در قسمت زیر خطای مشخص شده را مشاهده می کنید. پس به این ترتیب باید از این تیتر برای حل مشکلات نصب دایرکت ادمین خود بهره ببرید:
/var/log/directadmin/error.log
خطا:
Rejected session for user admin because IP (1.2.3.4) doesn't match session file (5.6.7.8)
در صورتی که هر دو IP مخصوص شما هستند، ممکن است بروز این نوع مشکلات نصب دایرکت ادمین ناشی از چرخش IP ها باشد که بیشتر مواقع به دلیل استفاده از پراکسی ها و یا استفاده کاربر از IPv4 و IPv6 به جای یکدیگر رخ دهد. با توجه به اینکه بررسی های IP معمولاً از طریق Session انجام نمی شود، پس بهتر است با اجرا سطر زیر این لایه امنیتی را از سیستم خود غیر فعال کنید:
disable_ip_check=1
پس از انجام مراحل بالا در روند حل مشکلات نصب دایرکت ادمین، دایرکت ادمین خود را مجدداً فعال سازی کنید، بدین ترتیب مشکلات نصب دایرکت ادمین شما حل خواهد شد:
/usr/local/directadmin/conf/directadmin.conf
6- خطای پیدا نشدن Binary در دایرکت ادمین
اگر در حال نصب دایرکت ادمین هستید ولی خطای پیدا نشدن Binary از مشکلات نصب دایرکت ادمین است، خطای دریافتی شما به صورت زیر خواهد بود:
gzip: stdin: unexpected end of file tar: Child returned status 1 tar: Error is not recoverable: exiting now Cannot find the DirectAdmin binary. Extraction failed it could be for a variety of reasons.
برای رفع خطا تمام نتایج update.tar.gz را دانلود کنید:
x-return-code: unauthorized
و سپس سطر زیر را اجرا نمایید:
ERROR: Certificate verification error for www.directadmin.com: unable to get local issuer certificate To connect to www.directadmin.com insecurely, use `--no-check-certificate'.
7- خطای The request you’ve made cannot be executed
این مورد یکی از رایج ترین خطا های موجود در سری مشکلات نصب دایرکت ادمین است که شما به عنوان کاربران با آن مواجه خواهید شد:
You cannot execute that command The request you've made cannot be executed because it does not exist in your authority level
این خطا به دلیل در دسترس نبودن Request CMD Call است که با طی مراحل زیر به راحتی قابل حل خواهد بود:
- از یک اکانت متفاوت وارد دایرکت ادمین شوید. زیرا دایرکت ادمین از Session در احراز های هویتی مبتنی بر مرورگر استفاده می کند و از یک Session Cookie که در تمام برگه های Tabs و Instances مشخص می شود. در صورتی که بیش از دو Tab باز نگه داشته باشید و به عنوان یک Less Privileged Account وارد Tab شماره B شوید، سایر Tab ها نیز به صورت خودکار وارد این نوع حساب خواهند شد.
- گزینه F5 را در Tab A بزنید، این کار موجب می شود تا تمام موارد مورد نیاز را مشاهده کنید.
- دستورات allow/deny را وارد کنید. راه های زیادی برای اجرا این دستورات وجود دارد مانند: Per-User commands.allow/deny lists، Global never_commands و Feature Sets که توضیحات هر کدام در وب سایت رسمی دایرکت ادمین برای رفع مشکلات نصب دایرکت ادمین به صورت رسمی آورده شده است.
در صورت نیاز می توانید در دایرکت ادمین در قسمت “USR_DEBUG” از level 703 استفاده کنید، برای مثال:
cd /usr/local/directadmin service directadmin stop ./directadmin b703
در این قسمت ما به دنبال خروجی مربوطه به Function Call هستیم:
User::isAllowedToExecute User::deny_override
سپس از گزینه Ctrl-C برای خروج از Debug Mode استفاده کنید:
service directadmin start
و مجدد دایرکت ادمین را اجرا کنید.
8- نحوه Debug کردن Segfault در دایرکت ادمین
برای تشخیص آن که این خطا رخ داده است یا خیر باید با پیام “A segmentation fault has occurred” مواجه شده باشید. این خطا به دلیل ناسازگاری باینری ها با سیستم شما و یا مدیریت نادرست Data رخ می دهد.
برای حل این مسئله ابتدا باید در Admin Level به قسمت Licenses/Updates بروید و چک کنید که آیا سیستم عاملی که باینری ها در آن کامپایل شده اند با سیستم عاملی که شما در حال استفاده از آن هستید، مطابقت دارد یا خیر؟ و اما برای انکه شروع به رفع این ایراد پیش آمده بکنید باید خط زیر را بررسی کنید:
/var/log/directadmin/error.log
در این قسمت یک پیام Segfault با Program Location وجود خواهد داشت. gdb را نصب کرده و به شکل صحیح Segfault را Copy کنید. به شکل معمولی وارد دایرکت ادمین شوید و به صفحه ی Click Away 1 از Segfault فاصله دارید بروید، در این قسمت به عنوان کاربر Root وارد SSH شده و خط زیر را تایپ کنید:
cd /usr/local/directadmin killall -9 directadmin gdb directadmin run s
این کپی non-forked است که از دایرکت ادمین بارگیری می شود، به مرورگر “1 click away” برگردید و یک فرم برای Generate کردن Segfault ارسال کنید. اگر هیچ خروجی دریافت نکنید این یک نشانه خوب است. دوباره به SSH برگردید:
bt full
کل خروجی را کپی کرده و ارسال کنید.
9- خطای وجود و یا عدم وجود دامنه در دایرکت ادمین
از دیگر مشکلات نصب دایرکت ادمین می توان به خطای وجود و یا عدم وجود دامنه در دایرکت ادمین اشاره کرد که ما راه حل آن را هم برای شما بازگو خواهیم کرد. پیام Domain Already Exists زمانی ظاهر می شود که از قبل دامنه در سیستم وجود داشته باشد اما برای اطلاع از روشی که دایرکت ادمین برای اثبات دامنه از آن استفاده می کند بررسی فایل named.conf می باشد.
اگر از طریق “Show All Accounts” مطمئن هستید که هیچ دامنه ای اضافه نشده است باید اطمینان حاصل کنید که Zone را از فایل named.conf به صورت دستی حذف نموده اید. همچنین برای افزودن دامنه از قسمت Admin Panel و سپس وارد شدن به قسمت DNS Admin استفاده کنید. توجه داشته باشید که برای جلوگیری از حذف هرگونه اطلاعات در DNS باید نسخه پشتیبان درستی تهیه کنید.
با افزودن این گزینه می توانید Multi Server را بر روی همه سرور های دایرکت ادمین میزبانی کنید. در ادامه این مراحل گزینه “Check Domain” را غیر فعال کنید. همچنین برای بررسی وجود و یا عدم وجود دامنه می توانید نگاهی به فایل های زیر بیندازید:
/etc/virtual/domains
/etc/virtual/domainowner
/etc/virtual/domain.com
/var/named/*.nzf
10- خطای عدم مطابقت Hostname و Servername
زمانی که در مشکلات نصب دایرکت ادمین به خطایی مانند یکی از سطور زیر برخورد می کنید باید از راه حل های موجود در تیتر برای رفع آن کمک بگیرید:
Your hostname, , and the servername you have set in DirectAdmin, server.host.com, do not match.
و یا
hostname: Name or service not known
نام دامنه را بررسی کنید ( باید FQDN باشد ):
hostname --fqdn
اگر نام میزبانی متفاوت در خروجی دارید به این معنی است که باید در Admin Level در قسمت Admin Settings وارد گزینه Servername شده و از این طریق نام سرور را به روز کرده و تنظیمات انجام شده را ذخیره کنید. برای همگام سازی مجدداً برگردید و مطمئن شوید که یک Zone کامل برای نام میزبان خود در DNS در دست دارید. برای این کار به Admin Level رفته و در قسمت DNS Admin به سراغ server.host.com بروید فقط توجه کنید که MX Records داشته باشد.
قبل از اجرا دستور زیر فایل /etc/hosts را بررسی کنید و دستور زیر را بزنید:
1.2.3.4 your.hostname.com
و همچنین دستور زیر:
1.2.3.4 your.hostname.com your
11- خطای مدیریت در دستگاه های Ethernet در نحوه نصب VPS/VDS
از این سری مشکلات نصب دایرکت ادمین به تعداد زیادی به چشم می خورد که تنها راه حل آن استفاده و پیاده سازی روش های زیر خواهد بود، ابتدا باید توجه کنید که این خطا و مراحل نصب روی VPS و VDS ممکن است اندکی بیشتر از زمانی که حدس می زنید طول بکشد، فایل سطر اول را در نظر بگیرید و خطوز بعد از آن را به فایل اضافه کنید:
فایل:
/usr/local/directadmin/conf/directadmin.conf
دستور 1:
ethernet_dev=devicename
برای نمونه در بسیاری از سیستم های VPS به شکل زیر خواهد بود:
ethernet_dev=venet0:0
سایر سیستم هایی که بر پایه IP نیستند:
ethernet_dev=eth0:1
برای سیستم های دیگر که IP آن ها در دستگاه دیگر قرار دارد:
ethernet_dev=eth1
برای اینکه ببینید IP شما در کدام Device است، دستور زیر را تایپ کنید:
ip a
پس از اجرا دستورات بالا، نام دستگاه را با FULL Devicename جایگزین کنید.
12- خطای عدم Start دایرکت ادمین
امیدواریم دردسر مشکلات نصب دایرکت ادمین با این مورد برای شما حل شده باشد، اما اگر خطا های زیر را مشاهده کردید نشان از خطای عدم Start دایرکت ادمین خواهد بود.
./directadmin: cannot execute binary file
/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
همچنین خطا های آمده در سطور بالا، در روند مشکلات نصب دایرکت ادمین به معنی عدم مطابقت نسخه سیستم عامل تنظیم شده در فایل License با سیستم عامل شما می باشد. بنابراین برای دریافت باینری های درست، باید سیستم عامل موجود در License خود را تغییر دهید.
برای ایجاد این تغییرات و رفع مشکلات نصب دایرکت ادمین در این مرحله می توانید وارد قسمت Client Account Area شده و بر روی License ID خود کلیک کنید تا بتوانید تنظیمات مورد نیاز را اعمال کرده و در صورت تمایل سیستم عامل خود را تغییر دهید.
فراموش نکنید که برای اعمال یک نصب جدید باید از راه اندازی مجدد Setup.sh کمک بگیرید اما اگر از قبل نصب وجود داشته است باید باینری های را به صورت دستی نصب کنید. اکنون از شر این مشکلات نصب دایرکت ادمین نیز راحت خواهید شد!
سخن آخر
اکنون می توانید یک نفس راحت از دست مشکلات نصب دایرکت ادمین بکشید! اما مثل همه ی مقاله های علمی و کاربردی آذرسیس می توانید برای اطلاعات بیشتر و یا رفع سوالات خودتان از طرح هرگونه سوالات احتمالی برای مشکلات نصب دایرکت ادمین از توسعه دهندگان متخصص در این زمینه به صورت نامحدود پشتیبانی بگیرید. برای این کار کافیست سوال خود را تحت تیتر مشکلات نصب دایرکت ادمین در کامنت ثبت کنید. از همراهی و همدلی شما در خدمات میزبانی وب و وبلاگ های حرفه ای آذرسیس کمال تشکر را داریم. امیدواریم همواره افتخار میزبانی وب کسب و کار ارزشمند شما را داشته باشیم…