بالا رفتن ناگهانی لود سرور – سرور لینوکسی

مبحث مهمی که در سرور ها و بویژه سرور های لینوکسی وجود دارد بالا رفتن ناگهانی لود سرور می باشد

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

حالت اول )لود بالا رفته و هیچ یک از سایت ها و حتی کنترل پنل بالا نمی آید

[list type=”tick”]

  • به SSH لاگین کنید ، سرویس httpd و mysql ( در سرور های دایرکت ادمینی mysqld ) را استاپ کنید ( اگر استاپ نشدند از طریق مقاله روبرو به صورت اجباری استاپ کنید >> مشاهده و حذف pid یک سرویس خاص )
  • اگر SSH نیز کار نکرد از طریق سخت افزاری سرور را ریبوت کنید
  • معمولا در اکثر اوقاتی که لود بالا رفته و حتی SSH نیز بالا نمی آید به دلیل یک  bad sector در هارد هست . فرضا قسمتی از یک فایل بر روی بلاکی قرار دارد که و آن بلاک مشکل دار شده و با فراخوانی آن بلاک ( خواندن ، حذف کردن ، منتقل کردن ) موجب بالا رفتن لود سایت شما می شود
  • اگر SSH کار کرد و سرویس ها را قطع کردید صبر کنید تا لود پایین بیاید ، سپس یکی یکی سرویس ها را اجرا کرده و توسط دستورات این لینک تعداد اتصال های فعال به آپاچی و ( با جایگذاری عبارت mysql ) ، تعداد اتصال های فعال mysql را مشاهده کنید
  • اگر فایروال نصب ندارید حتما از طریق این آموزش نصب کنید
  • وارد phpmyadmin شوید طبق این آموزش تعداد پروسس های فعال را چک کنید ، هر یوزری که مدت زمان بیشتری متصل هست را ساسپند کنید

[/list]

حالت دوم ) لود بالا رفته و سایت ها به کندی بالا می آیند ، کنترل پنل نیز بالا می آید

[list type=”tick”]

  • اگر فایروال نصب ندارید حتما از طریق این آموزش نصب کنید
  • وارد phpmyadmin شوید طبق این آموزش تعداد پروسس های فعال را چک کنید ، هر یوزری که مدت زمان بیشتری متصل هست را ساسپند کنید
  • اگر SSH کار کرد و سرویس ها را قطع کردید صبر کنید تا لود پایین بیاید ، سپس یکی یکی سرویس ها را اجرا کرده و توسط دستورات این لینک تعداد اتصال های فعال به آپاچی و ( با جایگذاری عبارت mysql ) ، تعداد اتصال های فعال mysql را مشاهده کنید

[/list]

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

گاهی اوقات هست که ایمیل از یک یوزر به صورت انبوه ارسال می شود و کاربر نیز از این ارسال ها بی اطلاع هست

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

برای شناسایی ابتدا وارد mail queue شوید ، ( در سی پنل و دایرکت ادمین فرقی نمی کند ) ، یکی از ایمیل هایی که در mail queue مانده را باز کرده ، هدر آنرا بررسی نمایید ، برای یافتن فایلی که ایمیل ارسال می کند واژه ” .php ” را جستجو کنید ، فرضا فایل q8672ddf.php را شناسایی می کنید

برای یافتن آن در سرور دستور زیر را بزنید :

[code]locate q8672ddf.php[/code]

سپس به مسیر فایل های یافته شده بروید و آنها را حذف کنید

البته از آنجایی که ممکن است مجدد خود را ایجاد کرده و ترمیم کنند برای فریز کردن اقدام آنها ، پس از حذف مجدد ، ابتدا در همان پوشه یک فایل به همان نام ایجاد کنید ( بدون محتوا باشد نیز فرقی ندارد ) ، سپس مالکیت آنرا از طریق SSH به یوزر روت تغییر دهید ، مثلا

[code]chown root:root q8672ddf.php[/code]

 

تعمیر همه دیتابیس ها در سرور دایرکت ادمین

برای تعمیر همه دیتابیس های یوزر ها در یک سرور دایرکت ادمینی پس از اتصال به سرور از طریق SSH دستور زیر را وارد نمایید

[code]mysqlcheck -u da_admin -p`grep “^passwd=” /usr/local/directadmin/conf/mysql.conf | cut -d= -f2` –auto-repair –check –optimize –all-databases[/code]

آموزش تغییر پورت پیشفرض در دایرکت ادمین

برای تغییر پورت پیشفرض دایرکت ادمین از ۲۲۲۲ به مقداری دیگر طبق دستور زیر عمل نمایید

فرض کنیم که میخواهیم پورت را از ۲۲۲۲ به ۱۲۳۴ تغییر دهیم

