Node.js / npm / Composer بدون جذر

في منشور مدونة أقدم ، وصفت كيفية استضافة Node.js مجانًا باستخدام Heroku . سأوضح لك الآن طريقة كيفية تثبيت Node.js و npm و Composer على أي مضيف مشترك آخر بدون حقوق الجذر مع بضعة أسطر من التعليمات البرمجية. باستخدامه ، يمكنك تثبيت الحزم ونشر تطبيقات Vue.js أو مجرد بدء تشغيل خادم Express.js. نحن نعمل دائمًا في دليل المستخدم ونستخدم nvm - مدير حزمة Node.


من المهم التأكد مسبقًا من عدم توفر الملحن والعقدة وأن الأسطر التالية لا تولد أي مخرجات:

16c389ff1cdd9380cc5f9244775eb6c8

أولاً قمنا بتعيين متغيرات البيئة المؤقتة التي سنحتاجها لاحقًا. للقيام بذلك ، نحدد دليل المستخدم الخاص بالمستخدم (عادة ~ / ، على بعض المضيفات المشتركة أيضًا / www / htdocs / xxxxxxx /) وإصدار PHP المطلوب (على سبيل المثال مع المزود All-Incl / usr / bin / php72 ، مع DomainFactory / usr / local / bin / php7-72LATEST-CLI):

16c389ff1cdd9380cc5f9244775eb6c8

الآن نتأكد من تشغيل أحدث إصدار من PHP على وحدة التحكم. للقيام بذلك ، نقوم بإنشاء مجلد جديد في الدليل الرئيسي ، وإنشاء ارتباط ناعم وإضافة الدليل إلى بداية المسار.

16c389ff1cdd9380cc5f9244775eb6c8

نقوم الآن بتثبيت برنامج composer العالمي عن طريق تنزيل نص التثبيت والتحقق منه وتنفيذه ، ثم أيضًا وضع composer.phar في دليل المستخدم وإنشاء رابط رمزي مرة أخرى:

16c389ff1cdd9380cc5f9244775eb6c8

نستخدم nvm لتثبيت Node.js. هذا هو نص برمجي bash يتم استخدامه بالفعل للتبديل بين إصدارات العقد. نستخدم هنا الخاصية التي تم تثبيت Node.js عليها بدون حقوق الجذر:

16c389ff1cdd9380cc5f9244775eb6c8

كان التصحيح البسيط في bashrc ضروريًا بالنسبة لي:

16c389ff1cdd9380cc5f9244775eb6c8

الآن يمكننا تثبيت وتفعيل الإصدار الثابت الحالي من Node.js:

16c389ff1cdd9380cc5f9244775eb6c8

بمساعدة nvm ، يمكننا أيضًا تبديل الإصدارات بسهولة.

16c389ff1cdd9380cc5f9244775eb6c8

تمكنت من تنفيذ كل هذه الخطوات مع بعض مزودي الاستضافة المشتركة الألمانية دون أي مشاكل. يواجه بعض المضيفين مشكلات في الارتباطات الرمزية ، ولكن يمكن أن يساعد الاسم المستعار أيضًا. على سبيل المثال ، يساعد .bashrc التالي في DomainFactory:

16c389ff1cdd9380cc5f9244775eb6c8

توجد أيضًا مشكلات عند الوصول إلى / proc / stat في البيئات الظاهرية / المشتركة ، ولهذا السبب تقوم وظيفة العقدة os.cpus () ، على سبيل المثال ، بإرجاع غير محدد بدلاً من العدد الصحيح من النوى . عند تثبيت حزم npm ، يؤدي ذلك إلى ظهور رسائل خطأ مثل "Cannot read property 'length' of undefined". تمكنت من حل المشكلة باستخدام الإصدار الحالي من Node.js (على سبيل المثال 11.15.0) والذي عالج المشكلة.

عودة