# إعداد تطبيق Node.js
Source: https://docs.webgee.com/ar/development/how-to-setup-a-nodejs-application-on-cpanel



شغّل تطبيق Node.js على حساب استضافتك. ينطبق على الاستضافة المشتركة والموزِّعة
والمميّزة حيث يتوفّر محدّد Node.js.

## قبل أن تبدأ [#قبل-أن-تبدأ]

* ملفات تطبيقك مرفوعة، **خارج** `public_html`. فـ cPanel يقدّم التطبيق عبر
  وكيل، فلا ينبغي أن يكون مصدره قابلًا للتنزيل مباشرة.
* ملف `package.json` في جذر التطبيق.
* اسم **نقطة الدخول** — وشائعًا `app.js` أو `server.js`.

## أنشئ التطبيق [#أنشئ-التطبيق]

1. في cPanel، افتح **Setup Node.js App** ضمن **Software**.

2. اختر **Create Application**.

3. املأ:

   | الحقل           | القيمة                              |
   | --------------- | ----------------------------------- |
   | إصدار Node.js   | الإصدار الذي يحتاجه تطبيقك          |
   | وضع التطبيق     | **Production**                      |
   | جذر التطبيق     | حيث ملفاتك، مثل `nodeapp`           |
   | رابط التطبيق    | النطاق أو النطاق الفرعي الذي يقدّمه |
   | ملف بدء التطبيق | نقطة الدخول لديك                    |

4. اختر **Create**.

وينشئ cPanel بيئة افتراضية ويشغّل التطبيق.

## ثبّت الاعتماديات [#ثبّت-الاعتماديات]

استخدم زر **Run NPM Install** في صفحة التطبيق. فهو يقرأ `package.json` ويثبّت
في بيئة التطبيق الخاصة.

ولأي شيء أكثر، اعمل داخل البيئة الافتراضية — راجع
[الدخول إلى البيئة الافتراضية](/ar/development/how-to-enter-the-virtual-environment-with-python-ruby-nodejs-selectors).
فتشغيل `npm` من جلسة SSH عادية يستخدم Node الخطأ ويثبّت في المكان الخطأ.

## متغيّرات البيئة [#متغيّرات-البيئة]

أضفها في صفحة التطبيق بدل إيداع ملف `.env`. فكل ما في جذر تطبيقك قد يكون قابلًا
للقراءة إن أُسيء ضبط الجذر يومًا، والقيم المضبوطة هنا محفوظة خارجه.

## أعد التشغيل بعد التغييرات [#أعد-التشغيل-بعد-التغييرات]

<Callout type="warn">
  يبقي Node.js تطبيقك في الذاكرة، فـ**تحرير ملف لا يغيّر شيئًا حتى تعيد
  التشغيل**. فخلافًا لـ PHP، لا يوجد إعادة تحميل مع كل طلب.

  استخدم **Restart** في صفحة التطبيق بعد أي تغيير في الكود. وهذا أشيع سبب لظنّ
  أن إصلاحًا لم ينجح.
</Callout>

## تأكّد أنه نجح [#تأكّد-أنه-نجح]

زر رابط التطبيق. فإن لم يستجب، تعرض صفحة التطبيق الحالة ومخرجات السجل الأخيرة —
ابدأ من هناك.

## المشكلات الشائعة [#المشكلات-الشائعة]

* **502 Bad Gateway** — التطبيق لا يعمل أو انهار عند البدء. راجع السجل في صفحة
  التطبيق.
* **المنفذ خاطئ.** اربط بـ `process.env.PORT`، لا برقم مكتوب صراحة. فـ cPanel
  يسند المنفذ.
* **الوحدات غير موجودة** — فقد ثُبّتت الاعتماديات خارج البيئة الافتراضية.
  استخدم **Run NPM Install**، أو ثبّت من داخل البيئة.
* **يعمل ثم يتوقف** — قد يتجاوز التطبيق حدود الحساب. راجع
  [شرح CloudLinux وحدود LVE](/ar/performance/understanding-cloudlinux-and-lve-limits-enhancing-server-stability-and-performan).

## اقرأ أيضًا [#اقرأ-أيضًا]

* [الدخول إلى البيئة الافتراضية](/ar/development/how-to-enter-the-virtual-environment-with-python-ruby-nodejs-selectors)
* [الاتصال عبر SSH](/ar/development/connect-via-ssh)