پیش از هر چیز وارد تنظیمات فایروال شوید و پورت ۱۲۳۴ را  در قسمت پورت های اجازه داده شده قرار دهید

در خط فرمان فایل زیر را ویرایش نمایید

[code]nano /usr/local/directadmin/conf/directadmin.conf[/code]

خط زیر را پیدا کنید :

port=2222

و به صورت زیر تغییر دهید

port=1234

سپس ذخیره کنید ، حال فایل زیر را ویرایش کنید

[code]nano /var/www/html/redirect.php[/code]

خط زیر را پیدا کنید

<?
header("Location: http://".$_SERVER['HTTP_HOST'].":2222");
?>

و به صورت زیر ویرایش نمایید

<?
header("Location: http://".$_SERVER['HTTP_HOST'].":1234");
?>

حال سرویس دایرکت ادمین را با دستور service directadmin restart ریست نمایید

حل مشکل SMTP Error: Connection to server failed

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

[code]service exim restart[/code]

درصورتیکه مشکل حل نشد ابتدا PID های exim را پیدا کنید و آنرا حذف نمایید ، سپس مجدد دستور فوق را بزنید ( چگونه PID های یک سرویس را پیدا کنیم !؟ )

نحوه دانگرید php به ورژن های مختلف – دایرکت ادمین

برای تغییر ورژن پی اچ پی در یک سرور دایرکت ادمینی نیاز هست که از طریق خط فرمان لینوکس اقدام نمایید ( در یک سرور سی پنل می توانید از قسمت easy apache این کار را انجام دهید )

وارد مسیر زیر شوید

[code]cd /usr/local/directadmin/custombuild[/code]
فایل option.conf را ویرایش نمایید

[code]nano options.conf[/code]

مقدار php1_release را به ۵٫۲ یا ۵٫۳ یا ۵٫۴ یا ۵٫۵ ( مقدار مد نظر خودتان ) تغییر دهید

سپس فایل را ذخیره کرده و ببندید

حال دستور زیر را بزنید

[code]./build php n[/code]

نصب Mbstring در دایرکت ادمین

وارد ssh شوید

فایل زیر را ویرایش نمایید

[code]nano /usr/local/directadmin/custombuild/configure/ap2/configure.php5[/code]

درصورتیکه از suphp استفاده می کنید به جای فایل فوق می بایست فایل زیر را ویرایش نمایید

[code]nano /usr/local/directadmin/custombuild/configure/suphp/configure.php5[/code]

خط زیر را به انتهای فایل بیافزایید : ( نحوه کار با ویرایشگر نانو )

[code]--enable-mbstring[/code]

در انتها وارد مسیر زیر شوید

[code]/usr/local/directadmin/custombuild/[/code]

و دستور زیر را اجرا نمایید ( اتمام دستور بسته به منابع سخت افزاری شما بین ۱۰ دقیقه الی ۴۰ دقیقه زمان می برد )

[code]./build php n[/code]

 

رفع مشکل سفید شدن صفحه در phpmyadmin

درصورتیکه هنگام ورود به phpmyadmin با صفحه سفید یا خطای  Fatal Error: session_start() یا خطای Fatal error: session_start() [function.session-start]: Failed to initialize storage مواجه شدید ابتدا وارد فایل php.ini وارد شوید و خط session.save_path را بصورت زیر ویرایش نمایید

[code]session.save_path = “/tmp”[/code]

و سپس سرویس httpd را restart نمایید.

درصورتیکه مشکل حل نشد ممکن است مشکل از disable_functions های فایل php.ini باشد، می بایست تابع ini_set را از لیست توابع غیرفعال حذف نمایید.

مشاهده و حذف PID یک سرویس خاص

گاها ممکن است رخ داده باشد که هروقت بخواهید یک سرویس را استاپ یا ریست کنید با خطا مواجه می شوید ، در این حالت یعنی آن سرویس یک پروسه فعال دارد که قطع نمی شود ، در این حالت ابتدا باید PID آن پروسه را پیدا کرده و سپس آنرا kill کنید !

برای مشاهده PID یک سرویس خاص ( مثلا mysql در سرور های سی پنل  دستور زیر را بزنید )

[code]ps -ef | grep ‘mysql'[/code]

در سرورهای دایرکت ادمین باید به جای Mysql سرویس mysqld را بزنید ، برای مشاهده سرویس آپاچی httpd ، انجین ایکس nginx و … را بزنید

پس از اینکه شماره pid را نشان داد ( مثلا ۷۳۱۶۲۱ ) با دستور زیر آنرا حذف کنید ( واژه -۹ برای دستور قطع اجباری می باشد )

[code]kill -9 731621[/code]