لمحة سريعة: Composer هو مدير التبعيات لمشاريع PHP. على cPanel، يجب تشغيل Composer من خلال سطر الأوامر (الطرفية Terminal أو عبر SSH) ويجب توفر بعض امتدادات وإعدادات PHP. اعتمادًا على نوع استضافتك، يمكنك تثبيت Composer على مستوى النظام (يتطلب صلاحية root) أو محليًا داخل مجلد مشروعك (مُوصى به على الاستضافة المشتركة).
قبل البدء — المتطلبات المسبقة
- الوصول عبر SSH أو عبر ميزة Terminal في لوحة cPanel (cPanel → Home → Advanced → Terminal). إذا كانت ميزة Terminal معطلة، فاطلب من مزود الاستضافة تفعيلها. لمعرفة كيفية الوصول إلى cPanel، راجع دليلنا الداخلي: كيفية الوصول إلى حسابي على cPanel.
- إذا كنت تنوي تثبيت Composer ليكون متاحًا لجميع الحسابات: يتطلب ذلك وصولًا بصلاحية root
root(VPS / خادم مخصّص). على استضافة مشتركة: ثبّت Composer محليًا في مجلد المستخدم الخاص بك (لا حاجة لصلاحية root). - امتدادات PHP المطلوبة :
pharphar (متاحة عادةً)، وmbstringmbstring أو iconviconv. تحقّق من تفعيلها أو قم بتفعيلها عبر PHP Selector أو MultiPHP (انظر : كيفية تغيير إصدار PHP والامتدادات). - توجيهات PHP المفيدة : allow_url_fopen = On
allow_url_fopen = Onو (للإصدارات القديمة جدًا) zend.detect_unicode = Offzend.detect_unicode = Off. إذا لم تتمكن من تعديل php.iniphp.ini، فهناك حلول بديلة (انظر أدناه). - على الخوادم التي تعمل بنظام CloudLinux والمحمية بواسطة CageFS: يجب على المسؤول إتاحة الملف الثنائي الخاص بـ Composer لحسابات CageFS (الإجراء موضح أدناه).
اختيار الطريقة
طريقتان :
- التثبيت على مستوى النظام (root) — يقوم المسؤول بتثبيت Composer لجميع الحسابات (مفيد على VPS/خادم مخصّص).
- التثبيت المحلي (بدون صلاحيات root) — ثبّت Composer في مجلد المستخدم أو في مجلد المشروع الخاص بك. يُنصح بهذه الطريقة على خطط الاستضافة المشتركة.
الطريقة أ — التثبيت العام (بصلاحيات المسؤول root)
إجراء لجعل Composer متاحًا على مستوى النظام.
- سجّل الدخول عبر SSH بصفتك
root:ssh [email protected](استبدلexample.comوالمستخدم وفقًا لتكوينك). - تحقّق من أن إصدار PHP لواجهة سطر الأوامر (CLI) المستخدم مع Composer يتضمّن
pharوmbstring/iconv، وأنallow_url_fopenمفعل. يمكن للمسؤول تعديل هذه الخيارات عبر MultiPHP INI Editor أو EasyApache 4 إذا لزم الأمر. - حمّل وتحقق من مُثبّت Composer الرسمي، ثم ثبّته في
/usr/local/bin:
بعد التثبيت,cd /tmp php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" EXPECTED_SIG=$(php -r "echo trim(file_get_contents('https://composer.github.io/installer.sig'));") php -r "if (hash_file('sha384', 'composer-setup.php') === '$EXPECTED_SIG') { echo 'Installer verified'.PHP_EOL; } else { echo 'Installer corrupt'.PHP_EOL; unlink('composer-setup.php'); exit(1); }" php composer-setup.php --install-dir=/usr/local/bin --filename=composer rm composer-setup.php/usr/local/bin/composerيجب أن يكون قابلاً للتنفيذ. (إذا لزم الأمر:chmod +x /usr/local/bin/composer.) - تحقّق من التثبيت :
composer --version. - إذا كان الخادم يستخدم CloudLinux و CageFS، اجعل Composer متاحًا لحسابات CageFS: أنشئ ملف تكوين وقم بتحديث CageFS (يُنفَّذ الأمر بصلاحيات root):
تجعل هذه الخطوة الملف التنفيذي متاحًا للمستخدمين المحصورين داخل CageFS.cat > /etc/cagefs/conf.d/composer.cfg <<'EOF' [composer] comment=Composer paths=/usr/local/bin/composer EOF cagefsctl --force-update
الطريقة B — تثبيت Composer محليًا (بدون صلاحيات root) — موصى به على الاستضافة المشتركة
قم بتثبيت Composer داخل مجلد مشروعك أو في مجلدك الشخصي وشغّله كمستخدم cPanel.
- افتح الطرفية (Terminal) في cPanel أو اتصل عبر SSH باستخدام حساب cPanel الخاص بك.
- انتقل إلى مجلد المشروع (مثلاً
~/public_html/mon-projet) :cd ~/public_html/mon-projet
انتقل إلى جذر المشروع قبل تثبيت التبعيات. - حمّل برنامج التثبيت وأنشئ
composer.pharفي المجلد الحالي:
شغّل Composer محليًا بواسطةphp -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');" # Résultat : composer.phar dans le répertoire courantphp composer.pharأو أنشئ alias (الخطوة التالية). - لتشغيل Composer كأمر عادي، هناك خياران بسيطان :
- إنشاء alias (مؤقت/للمستخدم) :
echo "alias composer='php ~/public_html/mon-projet/composer.phar'" >> ~/.bashrc source ~/.bashrc - أو نقله وجعله قابلاً للتنفيذ في
~/.local/binأو~/binوإضافة هذا المجلد إلىPATH:mkdir -p ~/bin mv composer.phar ~/bin/composer chmod +x ~/bin/composer # si nécessaire, ajoutez au PATH echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
- إنشاء alias (مؤقت/للمستخدم) :
تشغيل Composer عندما لا يمكنك تعديل php.ini
إذا لم يكن بإمكانك تحرير php.ini، فيمكنك فرض توجيهات PHP عبر سطر الأوامر :
php -d allow_url_fopen=1 -d zend.detect_unicode=0 composer.phar install
ملاحظة : zend.detect_unicode ينطبق ذلك على إصدارات PHP القديمة جدًا؛ في الإصدارات الأحدث لم يعد هذا التوجيه موجودًا.
أوامر مفيدة
composer --version— يعرض إصدار Composer.composer diagnose— أداة تشخيص ذاتية لاكتشاف مشكلات التكوين.composer install— يثبت التبعيات المدرجة فيcomposer.jsonملف composer.json.composer update— يحدّث التبعيات وفقًا للقيود.composer self-update— يحدّث Composer نفسه (فقط للنسخة التي تديرها).- في حال حدوث خطأ متعلق بالذاكرة:
COMPOSER_MEMORY_LIMIT=-1 composer install
استكشاف الأخطاء وإصلاحها — الأخطاء الشائعة والحلول
1) « command not found »
السبب: الملف التنفيذي composer composer غير موجود في PATH PATH. الحلول:
- إذا ثبتته على مستوى النظام: تأكد من أن
/usr/local/bin/usr/local/bin مُدرَج في PATHPATHأو نفّذ مباشرةً /usr/local/bin/composer --version/usr/local/bin/composer --version. - إذا كان لديك نسخة محلية: أضِف المجلد الذي يحتوي على composer
composer(مثلاً ~/bin~/bin) إلى PATHPATHفي الملف ~/.bashrc~/.bashrcو نفّذ source ~/.bashrcsource ~/.bashrc، أو أنشئ alias.
2) تحذير « Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI »
المعنى: المفسّر PHP الذي يستدعيه composer هذا يعني أن المفسّر المستدعى هو SAPI الخاص بخادم الويب (cgi/fcgi) وليس مفسّر سطر الأوامر (CLI). الحل: استدعِ صراحة مفسّر PHP الخاص بواجهة سطر الأوامر. مثال (استبدل رقم الإصدار):
/opt/cpanel/ea-php74/root/usr/bin/php ~/bin/composer diagnose
إذا كانت استضافتك توفر عدة إصدارات من PHP عبر SCL، يمكنك استخدام scl enable ea-php74 'composer diagnose' (متاح فقط إذا كان SCL مثبتًا).
3) يستخدم Composer إصدارًا خاطئًا من PHP
السبب: php في متغير PATH PATH يشير إلى إصدار آخر. الحل: استدعِ الثنائي الكامل لواجهة سطر الأوامر (المسار المطلق) كما في المثال أعلاه، أو عدِّل الـ alias ليشير إلى ثنائي CLI الصحيح.
4) « تعذَّر على Composer العثور على ملف composer.json »
تأكد من أنك في المجلد الذي يحتوي على composer.json (جذر المشروع) قبل تشغيل composer install.
5) أخطاء في الكتابة داخل vendor/ أو رفض الأذونات
تحقّق من أنك تشغّل Composer بصفتك المستخدم صاحب ملكية ملفات الويب (لا تُشغّل Composer كمستخدم root على مشروع ويب). صحِّح الملكية إذا لزم الأمر:
chown -R votre_user:votre_user vendor/
6) مشاكل متعلقة بـ CageFS (CloudLinux)
إذا كان CageFS يمنع الوصول إلى ثنائي Composer، فاطلب من المسؤول إضافة Composer إلى تكوين CageFS وتنفيذ cagefsctl --force-update (انظر الإجراء أعلاه).
أفضل الممارسات والأمان
- لا تُشغّل
composer installأوcomposer updateبصفتكrootعلى مشروع ويب: قد تقوم بعض الحزم بتشغيل سكربتات ما بعد التثبيت التي تُنفَّذ بنفس الصلاحيات. - للموقع في بيئة الإنتاج: استخدم
composer install --no-dev --optimize-autoloaderواحتفظ بـcomposer.lockفي نظام إدارة الإصدارات الخاص بك لضمان تبعيات قابلة لإعادة الإنتاج. - إذا كنت تقوم بأتمتة عمليات التثبيت (CI/CD)، فقلّل المخاطر باستخدام
--no-plugins --no-scriptsعند الضرورة وتحقق من الحزم المستوردة.
روابط داخلية مفيدة
- كيفية الوصول إلى حسابي في cPanel — لفتح Terminal أو للاتصال عبر SSH.
- كيفية تغيير إصدار PHP والامتدادات — لتمكين
mbstring،phar، إلخ.
الموارد والمراجع
- كيفية إعداد Composer لـ PHP — وثائق cPanel
- كيفية تثبيت Composer على cPanel إصدار 130 وما فوق — دعم cPanel
- كيفية تحديث Composer على خادمي؟ — دعم cPanel
هل تحتاج إلى مساعدة؟ إذا كنتم تفضلون أن يقوم فريقنا بتنفيذ التثبيت على VPS/خادم مخصّص أو التحقق من إعدادات CageFS، فافتحوا تذكرة دعم مع توضيح إصدار PHP المستهدف وما إذا كان الخادم يستخدم CloudLinux/CageFS. على استضافة مشتركة، يبقى التثبيت محليًا داخل مجلد مشروعكم الطريقة الموصى بها.
الوثائق المرجعية
- كيفية إعداد Composer لـ PHP — وثائق cPanel & WHM
- كيفية تثبيت Composer على cPanel إصدار 130 وما فوق — دعم cPanel
تم الاطلاع على الوثائق في 17 أكتوبر 2026. قد تختلف الأدوات حسب استضافتك.