با وجود کنترلپنلهایی مثل cPanel و Direct Admin مدیریت اولیه سرور مجازی یا اختصاصی برای میزبانی یک یا چند سایت کار خیلی سختی نیست اما فرشتههای نجاتی هم برای صرفهجویی در هزینه لایسنس و خرید سروری که جوابگوی این غولها باشه وجود داره. Centmin Mod یکی از کم دردسرترین هاست که به کمکون میاد.
ترکیب وب سرور قوی و سبک Nginx همراه با PHP-FPM، جایگزین بهینهتر Oracle MySQL یعنی Mariadb و Memcached سرور مجازی کم قدرت شما رو به ماشین پر سرعت سرو صفحات وب تبدیل میکنه. CSF Firewall و Postfix هم کار محافظت از VPS در مقابل حملات خرابکارانه و ارسال ایمیل از اپلیکیشنهای نصب شده رو به عهده دارن. نتیجه کار و فاکتورهای ماهیانه سبکتر هاستینگ ارزش چند ساعت وقت گذاشتن برای راه اندازی Centmin Mod روی سیستم عامل Centos و تنظیم اولیه رو حتما داره.
ملزومات نصب
سرور مجازی با حداقل ۲۵۶ مگابایت رم، ۱۰ گیگابایت فضا و توزیع لینوکس محبوب CentOS
نوع مجازی ساز مهم نیست. Centmin Mod روی OpenVZ هم بخوبی کار میکنه اما قطعا برای پایداری بهتر KVM، Xen و VMware بیشتر توصیه میشه. Centos هم نسخه ۶ و البته خشک و مینیمال. اگر قبلا روی سرورتون کنترلپنل یا پکیجهای مشابهی نصب شده باید پاک بشن. هیچ چیز مثل Rebuild نیست
شروع نصب
Centmin Mod محیط گرافیکی مثل کنترلپنلهای معروف نداره در نتیجه تنها دستیار شما یه SSH Client هست و بس. اگر از ویندوز استفاده میکنین Tunnelier انتخاب خوبیه. کاربران لینوکس هم که با Terminal زندگی میکنن!
به سرور لاگین کنین:
ssh root@VPS-IP
و سیستم عامل رو بروز کنین:
yum update
نصب چند بسته حیاتی:
yum -y install bc wget unzip nano yum-plugin-fastestmirror
حذف آپاچی. بعضی سرویسدهنده ها از تمپلیتهایی استفاده میکنن که بصورت پیشفرض وب سرور Apache رو روی VPS نصب میکنن.
yum remove httpd
سه روش برای نصب Centmin Mod وجود داره که اولینش تنها به وارد کردن یک خط کد نیاز داره:
curl -sL http://centminmod.com/installer.sh | bash
تمام پکیجهای پیشفرض تو این روش نصب و در آخر زمان صرف شده برای اتمام عملیات نمایش داده میشه. میشه گفت از این روش بیشتر برای مقایسه دو تا سرور استفاده میشه.
نصب به روش CLI
برای دانلود بسته در محل خاص یا ویرایش اسکریپت قبل از نصب باید از این دستورها استفاده کنین:
cd /usr/local/src wget http://centminmod.com/download/centmin-v1.2.3-eva2000.07.zip unzip centmin-v1.2.3-eva2000.07.zip cd centmin-v1.2.3mod chmod +x centmin.sh yum clean all
و در نهایت
./centmin.sh
یا
./centmin.sh install
تفاوت ۲ دستور بالا فقط در اینه که دستور اول منوی Centmin Mod رو بهتون نشون میده اما دستور دوم نه.
ویرایش اسکریپت قبل از نصب
اعمال تغییرات تو اسکریپت centmin.sh قبل از شروع نصب در بعضی موارد لازمه و چندتاشونم با توجه به نیاز یا منابع سرور مجازی توصیه شده. میتونین از ویرایشگر متنی nano استفاده کنین یا اسکریپت رو دانلود و با ادیتور دلخواه تغییر بدین و دوباره آپلود کنین.
چک کردن XEN Node و تغییر خط ۴۰۵
ARCH_OVERRIDE='i386'
اگر مجازی ساز سرور شما Xen هست و سیستم عامل ۳۲ بیتی نصب کردین باید ۶۴ بیتی بودن node رو از پشتیبانی سوال و در صورت مثبت بودن ویرایش بالا رو اعمال کنین.
غیرفعال کردن NSD با ویرایش خط ۱۷۹
NSD_INSTALL=y
نصب مدیریت دیاناس NSD دردسرهای خودش رو داره و مخصوصا روی سرورهای کم قدرت یا بقول معروف Low End Box پیشنهاد نمیشه. بهتره با استفاده از سرویسهای DNS Management رایگانی مثل Cloudflare سایتتونو به سرور وصل کنین.
جلوگیری از نصب NGX PageSpeed با ویرایش خط ۱۸۶
NGINX_PAGESPEED=n
ماژول PageSpeed در بسیاری موارد بیشتر از اینکه با کم کردن حجم فایلهای استاتیک (تصاویر، استایلها، اسکریپتها ) به بهینه شدن لود سایت کمک کنه کارایی سرور رو با درگیر کردن CPU مختل میکنه.
انتخاب Mariadb یا MySQL
اگر به هر دلیلی قصد استفاده از MySQL رو دارین خط ۲۱۴ رو به این صورت ویرایش کنین:
MDB_YUMREPOINSTALL=n
بعد خط ۲۳۰ رو هم به این ترتیب:
MYSQL_INSTALL=y
مقدار Ram مصرفی Mariadb کمی بیشتر از Mysql هست اما مطمئنا کارایی ماریادیبی این اختلاف رو قابل چشمپوشی میکنه. پیشنهاد میکنم تغییرات بالا رو اعمال نکنین.
انتخاب نام سفارشی سرور با ویرایش خط ۷
CUSTOMSERVERSTRING='nginx centminmod'
برای غیرفعال کردن کلی این ویژگی y آخر خط ۶ رو به n تغییر بدین.
ورژن PHP پیش فرض برای نصب ۵.۴.۳۳ هست که بهتره بعد از آپ شدن Centmin Mod ارتقاش بدیم.
بعد از ویرایش اسکریپت و وارد کردن یکی از ۲ دستوری که قبل از بخش ویرایش قرار دادم عملیات نصب شروع و بسته به سختافزار سرور، منابع اختصاص داده شده به وی پی اس و گزینههای غیرفعال شده ممکنه تا ۱ ساعت طول بکشه. دلیل طولانی بودنش هم نصب اکثر بستهها از سورس و زمان لازم برای کامپایل هست. نگران نباشین
اتمام نصب
نمایش این پیغام یعنی Centmin Mod بصورت کامل نصب و سرور آماده استفادست.
کمی بالاتر که برین پسورد مربوط به Memcached Admin Page و MySQL ًRoot نمایش داده میشه که بهتره ذخیرشون کنین.
حالا اگر آیپی سرور رو تو مرورگر وارد کنین باید با صفحه تست Nginx مواجه بشین
از اونجایی که بعد از نصب تو پوشه اسکریپت هستین برای ورود به منوی Centmin Mod کافیه این کد رو وراد کنین
./centmin.sh
در صورتی که از پوشه خارج شدین یک مرحله (ورود به دایرکتوری) به کارتون اضافه میشه:
cd /usr/local/src/centmin-v1.2.3mod ./centmin.sh
برای راحتی کار میتونین با این دستورها میانبری برای ورود به منو بسازین:
alias centmin='pushd /usr/local/src/centmin-v1.2.3mod/ && bash centmin.sh' echo "alias centmin='pushd /usr/local/src/centmin-v1.2.3mod/ && bash centmin.sh'" >> /root/.bashrc
با این کار با وارد کردن دستور centmin هر جای سرور که باشین منوی Centmin Mod براتون باز میشه. بجای centmin عبارت دلخواه خودتونو وارد کنین.
بصورت پیشفرض هم یه سری میانبر معرفی شده که پرکاربردترینهاشون اینا هستن:
ریستارت وب سرور Nginx
ngxrestart
ریستارت PHP-FPM
fpmrestart
و ریستارت هر دوی این سرویسها
nprestart
لیست کامل میانبرها و بقیه سؤالات متداول رو تو این صفحه ببینین.
چند نکته تقریبا لازم
برای اضافه کردن دامنه یا زیر دامنه به سرور Centmin Mod رو اجرا و گزینه ۲ رو انتخاب کنین.
مسیر فایلهای هر دامنه به این صورت هست (مثال):
/home/nginx/domains/ic.newbie.ir/public
مالک یا owner این پوشه کاربر nginx هست در نتیجه بعد از آپلود فایل با SFTP یا هر نوع انتقال یا ایجاد فایل با دسترسی root باید با دستور chown سطح دسترسی رو تصحیح کنین. بطور مثال:
chown -R nginx:nginx /home/nginx/domains/ic.newbie.ir/public
فایل کانفیگ هر Virtual Host هم از این مسیر قابل دسترسیه:
/usr/local/nginx/conf/conf.d
بطور مثال:
/usr/local/nginx/conf/conf.d/ic.newbie.ir.conf
بعد از ویرایش فایلهای کانفیگ مربوط به Nginx با وارد کردن این دستور از درست بودن تنظیمات مطمئن بشین:
nginx -t
اگر مشکلی وجود نداشته باشه باید آخرین خط پیغام به این صورت باشه:
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
ریستارت کردن nginx بعد از اعمال تغییرات هم فراموش نشه
service nginx restart
یا
ngxrestart
نصب، ارتقا و نصب مجدد سرویسها از طریق منوی CentminMod کار سختی نیست اما توضیحشون نوشته رو بیش از حد طولانی میکنه.
نسخه بتا Centmin Mod که با Centos 7 هم سازگاره از Github قابل دسترسی و تسته. مشکلات نسخه ۰۸ با Openvz باعث شده تا کماکان منتظر انتشار بمونه.
به سایت و انجمن Centmin Mod سر بزنین تا اطلاعات بیشتری در مورد این LEMP Stack دوست داشتنی بدست بیارین.
سعی میکنم این پست و وبلاگم رو با مطالب بیشتری تو این زمینه آپدیت کنم. کمک به کاهش هزینههای نگهداری و افزایش سرعت لود وبسایت دوستان مخصوصا کاربران وردپرس لذت خاصی داره