آموزش دایرکت ادمین، سی پنل، وب سایت پنل

خانه / مدیریت سرور (صفحه ی 2)

مدیریت سرور

آشنایی با دستور پرکاربرد ps در لینوکس

دستور ps مخفف processes status می باشد که یکی از دستورات موجود در تمام هسته های سیستم عامل لینوکس به منظور مشاهده وضعیت پروسس های در حال اجرا در سیستم می باشد.
در واقع این دستور تمامی اطلاعات خود را از فایل های موجود در مسیر /proc دریافت می کند. ps یکی از پرکاربردترین دستورات  برای مدیران سیستم به منظور مانیتورینگ پروسس های در حال اجرا یک سرور لینوکسی می باشد.
مجموعه سویچ های مورد استفاده در دستور ps بسیار زیاد می باشند، در ادامه ۱۵ دستور پرکاربرد ps را مرور می کنیم:

۱- نمایش تمامی پروسس ها در ترمینال فعال:

      ps

۲- نمایش تمامی پروسس ها در سیستم:

ps -A
ps -e

۳- نمایش تمامی پر.سس ها با اطلاعات جزئی تر:

ps -ef
ps -eF

۴- نمایش تمامی پروسس های مربوط به یه کاربر با استفاده از نام کاربری:

ps -u user_name

به جای user_name نام کاربر را قرار دهید: مثال:

ps -u root

۵- نمایش تمامی پروسس های مربوط به یک کاربر با

UserID: ps -fu User_ID

مثال:

ps -fu 1000

۶- نمایش تمامی پروسس های مربوط به یک گروه:

ps -fG group_name/group_ID
ps -fG apache ps -fG 68

۷- نمایش تمامی پروسس ها با استفاده از PID وPPID:

ps -fp PID
ps -fp PID1,PID2,PID3 
ps -fp 1000,1345,3456

۹- نمایش تمامی پروسس ها با استفاده از شماره ترمینال:

ps -t terminal_ID 
ps -t pst/0 ps -t tty1

۱۰- نمایش پروسس ها به صورت درختی:

ps -e --forest

۱۱- نمایش زیر پروسس های مربوط به یک پروسس خاص به صورت درختی:

ps -e --forest -C sshd

۱۲- نمایش اطلاعات دلخواه مربوط به یک پروسس:

ps -eo pid,ppid,user,cmd

۱۳- نمایش تمام PID های مربوط به یک پروسس:

ps -C apache2 -o pid=

۱۴- نمایش زمان اجرای یک پراسس از زمان شروع آن تا کنون:

ps -eo comm,etime,user | grep httpd

۱۵- نمایش پروسس ها بر اساس درصد استفاده از cpu. این دستور به منظور یافتن پروسس هایی که منابع زیادی مصرف می کنند مناسب می باشد.

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

۱۶- نمایش پروسس ها بر اساس درصد استفاده از ram. این دستور به منظور یافتن پروسس هایی که منابع زیادی مصرف می کنند مناسب می باشد.

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

تنظیم پرمیژن اکانت ها در cPanel

script to fix permissions and ownership, on files and directories, for cPanel accounts

اسکریپت را در مسیر دلخواه در سرور خود از لینک زیر دانلود کنید:

https://serversetup.co/dl/fixperms.zip

فایل را از حالت فشرده خارج کنید و سطح دسترسی آم را ۷۵۵ قرار دهید.

chmod +x fixperms.sh

برای تنظیم permision و owner های یک یوزر سی پنل دستور زیر را در ssh اجرا نمایید.

sh ./fixperms.sh -a USER-NAME

بجای USER-NAME نام کاربری اکانت مورد نظر را وارد نمایید.

برای تنظیم permision و owner تمام اکانت ها دستور زیر را وادر نمایید.

sh ./fixperms.sh -all

