آموزش نصب Node.js بر روی cPanel

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

حتما اگر کسی قصد نصب Node.js را دارد با آن آشنایی اولیه را دارد، به هر حال اگر نیازمند اطلاعات بیشتر در مورد این پلتفورم هستید لینک های زیر را دنبال کنید:

خوب داستان از این قرار است که با وجود ایجاد درخواست افزودن Node.js به cPanel در قالب سرویس یا اپلیکیشن (nodejs Hosting) اما هنوز تا این لحظه یعنی نسخه 11.54 cPanel که این مطلب را منتشر می کنم. این قابلیت به سیستم افزوده نشده است. البته اگر روند درخواست همینطور کند باشد انتظار نباید داشت به این زودی ها سازندگان cPanel به طور جدی نسبت به موضوع اقدامی داشته باشند.

مراحل نصب Node.js

نخست نصب Node.js روی یک سرور خام (منظور بدون کنترل پانل است) را مرور می کنیم، با دستور زیر بسته مربوط را دریافت باید کرد:

wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz

خارج کردن بسته فشرده و انتقال اون:

tar xzvf node-v* && cd node-v*

فراموش نشود که اجرای این برنامه نیازمند نصب بودن کامپایلرهای C/C++ هست، بنابراین اگر نصب نیستند اونها هم نصب می کنیم با دستور زیر:

yum install gcc gcc-c++

در ادامه هم که دیگر میریم سراغ نصب:

./configure
make
make install

به این ترتیب مراحل نصب پایان یافته است. البته یک روش ساده دیگر هم استفاده از مخازن EPEL هست، در صورت فعال بودن با یک دستور میتوانید بسته را دریافت و نصب کنید:

yum install epel-release

جدا از شیوه نصب انتخابی بعد از پایان عملیات جهت اطمینان از درستی عملیات نصب میتونید دستور زیر را بزنید:

node --version

اگر مقدار خروجی نسخه برنامه مثلا “v0.10.30” بود مشخص است که با موفقیت نصب انجام شده است. البته روش هایی مثل استفاده از برنامه VersinManager خود Node.js هم هست که اینجا بهش نمی پردازیم. دقت کنید این مراحل نصب Node.js روی سیستم فاقد کنترل پانل بود.

نکات در خصوص نصب Node.js روی cPanel

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

نصب Node.js اگر به منظور پروسس های داخلی باشد فقط فرایند پیچیده ای نیست اما اگر بخواهیم به صورت گسترده ازش استفاده کنیم هاست اشتراکی جای مناسبی براش نیست چون ناچار هستیم کمی در پورت ها و تنظیمات مختلف سرور دستکاری هایی داشته باشیم که مطلوب یک هاست اشتراکی نیست.

همچنین در خصوص نصب Bower و Gulp هم باز شما یا باید خودتان پکیج ها را نصب کنید و به اطلاع کاربران برسانید از طریقی که این پکیج ها روی سرور هست و استفاده کنند که کار دشواری هست یا ناچار هستید اجازه نصب پکیج ها را به خود کاربران بدهید که این کار مستلزم داشتن دسترسی ایشان به Shell هست که باز در یک هاست اشتراکی این کار از نظر امنیتی توصیه نمی شود.

از این موارد جلوتر در خصوص دسترسی های و باگ های احتمالی این سیستم ها آسیب پذیری یک هاست اشتراکی بسیار بالا می باشد و ممکن است یکی از کاربران از طریق این برنامه ها بتواند به اطلاعات دیگر کاربران یا حتی روت دسترسی پیدا کند. اگر کاربر یک پکیج اختصاصی خودش را نوشته باشد با js و آن را روی سرور نصب کند، هر چند جاوااسکریپت کلاینت ساید هست اما در سرور به صورت لوکال ران که شود کلاینت خود سرور هست و عملا امکانات غیر قابل تصوری را برای اون فرد به ارمغان می آورد.

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

مراحل نصب Node.js روی cPanel

اگر در هاست خودتان از کلود لینوکس استفاده نکنید، مراحل نصب شما بسیار آسان خواهد بود، کافیست که به مسیر زیر برید:

cd /usr/local/src

بعد به این ترتیب عمل کنید:

cd /usr/local/src
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
tar -zxvf node-v0.10.26.tar.gz
cd node-v0.10.26
./configure --prefix=/usr/local
make
make install

وقتی از درستی نصب مطمئن شدید (طبق حالت عادی که بالاتر گفته شد) میتویند با دستورات زیر Bower و Gulp را هم نصب کنید:

npm install bower -g
npm install gulp -g

باز تاکید می کنم، کاربرانی که Shell Access داشته باشند فقط قادر هستند با این برنامه ها کار کنند. البته جهت تفکیک پکیج ها بد نیست اینجا را هم بررسی کنید.

مراحل نصب Node.js روی CloudLinux

خوب گفتم حیف است حالا که این مطلب را نوشتم ناقص باشد و بگم برای این قسمت کار خودتان برید سرچ کنید، در اصل نصب Node.js روی کلود لینوکس هیچ تفاوتی با نصب روی همان کرنل اصلی CentOs ندارد و کافیست که در پوشه مربوط نصب کنید. مگر آنکه …

مشکل به ظاهر بزرگ CageFS است. همانطور که انتظار می رود مشخص شد این سیستم امنیتی که بسیار مفید هم هست اینجا کمی مشکل ساز میشه و ممانعت می کند از دسترسی کاربران به بسته های نصب شده روی سرور. برای رفع این مشکل ما بعد از نصب باید تغییراتی در فایل تنظیمات این سیستم اعمال کنیم ابتدا Node.js را نصب می کنیم:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs
npm install gulp bower

اینبار نیاز نیست در مسیر که برای cPanel گفته شده بود نصب شود. ابتدا یک فایل تنظیمات در CageFS برای Node.js ایجاد می کنیم:

touch /etc/cagefs/conf.d/nodejs.cfg

با ویرایشگر دلخواهتون محتویات فایل را به این شکل قرار بدین:

[nodejs]
comment=Nodejs 
paths=/usr/bin/node, /usr/bin/npm, /usr/lib/node_modules

در مرحله بعد برای بسته های دیگر مثل gulp هم این کار را باید بکنیم:

touch /etc/cagefs/conf.d/gulp.cfg

با ویرایشگر دلخواهتون محتویات فایل را به این شکل قرار بدین:

[gulp]
comment=Gulp tools
paths=/usr/bin/gulp

این مراحل ایجاد فایل و تکمیل محتویات را برای هر چیز دیگر مثل گرانت یا … که نصبش کردید باید انجام بدین. در نهایت پس از پایان ایجاد فایل های اختصاصی تنظیمات هر بسته دستور زیر را بزنید:

cagefsctl --force-update

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

250 thoughts on “آموزش نصب Node.js بر روی cPanel”

  1. رضا

    تشکر فراوان از شما،
    راستش من چون الان سرور دیگه ای در اختیارم نیست خواستم رو هاست اشتراکی اینو تستش کنم برای خودم فقط و به کاربرا دسترسی نمی دم اما انگار به هر حال چون کلودکلود لینوکس نصب داشتم مجبورم از همون طریق که برای کیج گفتین برم کار کنم.

Comments are closed.