میتوانید این فایل را در cron سرور جهت اجرای بصورت مداوم قرار دهید.

  • این اسکریپت توسط سرورستاپ بهینه سازی شده  است.  برای اطلاعات بیشتر مطلب “پرمیژن طلایی” را مطالعه کنید.

 

مشکل Timeout شدن وبمیل در cPanel

Cpanel/webmail timing out

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

login faild

connection to storage server failed

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

دستور زیر را در سرور تست کنید و مطمئن شوید مشکلی در ارتباط وجود ندارد.

telnet localhost 2095
telnet localhost 2096

مطمئن شوید IPv6 در تنظمیات ایمیل غیر فعال باشد، همچنین فایروال نسخه IPv6 در سرور فعال نباشد.( و یا در صورت فعال بودن تنظیمات دسترسی به پورت ها اعمال شده باشد)

service ip6tables stop

در Centos6

chkconfig ip6tables off

در Centos7

systemctl disable ip6tables

در صورت عدم رفع مشکل باید log های سرور را بررسی کنید.

/usr/local/cpanel/logs/login_log

خطای Unable to detect Apache version

Unable to detect Apache version from binary

در صورتی که پس در سرور WHM در سرویس apache با خطای زیر مواجه شدید.

Failed to get apache configuration: Unable to detect Apache version from binary
Failed to build Apache configuration file (/etc/apache2/conf/httpd.conf.work.699ccf6e)
Failed to get apache configuration: Unable to detect Apache version from binary

ابتدا از طریق ssh با دستور زیر نسخه apache سرور را پیدا کنید.

rpm -qa |grep ea-apache

در این مثال نسخه apache 2.4 در نظر گرفته شده است.

خروجی این دستور را کپی کنید، خروجی مقداری مشابه زیر خواهد بود.

ea-apache24-2.4.34-3.3.1.cpanel.x86_64

سپس با توجه به خروجی دستور اول، دستور زیر را اجرا کنید.

yum reinstall ea-apache24-2.4.34-3.3.1.cpanel.x86_64

 

نصب ماژول mongo برای php در cPanel

Install MongoDB PHP extension on cPanel/WHM Server

برای نصب ماژول Mongo بروی PHP در WHM باید به سرور ssh کنید زیرا این ماژول از طریق easy apache قابل نصب نیست.

برای نصب باید توابع popen و putenv بروی php باز باشد.

برای نصب بروی php 5.6 دستور زیر را اجرا کنید.

/opt/cpanel/ea-php56/root/usr/bin/pecl install mongo

برای نصب بروی php 7 و بالاتر دستور زیر را اجرا کنید.

/opt/cpanel/ea-php70/root/usr/bin/pecl install mongodb

 

مشکل در دریافت ایمیل در Cpanel

email problems using exim and cPanel 

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

۵۵۰ The mail server could not deliver mail. The account or domain may not exist

ابتدا IP سرور ایمیل را بررسی کنید که در بلک لیست ها نباشد. از سایت زیر کمک بگیرید.

https://mxtoolbox.com/blacklists.aspx

در صورتی که مشکلی در IP سرور وجود نداشت بررسی کنید آیا رکورد mx در DNS سرور و تنظیمات مربوط به دامنه درست تنظیم شده است. اگر DNS سرور شما بروی سرور cPanel خود قرار دارد از قسمت Edit DNS Zone  رکورد mx دامنه سایت مورد نظر را بررسی و از وجود و صحیح بودن آن اطمینان حاصل کنید. برای بررسی صحت رکوردهای دامنه از جمله رکورد mx از سایت زیر کمک بگیرید.

http://intodns.com

گاهی ممکن است تنظیمات درست باشد اما مشکل در دریافت ایمیل وجود داشته باشد، به عنوان مثال گاهی تغییر نام دامنه هاست در cPanel ممکن است باعث مشکل در دریافت ایمیل شود. برای رفع مشکل دستورات زیر استفاده کنید.

/scripts/updateuserdomains
/scripts/mailperm
/scripts/mailtroubleshoot
/scripts/fixeverything
/scripts/eximup --force

خطای اضافه کردن addon domain در cPanel

  Cannot add a new addondomain in cPanel

اگر در زمان اضافه کردن addon domain به سی پنل با خطای زیر مواجه میشوید.

the domain is already pointed to an IP address that does not appear to use DNS servers associated with this server. Please transfer the domain to this servers nameservers or have your administrator add one of its nameservers to /etc/ips.remotedns and make the proper A entries on that remote nameserver.

وارد WHM سرور شوید و به قسمت Tweak Settings بروید و گزینه Allow Remote Domains را On کنید.

 

 

خطای Domain already exists In The Userdata در سی پنل

Already exists in apache config  cPanel

مسیر را جهت وجود نام دامنه بررسی نمایید و در صورت وجود آن را حذف کنید.

grep $domain /var/cpanel/userdata/*/*

بجای domain نام دامنه را وارد کنید.

مسیر های زیر را نیز بررسی کنید.

grep domain.com /var/cpanel/users/*
grep -R domain.com /var/cpanel/userdata/*

در نهایت پس از از بررسی  و حذف نام دامنه دستورات زیر را اجرا کنید.

/scripts/rebuildhttpdconf

ریدایرکت کردن آدرس دامنه در nginx

Temporary and Permanent Redirects with Nginx

 

برای انجام ریدایرکت دو نوع رایج وجود دارد.

–        Temporary redirects یا redirect 302  جهت ریدایرکت کردن موقت لینک ها

–        Permanent redirects یا redirect 301  جهت ریدایرکت دائمی لینک ها

جهت ریدایرکت ۳۰۲ باید خط زیر را به تنظیمات فایل config  مربوط به دامنه مورد نظر اضاف کنید.

rewrite ^/$ http://www.domain2.com redirect;

این تنظیمت تنها برای یک صفحه کار میکند و صفحات داخلی سایت شامل این ریدایرکت نمیشود. برای ریدایرکت تمام صفحات به آدرس جدید با لینک مشابه از کد زیر استفاده می شود.

rewrite ^/(.*)$ http://www.domain2.com/$1 redirect;

برای ریدایرکت ۳۰۱  نیز تنظیمات به همین صورت است.برای ریدایرکت یک صفحه

rewrite ^/$ http://www.domain2.com permanent;

و برای ریدایرکت تمام صفحات داخلی

rewrite ^/(.*)$ http://www.domain2.com/$1 permanent;

این تنظیمات باید در فایل config  دامنه مورد نظر در nginx   بصورت زیر قرار گیرد.

server {
. . .
server_name domain1.com;
rewrite ^/(.*)$ http://domain2.com/$1 permanent;
. . .
}

بسته به نوع سیستم عامل ، کنترل پنل و یا تنظیمات اختصاصی انجام شده بروی سرور مسیر فایل های config  هر سایت می تواند متفاوت باشد. Domain1.com  دامنه ایست که میخواهید به Domain2.com  ریدایرکت شود

تغییر زمان TTL در دایرکت ادمین

در دایرکت ادمین امکان تنظیم زمان TTL برای سرویس DNS از طریق کنترل پنل وجود ندارد، اما میتوان از طریق تغییر در مقادیر پیش فرض از طریق خط فرمان تغییرات مورد نظر را انجام داد.

برای این منظور بصورت زیر عمل کنید.

cd /usr/local/directadmin/data/templates/custom
cp ../named.db .
nano named.db

و مقدار زیر را به دلخواه تنظیم کنید.

|?A_TIME=14400|

در صورتی که میخواهید فقط برای یک دامنه تنظیمات را اعمال کنید قبل از عبارت

$TTL 14400

و عبارت زیر را با توجه به نام دامنه خود تنظیم کنید.

|*If DOMAIN="yourcustomdomain.com"|
|?A_TIME=3600|
|*endif|
دستور بالا مقدار تمام A رکوردها دامنه را تنظیم میکند.